|
cuSBF
|
One 256-bit filter block stored as an array of Config::blockWordCount words. More...
Static Public Member Functions | |
| template<uint64_t HashIndex> | |
| constexpr __host__ static __device__ uint64_t | sectorizedBitAddress (uint64_t baseHash) |
Maps a base hash to a bit position within word sector HashIndex. | |
| __device__ static __forceinline__ void | sectorizedHashToMasks (uint64_t baseHash, uint64_t &mask0, uint64_t &mask1, uint64_t &mask2, uint64_t &mask3) |
| Computes four word bitmasks from a single base hash. | |
Public Attributes | |
| uint64_t | words [wordCount] |
Static Public Attributes | |
| static constexpr uint64_t | wordCount = Config::blockWordCount |
| static constexpr uint64_t | wordBits = Config::wordBits |
| static constexpr int | wordBitsLog2 = cuda::std::bit_width(wordBits) - 1 |
| static constexpr uint64_t | wordMask = (1ULL << wordBitsLog2) - 1 |
| static constexpr int | hashShift = 64 - wordBitsLog2 |
| static constexpr uint64_t | sliceWidth = 64 / Config::hashCount |
| static constexpr bool | useBitSlicing = sliceWidth >= wordBitsLog2 |
One 256-bit filter block stored as an array of Config::blockWordCount words.
Each shard is addressed as a unit: a minimizer hash selects the shard, and the s-mer-derived hashes set/test bits within it.
The struct is 32-byte aligned to enable vectorised loads via cusbf::detail::load256BitGlobalNC.
Definition at line 397 of file BloomFilter.cuh.
|
inlinestaticconstexpr |
Maps a base hash to a bit position within word sector HashIndex.
Uses bit-slicing when the hash has enough entropy per slice; otherwise applies a multiplicative salt to redistribute bits.
| HashIndex | Hash function index in [0, Config::hashCount). |
| baseHash | The s-mer-derived hash value. |
HashIndex % blockWordCount. Definition at line 419 of file BloomFilter.cuh.
|
inlinestatic |
Computes four word bitmasks from a single base hash.
Iterates over all Config::hashCount hash functions and ORs the corresponding bit into one of the four output word masks (sectors 0-3).
| baseHash | s-mer-derived hash value. |
| mask0 | Accumulated bits for word 0 (in/out). |
| mask1 | Accumulated bits for word 1 (in/out). |
| mask2 | Accumulated bits for word 2 (in/out). |
| mask3 | Accumulated bits for word 3 (in/out). |
Definition at line 446 of file BloomFilter.cuh.
|
staticconstexpr |
Definition at line 402 of file BloomFilter.cuh.
|
staticconstexpr |
Definition at line 403 of file BloomFilter.cuh.
|
staticconstexpr |
Definition at line 404 of file BloomFilter.cuh.
|
staticconstexpr |
Definition at line 399 of file BloomFilter.cuh.
|
staticconstexpr |
Definition at line 400 of file BloomFilter.cuh.
|
staticconstexpr |
Definition at line 398 of file BloomFilter.cuh.
|
staticconstexpr |
Definition at line 401 of file BloomFilter.cuh.
| uint64_t cusbf::Filter< Config >::Shard::words[wordCount] |
Definition at line 406 of file BloomFilter.cuh.