warpcore 0.0.1
Hashing at the Speed of Light on modern CUDA-accelerators
warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes > Class Template Reference

hash set More...

Public Types

using key_type = Key
 
using index_type = index_t
 
using status_type = Status
 

Public Member Functions

__host__ HashSet (index_type min_capacity, key_type seed=defaults::seed< key_type >()) noexcept
 constructor More...
 
__host____device__ HashSet (const HashSet &o) noexcept
 copy-constructor (shallow) More...
 
__host__ HashSet (HashSet &&o) noexcept
 move-constructor More...
 
__host__ ~HashSet () noexcept
 destructor More...
 
__host__ void init (const key_type seed, const cudaStream_t stream=0) noexcept
 (re)initialize the hash set More...
 
__host__ void init (const cudaStream_t stream=0) noexcept
 (re)initialize the hash set More...
 
__device__ Status insert (key_type key_in, const cg::thread_block_tile< cg_size()> &group, index_type probing_length=defaults::probing_length()) noexcept
 inserts a key into the hash set More...
 
template<class StatusHandler = defaults::status_handler_t>
__host__ void insert (const key_type *keys_in, index_type num_in, cudaStream_t stream=0, index_type probing_length=defaults::probing_length(), typename StatusHandler::base_type *status_out=nullptr) noexcept
 insert a set of keys into the hash set More...
 
__device__ Status retrieve (Key key_in, bool &flag_out, const cg::thread_block_tile< cg_size()> &group, index_type probing_length=defaults::probing_length()) const noexcept
 retrieves a key from the hash set More...
 
template<class StatusHandler = defaults::status_handler_t>
__host__ void retrieve (const key_type *keys_in, index_type num_in, bool *flags_out, cudaStream_t stream=0, index_type probing_length=defaults::probing_length(), typename StatusHandler::base_type *status_out=nullptr) const noexcept
 retrieve a set of keys from the hash table More...
 
__host__ void retrieve_all (key_type *keys_out, index_type &num_out, cudaStream_t stream=0) const noexcept
 retrieves all elements from the hash set More...
 
__device__ Status erase (key_type key_in, const cg::thread_block_tile< cg_size()> &group, index_type probing_length=defaults::probing_length()) noexcept
 erases a key from the hash table More...
 
template<class StatusHandler = defaults::status_handler_t>
__host__ void erase (key_type *keys_in, index_type num_in, cudaStream_t stream=0, index_type probing_length=defaults::probing_length(), typename StatusHandler::base_type *status_out=nullptr) noexcept
 erases a set of keys from the hash table More...
 
template<class Func >
__host__ void for_each (Func f, cudaStream_t stream=0, index_type smem_bytes=0) const noexcept
 applies a funtion on all keys inside the table More...
 
__host__ index_type size (cudaStream_t stream=0) const noexcept
 number of key/value pairs stored inside the hash set More...
 
__host__ float load_factor (cudaStream_t stream=0) const noexcept
 current load factor of the hash set More...
 
__host__ float storage_density (cudaStream_t stream=0) const noexcept
 current storage density of the hash set More...
 
__host____device__ index_type capacity () const noexcept
 get the capacity of the hash table More...
 
__host__ index_type bytes_total () const noexcept
 get the total number of bytes occupied by this data structure More...
 
__host__ Status peek_status (cudaStream_t stream=0) const noexcept
 get the status of the hash table More...
 
__host__ Status pop_status (cudaStream_t stream=0) noexcept
 get and reset the status of the hash table More...
 
__host____device__ bool is_copy () const noexcept
 indicates if this object is a shallow copy More...
 

Static Public Member Functions

static constexpr __host____device__ key_type empty_key () noexcept
 get empty key More...
 
static constexpr __host____device__ key_type tombstone_key () noexcept
 get tombstone key More...
 
static constexpr __host____device__ index_type cg_size () noexcept
 get cooperative group size More...
 
static constexpr __host____device__ bool is_empty_key (key_type key) noexcept
 checks if key is equal to EmptyKey More...
 
static constexpr __host____device__ bool is_tombstone_key (key_type key) noexcept
 checks if key is equal to TombstoneKey More...
 
static constexpr __host____device__ bool is_valid_key (key_type key) noexcept
 checks if key is equal to (EmptyKey||TombstoneKey) More...
 

Detailed Description

template<class Key, Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
class warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >

hash set

Template Parameters
Keykey type (std::uint32_t or std::uint64_t)
EmptyKeykey which represents an empty slot
TombstoneKeykey which represents an erased slot
ProbingSchemeprobing scheme from warpcore::probing_schemes
TempMemoryBytessize of temporary storage (typically a few kB)

Definition at line 22 of file hash_set.cuh.

Member Typedef Documentation

◆ index_type

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
using warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::index_type = index_t

Definition at line 46 of file hash_set.cuh.

◆ key_type

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
using warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::key_type = Key

Definition at line 45 of file hash_set.cuh.

◆ status_type

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
using warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::status_type = Status

Definition at line 47 of file hash_set.cuh.

Constructor & Destructor Documentation

◆ HashSet() [1/3]

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__host__ warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::HashSet ( index_type  min_capacity,
key_type  seed = defaults::seed<key_type>() 
)
inlineexplicitnoexcept

constructor

Parameters
[in]capacitymaximum cardinality of the set
[in]seedrandom seed

Definition at line 81 of file hash_set.cuh.

◆ HashSet() [2/3]

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__host____device__ warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::HashSet ( const HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes > &  o)
inlinenoexcept

copy-constructor (shallow)

Parameters
[in]objectto be copied

Definition at line 116 of file hash_set.cuh.

◆ HashSet() [3/3]

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__host__ warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::HashSet ( HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes > &&  o)
inlinenoexcept

move-constructor

Parameters
[in]objectto be moved

Definition at line 130 of file hash_set.cuh.

◆ ~HashSet()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__host__ warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::~HashSet ( )
inlinenoexcept

destructor

Definition at line 146 of file hash_set.cuh.

Member Function Documentation

◆ bytes_total()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__host__ index_type warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::bytes_total ( ) const
inlinenoexcept

get the total number of bytes occupied by this data structure

Returns
bytes

Definition at line 592 of file hash_set.cuh.

◆ capacity()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__host____device__ index_type warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::capacity ( ) const
inlinenoexcept

get the capacity of the hash table

Returns
number of slots in the hash table

Definition at line 583 of file hash_set.cuh.

◆ cg_size()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
static constexpr __host____device__ index_type warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::cg_size ( )
inlinestaticconstexprnoexcept

get cooperative group size

Returns
cooperative group size

Definition at line 71 of file hash_set.cuh.

◆ empty_key()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
static constexpr __host____device__ key_type warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::empty_key ( )
inlinestaticconstexprnoexcept

get empty key

Returns
empty key

Definition at line 53 of file hash_set.cuh.

◆ erase() [1/2]

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
template<class StatusHandler = defaults::status_handler_t>
__host__ void warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::erase ( key_type keys_in,
index_type  num_in,
cudaStream_t  stream = 0,
index_type  probing_length = defaults::probing_length(),
typename StatusHandler::base_type *  status_out = nullptr 
)
inlinenoexcept

erases a set of keys from the hash table

Template Parameters
StatusHandlerhandles returned status per key (see status_handlers)
Parameters
[in]keys_inpointer to keys to erase from the hash table
[in]num_innumber of keys to erase
[in]streamCUDA stream in which this operation is executed in
[in]probing_lengthmaximum number of probing attempts
[out]status_outstatus information (per key)

Definition at line 450 of file hash_set.cuh.

◆ erase() [2/2]

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__device__ Status warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::erase ( key_type  key_in,
const cg::thread_block_tile< cg_size()> &  group,
index_type  probing_length = defaults::probing_length() 
)
inlinenoexcept

erases a key from the hash table

Parameters
[in]key_inkey to erase from the hash table
[in]groupcooperative group
[in]probing_lengthmaximum number of probing attempts
Returns
status (per thread)

Definition at line 396 of file hash_set.cuh.

◆ for_each()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
template<class Func >
__host__ void warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::for_each ( Func  f,
cudaStream_t  stream = 0,
index_type  smem_bytes = 0 
) const
inlinenoexcept

applies a funtion on all keys inside the table

Template Parameters
Functype of map i.e. CUDA device lambda
Parameters
[in]fmap to apply
[in]streamCUDA stream in which this operation is executed in
[in]sizeof shared memory to reserve for this execution

Definition at line 472 of file hash_set.cuh.

◆ init() [1/2]

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__host__ void warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::init ( const cudaStream_t  stream = 0)
inlinenoexcept

(re)initialize the hash set

Parameters
[in]streamCUDA stream in which this operation is executed in

Definition at line 181 of file hash_set.cuh.

◆ init() [2/2]

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__host__ void warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::init ( const key_type  seed,
const cudaStream_t  stream = 0 
)
inlinenoexcept

(re)initialize the hash set

Parameters
[in]seedrandom seed
[in]streamCUDA stream in which this operation is executed in

Definition at line 161 of file hash_set.cuh.

◆ insert() [1/2]

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
template<class StatusHandler = defaults::status_handler_t>
__host__ void warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::insert ( const key_type keys_in,
index_type  num_in,
cudaStream_t  stream = 0,
index_type  probing_length = defaults::probing_length(),
typename StatusHandler::base_type *  status_out = nullptr 
)
inlinenoexcept

insert a set of keys into the hash set

Template Parameters
StatusHandlerhandles returned status per key (see status_handlers)
Parameters
[in]keys_inpointer to keys to insert into the hash set
[in]num_innumber of keys to insert
[in]streamCUDA stream in which this operation is executed in
[in]probing_lengthmaximum number of probing attempts
[out]status_outstatus information per key

Definition at line 266 of file hash_set.cuh.

◆ insert() [2/2]

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__device__ Status warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::insert ( key_type  key_in,
const cg::thread_block_tile< cg_size()> &  group,
index_type  probing_length = defaults::probing_length() 
)
inlinenoexcept

inserts a key into the hash set

Parameters
[in]key_inkey to insert into the hash set
[in]groupcooperative group
[in]probing_lengthmaximum number of probing attempts
Returns
status (per thread)

Definition at line 193 of file hash_set.cuh.

◆ is_copy()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__host____device__ bool warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::is_copy ( ) const
inlinenoexcept

indicates if this object is a shallow copy

Returns
bool

Definition at line 678 of file hash_set.cuh.

◆ is_empty_key()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
static constexpr __host____device__ bool warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::is_empty_key ( key_type  key)
inlinestaticconstexprnoexcept

checks if key is equal to EmptyKey

Returns
bool

Definition at line 651 of file hash_set.cuh.

◆ is_tombstone_key()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
static constexpr __host____device__ bool warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::is_tombstone_key ( key_type  key)
inlinestaticconstexprnoexcept

checks if key is equal to TombstoneKey

Returns
bool

Definition at line 660 of file hash_set.cuh.

◆ is_valid_key()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
static constexpr __host____device__ bool warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::is_valid_key ( key_type  key)
inlinestaticconstexprnoexcept

checks if key is equal to (EmptyKey||TombstoneKey)

Returns
bool

Definition at line 669 of file hash_set.cuh.

◆ load_factor()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__host__ float warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::load_factor ( cudaStream_t  stream = 0) const
inlinenoexcept

current load factor of the hash set

Parameters
streamCUDA stream in which this operation is executed in
Returns
load factor

Definition at line 564 of file hash_set.cuh.

◆ peek_status()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__host__ Status warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::peek_status ( cudaStream_t  stream = 0) const
inlinenoexcept

get the status of the hash table

Parameters
streamCUDA stream in which this operation is executed in
Returns
the status

Definition at line 602 of file hash_set.cuh.

◆ pop_status()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__host__ Status warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::pop_status ( cudaStream_t  stream = 0)
inlinenoexcept

get and reset the status of the hash table

Parameters
streamCUDA stream in which this operation is executed in
Returns
the status

Definition at line 626 of file hash_set.cuh.

◆ retrieve() [1/2]

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
template<class StatusHandler = defaults::status_handler_t>
__host__ void warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::retrieve ( const key_type keys_in,
index_type  num_in,
bool *  flags_out,
cudaStream_t  stream = 0,
index_type  probing_length = defaults::probing_length(),
typename StatusHandler::base_type *  status_out = nullptr 
) const
inlinenoexcept

retrieve a set of keys from the hash table

Template Parameters
StatusHandlerhandles returned status per key (see status_handlers)
Parameters
[in]keys_inpointer to keys to retrieve from the hash table
[in]num_innumber of keys to retrieve
[out]flags_outflags membership of keys_in in the set
[in]streamCUDA stream in which this operation is executed in
[in]probing_lengthmaximum number of probing attempts
[out]status_outstatus information (per key)

Definition at line 342 of file hash_set.cuh.

◆ retrieve() [2/2]

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__device__ Status warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::retrieve ( Key  key_in,
bool &  flag_out,
const cg::thread_block_tile< cg_size()> &  group,
index_type  probing_length = defaults::probing_length() 
) const
inlinenoexcept

retrieves a key from the hash set

Parameters
[in]key_inkey to retrieve from the hash set
[out]flag_outtrue iff key_in is member of the set
[in]groupcooperative group
[in]probing_lengthmaximum number of probing attempts
Returns
status (per thread)

Definition at line 292 of file hash_set.cuh.

◆ retrieve_all()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__host__ void warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::retrieve_all ( key_type keys_out,
index_type num_out,
cudaStream_t  stream = 0 
) const
inlinenoexcept

retrieves all elements from the hash set

Parameters
[out]keys_outlocation to store all retrieved keys
[out]num_outnumber of of keys retrieved
[in]streamCUDA stream in which this operation is executed in

Definition at line 367 of file hash_set.cuh.

◆ size()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__host__ index_type warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::size ( cudaStream_t  stream = 0) const
inlinenoexcept

number of key/value pairs stored inside the hash set

Returns
the number of key/value pairs inside the hash table

Definition at line 500 of file hash_set.cuh.

◆ storage_density()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
__host__ float warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::storage_density ( cudaStream_t  stream = 0) const
inlinenoexcept

current storage density of the hash set

Parameters
streamCUDA stream in which this operation is executed in
Returns
storage density

Definition at line 574 of file hash_set.cuh.

◆ tombstone_key()

template<class Key , Key EmptyKey = defaults::empty_key<Key>(), Key TombstoneKey = defaults::tombstone_key<Key>(), class ProbingScheme = defaults::probing_scheme_t<Key, 16>, index_t TempMemoryBytes = defaults::temp_memory_bytes()>
static constexpr __host____device__ key_type warpcore::HashSet< Key, EmptyKey, TombstoneKey, ProbingScheme, TempMemoryBytes >::tombstone_key ( )
inlinestaticconstexprnoexcept

get tombstone key

Returns
tombstone key

Definition at line 62 of file hash_set.cuh.


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