warpcore 0.0.1
Hashing at the Speed of Light on modern CUDA-accelerators
warpcore Namespace Reference

Namespaces

 checks
 assertion helpers
 
 defaults
 default types and values
 
 detail
 
 hashers
 hash functions
 
 kernels
 CUDA kernels.
 
 probing_schemes
 probing scheme iterators
 
 status_handlers
 status handlers to use for per key status information
 
 storage
 storage classes
 
 tags
 type tags
 

Classes

class  BloomFilter
 bloom filter More...
 
class  BucketListHashTable
 bucket list hash table More...
 
class  CountingHashTable
 counting hash table More...
 
class  HashSet
 hash set More...
 
struct  ArrayBucket
 
class  MultiBucketHashTable
 multi-value hash table More...
 
class  MultiValueHashTable
 multi-value hash table More...
 
class  SingleValueHashTable
 single-value hash table More...
 
class  Status
 status/error indicator More...
 

Typedefs

using index_t = std::uint64_t
 
using status_base_t = std::uint32_t
 

Functions

template<class T >
constexpr __host____device__ T transform_range (const T x, const T a, const T b, const T c, const T d) noexcept
 transforms interval (a, b) into interval (c, d) More...
 
template<class T , class Rng >
__host__ void uniform_distribution (T *out, std::uint64_t n, std::uint32_t seed) noexcept
 generates n uniform random elements on a CUDA device More...
 
template<class Rng = kiss::Kiss<std::uint32_t>>
__host__ void uniform_distribution (std::uint32_t *out, std::uint64_t n, std::uint32_t seed) noexcept
 
template<class Rng = kiss::Kiss<std::uint64_t>>
__host__ void uniform_distribution (std::uint64_t *out, std::uint64_t n, std::uint32_t seed) noexcept
 
template<class Rng = kiss::Kiss<std::uint32_t>>
__host__ void uniform_distribution (float *out, std::uint64_t n, std::uint32_t seed) noexcept
 
template<class Rng = kiss::Kiss<std::uint32_t>>
__host__ void uniform_distribution (double *out, std::uint64_t n, std::uint32_t seed) noexcept
 
template<class T , class Rng >
__host__ void unique_distribution (T *out, std::uint64_t n, std::uint32_t seed) noexcept
 generates n unique random elements on a CUDA device More...
 
template<class Rng = kiss::Kiss<std::uint32_t>>
__host__ void unique_distribution (std::uint32_t *out, std::uint64_t n, std::uint32_t seed) noexcept
 
template<class Rng = kiss::Kiss<std::uint64_t>>
__host__ void unique_distribution (std::uint64_t *out, std::uint64_t n, std::uint32_t seed) noexcept
 
template<class Rng = kiss::Kiss<std::uint32_t>>
__host__ void unique_distribution (float *out, std::uint64_t n, std::uint32_t seed) noexcept
 
template<class Rng = kiss::Kiss<std::uint32_t>>
__host__ void unique_distribution (double *out, std::uint64_t n, std::uint32_t seed) noexcept
 
template<class T , class Rng = kiss::Kiss<std::uint32_t>, class P = double>
__host__ void zipf_distribution (T *in, std::uint64_t n_in, T *out, std::uint64_t n_out, P s, std::uint32_t seed) noexcept
 generates n zipf distributed random elements on a CUDA device More...
 
template<class OStream >
OStream & operator<< (OStream &os, Status status)
 

Typedef Documentation

◆ index_t

using warpcore::index_t = typedef std::uint64_t

Definition at line 23 of file base.cuh.

◆ status_base_t

using warpcore::status_base_t = typedef std::uint32_t

Definition at line 24 of file base.cuh.

Function Documentation

◆ operator<<()

template<class OStream >
OStream& warpcore::operator<< ( OStream &  os,
Status  status 
)

Definition at line 217 of file status.cuh.

◆ transform_range()

template<class T >
constexpr __host____device__ T warpcore::transform_range ( const T  x,
const T  a,
const T  b,
const T  c,
const T  d 
)
inlineconstexprnoexcept

transforms interval (a, b) into interval (c, d)

Template Parameters
Tdata type
Parameters
[in]xvalue to be transformed into new interval
[in]alower bound of input interval
[in]bupper bound of input interval
[in]clower bound of output interval
[in]dupper bound of output interval
Returns
value in new interval

Definition at line 24 of file random_distributions.cuh.

◆ uniform_distribution() [1/5]

template<class Rng = kiss::Kiss<std::uint32_t>>
__host__ void warpcore::uniform_distribution ( double *  out,
std::uint64_t  n,
std::uint32_t  seed 
)
inlinenoexcept

Definition at line 126 of file random_distributions.cuh.

◆ uniform_distribution() [2/5]

template<class Rng = kiss::Kiss<std::uint32_t>>
__host__ void warpcore::uniform_distribution ( float *  out,
std::uint64_t  n,
std::uint32_t  seed 
)
inlinenoexcept

Definition at line 113 of file random_distributions.cuh.

◆ uniform_distribution() [3/5]

template<class Rng = kiss::Kiss<std::uint32_t>>
__host__ void warpcore::uniform_distribution ( std::uint32_t *  out,
std::uint64_t  n,
std::uint32_t  seed 
)
inlinenoexcept

Definition at line 87 of file random_distributions.cuh.

◆ uniform_distribution() [4/5]

template<class Rng = kiss::Kiss<std::uint64_t>>
__host__ void warpcore::uniform_distribution ( std::uint64_t *  out,
std::uint64_t  n,
std::uint32_t  seed 
)
inlinenoexcept

Definition at line 100 of file random_distributions.cuh.

◆ uniform_distribution() [5/5]

template<class T , class Rng >
__host__ void warpcore::uniform_distribution ( T *  out,
std::uint64_t  n,
std::uint32_t  seed 
)
inlinenoexcept

generates n uniform random elements on a CUDA device

Template Parameters
Tdata type to be generated
Rngtype of random number generator
Parameters
[out]outpointer to the output array
[in]nnumber of elements to generate
[in]seedinitial random seed for the RNG

Definition at line 52 of file random_distributions.cuh.

◆ unique_distribution() [1/5]

template<class Rng = kiss::Kiss<std::uint32_t>>
__host__ void warpcore::unique_distribution ( double *  out,
std::uint64_t  n,
std::uint32_t  seed 
)
inlinenoexcept

Definition at line 237 of file random_distributions.cuh.

◆ unique_distribution() [2/5]

template<class Rng = kiss::Kiss<std::uint32_t>>
__host__ void warpcore::unique_distribution ( float *  out,
std::uint64_t  n,
std::uint32_t  seed 
)
inlinenoexcept

Definition at line 224 of file random_distributions.cuh.

◆ unique_distribution() [3/5]

template<class Rng = kiss::Kiss<std::uint32_t>>
__host__ void warpcore::unique_distribution ( std::uint32_t *  out,
std::uint64_t  n,
std::uint32_t  seed 
)
inlinenoexcept

Definition at line 198 of file random_distributions.cuh.

◆ unique_distribution() [4/5]

template<class Rng = kiss::Kiss<std::uint64_t>>
__host__ void warpcore::unique_distribution ( std::uint64_t *  out,
std::uint64_t  n,
std::uint32_t  seed 
)
inlinenoexcept

Definition at line 211 of file random_distributions.cuh.

◆ unique_distribution() [5/5]

template<class T , class Rng >
__host__ void warpcore::unique_distribution ( T *  out,
std::uint64_t  n,
std::uint32_t  seed 
)
inlinenoexcept

generates n unique random elements on a CUDA device

Template Parameters
Tdata type to be generated
Rngtype of random number generator
Parameters
[out]outpointer to the output array
[in]nnumber of elements to generate
[in]seedinitial random seed for the RNG

Definition at line 146 of file random_distributions.cuh.

◆ zipf_distribution()

template<class T , class Rng = kiss::Kiss<std::uint32_t>, class P = double>
__host__ void warpcore::zipf_distribution ( T *  in,
std::uint64_t  n_in,
T *  out,
std::uint64_t  n_out,
s,
std::uint32_t  seed 
)
inlinenoexcept

generates n zipf distributed random elements on a CUDA device

Template Parameters
Tdata type to be generated
Rngtype of random number generator
Pdata type used for probabilities
Parameters
[in]inset of unique elements to be considered
[in]n_incardinality of input set
[out]outpointer to the output array
[in]n_outnumber of elements to generate
[in]sskew of the distribution
[in]seedinitial random seed for the RNG

Definition at line 261 of file random_distributions.cuh.