|
__device__ | BlockSelect (K initK, V initV, K *smemK, V *smemV, int k) |
|
__device__ void | addThreadQ (K k, V v) |
|
__device__ void | checkThreadQ () |
|
__device__ void | mergeWarpQ () |
|
__device__ void | add (K k, V v) |
|
__device__ void | reduce () |
|
|
K | threadK [NumThreadQ] |
|
V | threadV [NumThreadQ] |
|
K * | sharedK |
|
V * | sharedV |
|
K * | warpK |
|
V * | warpV |
|
K | warpKTop |
|
int | kMinus1 |
|
|
static constexpr int | kNumWarps = ThreadsPerBlock / kWarpSize |
|
static constexpr int | kTotalWarpSortSize = NumWarpQ |
|
template<typename K, typename V, bool Dir, typename Comp, int NumWarpQ, int NumThreadQ, int ThreadsPerBlock>
struct faiss::gpu::BlockSelect< K, V, Dir, Comp, NumWarpQ, NumThreadQ, ThreadsPerBlock >
Definition at line 82 of file Select.cuh.
template<typename K , typename V , bool Dir, typename Comp , int NumWarpQ, int NumThreadQ, int ThreadsPerBlock>
__device__ void faiss::gpu::BlockSelect< K, V, Dir, Comp, NumWarpQ, NumThreadQ, ThreadsPerBlock >::add |
( |
K |
k, |
|
|
V |
v |
|
) |
| |
|
inline |
WARNING: all threads in a warp must participate in this. Otherwise, you must call the constituent parts separately.
Definition at line 223 of file Select.cuh.
template<typename K , typename V , bool Dir, typename Comp , int NumWarpQ, int NumThreadQ, int ThreadsPerBlock>
This function handles sorting and merging together the per-thread queues with the warp-wide queue, creating a sorted list across both
Definition at line 166 of file Select.cuh.
The documentation for this struct was generated from the following file: