|
__device__ | WarpSelect (K initK, V initV, 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 () |
|
__device__ void | writeOut (K *outK, V *outV, int k) |
| Dump final k selected values for this warp out.
|
|
|
K | threadK [NumThreadQ] |
|
V | threadV [NumThreadQ] |
|
K | warpK [kNumWarpQRegisters] |
|
V | warpV [kNumWarpQRegisters] |
|
K | warpKTop |
|
int | kLane |
|
|
static constexpr int | kNumWarpQRegisters = NumWarpQ / kWarpSize |
|
template<typename K, typename V, bool Dir, typename Comp, int NumWarpQ, int NumThreadQ, int ThreadsPerBlock>
struct faiss::gpu::WarpSelect< K, V, Dir, Comp, NumWarpQ, NumThreadQ, ThreadsPerBlock >
Definition at line 371 of file Select.cuh.
template<typename K , typename V , bool Dir, typename Comp , int NumWarpQ, int NumThreadQ, int ThreadsPerBlock>
__device__ void faiss::gpu::WarpSelect< 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 476 of file Select.cuh.
template<typename K , typename V , bool Dir, typename Comp , int NumWarpQ, int NumThreadQ, int ThreadsPerBlock>
__device__ void faiss::gpu::WarpSelect< K, V, Dir, Comp, NumWarpQ, NumThreadQ, ThreadsPerBlock >::mergeWarpQ |
( |
| ) |
|
|
inline |
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 442 of file Select.cuh.
The documentation for this struct was generated from the following file:
- /data/users/matthijs/github_faiss/faiss/gpu/utils/Select.cuh