Faiss
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
faiss::gpu::WarpSelect< K, V, Dir, Comp, NumWarpQ, NumThreadQ, ThreadsPerBlock > Struct Template Reference

Public Member Functions

__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.
 

Public Attributes

threadK [NumThreadQ]
 
threadV [NumThreadQ]
 
warpK [kNumWarpQRegisters]
 
warpV [kNumWarpQRegisters]
 
warpKTop
 
int kLane
 

Static Public Attributes

static constexpr int kNumWarpQRegisters = NumWarpQ / kWarpSize
 

Detailed Description

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.

Member Function Documentation

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,
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: