|
cuSBF
|
Non-owning device reference to sectorized filter storage. More...
Public Types | |
| using | block_type = filter_block< Config > |
Public Member Functions | |
| __host__ __device__ constexpr | filter_ref () noexcept |
| Default-constructed empty reference (no shard storage). | |
| __host__ __device__ constexpr | filter_ref (block_type *blocks, uint64_t num_blocks) noexcept |
Constructs a reference over blocks spanning num_blocks shards. | |
| __host__ __device__ block_type * | blocks () const noexcept |
| Raw pointer to the first 256-bit filter block (shard array base). | |
| __host__ __device__ uint64_t | num_blocks () const noexcept |
| Number of power-of-two shards in this filter. | |
| __device__ uint64_t | shard_index (uint64_t minimizer_hash) const noexcept |
Shard index for minimizer_hash within this filter. | |
| __device__ void | apply_word_masks (block_type &block, uint64_t m0, uint64_t m1, uint64_t m2, uint64_t m3) const |
Atomically ORs non-zero per-word Bloom masks into block. | |
Static Public Member Functions | |
| __host__ static __device__ uint64_t | shard_index (uint64_t minimizer_hash, uint64_t num_blocks) noexcept |
| Maps a minimizer hash to a shard index via low bits. | |
| static __device__ bool | sectorized_contains_packed_kmer (uint64_t packed_kmer, const uint64_t *shard_words) |
| Tests sectorized membership for a packed k-mer against shard words. | |
Non-owning device reference to sectorized filter storage.
Trivially copyable, intended to be passed by value into device code.
Definition at line 21 of file filter_ref.cuh.
| using cusbf::filter_ref< Config >::block_type = filter_block<Config> |
Definition at line 23 of file filter_ref.cuh.
|
inlineconstexprnoexcept |
Default-constructed empty reference (no shard storage).
Definition at line 26 of file filter_ref.cuh.
|
inlineconstexprnoexcept |
Constructs a reference over blocks spanning num_blocks shards.
num_blocks must be a power of two, shard selection uses low bits of the minimizer hash.
Definition at line 33 of file filter_ref.cuh.
|
inline |
Atomically ORs non-zero per-word Bloom masks into block.
Used by the insert kernel after warp-local reduction of hash masks.
Definition at line 95 of file filter_ref.cuh.
|
inlinenoexcept |
Raw pointer to the first 256-bit filter block (shard array base).
Definition at line 37 of file filter_ref.cuh.
|
inlinenoexcept |
Number of power-of-two shards in this filter.
Definition at line 42 of file filter_ref.cuh.
|
inlinestatic |
Tests sectorized membership for a packed k-mer against shard words.
All findere s-mers must hit set bits in the shard, returns false if any s-mer misses.
| packed_kmer | K-mer packed with Config::symbolBits per symbol. |
| shard_words | Four 64-bit words of the target shard (unaligned load path). |
Definition at line 71 of file filter_ref.cuh.
|
inlinenoexcept |
Shard index for minimizer_hash within this filter.
Definition at line 58 of file filter_ref.cuh.
|
inlinestaticnoexcept |
Maps a minimizer hash to a shard index via low bits.
| minimizer_hash | Minimizer hash for the k-mer window. |
| num_blocks | Power-of-two shard count. |
Definition at line 53 of file filter_ref.cuh.