All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
faiss::gpu::BlockSelect< K, V, Dir, Comp, NumWarpQ, NumThreadQ, ThreadsPerBlock > Struct Template Reference

## Public Member Functions

__device__ | BlockSelect (K initKVal, V initVVal, 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 ()

## Public Attributes

const K | initK
const V | initV
int | numVals
K | warpKTop
K | threadK [NumThreadQ]
V | threadV [NumThreadQ]
K * | sharedK
V * | sharedV
K * | warpK
V * | warpV
int | kMinus1

## Static Public Attributes

static constexpr int | kNumWarps = ThreadsPerBlock / kWarpSize
static constexpr int | kTotalWarpSortSize = NumWarpQ

## Detailed Description

### 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 84 of file Select.cuh.

## Member Function Documentation

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 208 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 >::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 171 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