warpcore 0.0.1
Hashing at the Speed of Light on modern CUDA-accelerators
warpcore::probing_schemes::LinearProbing< Hasher, CGSize > Class Template Reference

linear probing scheme: \(hash(k,i) = h(k)+i\) More...

Public Types

using key_type = typename Hasher::key_type
 
using index_type = index_t
 
using tag = tags::cycle_free_probing_scheme
 

Public Member Functions

__device__ LinearProbing (index_type capacity, index_type probing_length, const cg::thread_block_tile< CGSize > &group)
 constructor More...
 
template<class T >
__device__ index_type begin (T, T)=delete
 
template<class T >
__device__ index_type begin (T)=delete
 
__device__ index_type begin (key_type key, key_type seed=0) noexcept
 begin probing sequence More...
 
__device__ index_type next () noexcept
 next probing index for key More...
 

Static Public Member Functions

static constexpr __host____device__ index_t cg_size () noexcept
 get cooperative group size More...
 
static constexpr __device__ index_type end () noexcept
 end specifier of probing sequence More...
 

Detailed Description

template<class Hasher, index_t CGSize = 1>
class warpcore::probing_schemes::LinearProbing< Hasher, CGSize >

linear probing scheme: \(hash(k,i) = h(k)+i\)

Template Parameters
Hasherhash function
CGSizecooperative group size

Definition at line 127 of file probing_schemes.cuh.

Member Typedef Documentation

◆ index_type

template<class Hasher , index_t CGSize = 1>
using warpcore::probing_schemes::LinearProbing< Hasher, CGSize >::index_type = index_t

Definition at line 135 of file probing_schemes.cuh.

◆ key_type

template<class Hasher , index_t CGSize = 1>
using warpcore::probing_schemes::LinearProbing< Hasher, CGSize >::key_type = typename Hasher::key_type

Definition at line 134 of file probing_schemes.cuh.

◆ tag

template<class Hasher , index_t CGSize = 1>
using warpcore::probing_schemes::LinearProbing< Hasher, CGSize >::tag = tags::cycle_free_probing_scheme

Definition at line 136 of file probing_schemes.cuh.

Constructor & Destructor Documentation

◆ LinearProbing()

template<class Hasher , index_t CGSize = 1>
__device__ warpcore::probing_schemes::LinearProbing< Hasher, CGSize >::LinearProbing ( index_type  capacity,
index_type  probing_length,
const cg::thread_block_tile< CGSize > &  group 
)
inlineexplicit

constructor

Parameters
[in]capacitycapacity of the underlying hash table
[in]probing_lengthnumber of probing attempts
[in]groupcooperative group

Definition at line 150 of file probing_schemes.cuh.

Member Function Documentation

◆ begin() [1/3]

template<class Hasher , index_t CGSize = 1>
__device__ index_type warpcore::probing_schemes::LinearProbing< Hasher, CGSize >::begin ( key_type  key,
key_type  seed = 0 
)
inlinenoexcept

begin probing sequence

Parameters
[in]keykey to be probed
[in]seedrandom seed
Returns
initial probing index for key

Definition at line 173 of file probing_schemes.cuh.

◆ begin() [2/3]

template<class Hasher , index_t CGSize = 1>
template<class T >
__device__ index_type warpcore::probing_schemes::LinearProbing< Hasher, CGSize >::begin ( )
inlinedelete

◆ begin() [3/3]

template<class Hasher , index_t CGSize = 1>
template<class T >
__device__ index_type warpcore::probing_schemes::LinearProbing< Hasher, CGSize >::begin ( ,
 
)
inlinedelete

◆ cg_size()

template<class Hasher , index_t CGSize = 1>
static constexpr __host____device__ index_t warpcore::probing_schemes::LinearProbing< Hasher, CGSize >::cg_size ( )
inlinestaticconstexprnoexcept

get cooperative group size

Returns
cooperative group size

Definition at line 142 of file probing_schemes.cuh.

◆ end()

template<class Hasher , index_t CGSize = 1>
static constexpr __device__ index_type warpcore::probing_schemes::LinearProbing< Hasher, CGSize >::end ( )
inlinestaticconstexprnoexcept

end specifier of probing sequence

Returns
end specifier

Definition at line 198 of file probing_schemes.cuh.

◆ next()

template<class Hasher , index_t CGSize = 1>
__device__ index_type warpcore::probing_schemes::LinearProbing< Hasher, CGSize >::next ( )
inlinenoexcept

next probing index for key

Returns
next probing index

Definition at line 186 of file probing_schemes.cuh.


The documentation for this class was generated from the following file: