|
cuSBF
|
Compile-time configuration for a cusbf::filter. More...
Public Types | |
| using | Alphabet = Alphabet_ |
Static Public Attributes | |
| static constexpr uint16_t | k = K_ |
| K-mer length in symbols. | |
| static constexpr uint16_t | m = M_ |
| Minimizer width in symbols. | |
| static constexpr uint16_t | s = S_ |
| S-mer width (Bloom hash seed) in symbols. | |
| static constexpr uint64_t | hashCount = HashCount_ |
| Independent Bloom hash functions. | |
| static constexpr uint64_t | alphabetSize = Alphabet::symbolCount |
| Number of symbols in the alphabet. | |
| static constexpr uint64_t | symbolWidth = Alphabet::symbolWidth |
| Input bytes per symbol. | |
| static constexpr uint64_t | symbolBits = cuda::std::bit_width(alphabetSize - 1) |
| Bits per packed symbol in a uint64_t k-mer. | |
| static constexpr uint64_t | symbolMask = (uint64_t{1} << symbolBits) - 1 |
| Low symbolBits mask for one encoded symbol. | |
| static constexpr uint64_t | filterBlockBits = 256 |
| Bits per shard (filter block). | |
| static constexpr uint64_t | cudaBlockSize = CudaBlockSize_ |
| CUDA threads per kernel block. | |
| static constexpr uint64_t | wordBits = 64 |
| Bits per shard word. | |
| static constexpr uint64_t | blockWordCount = filterBlockBits / wordBits |
| 64-bit words per 256-bit shard. | |
| static constexpr uint64_t | minimizerSpan = k - m + 1 |
| M-mers evaluated per k-mer window. | |
| static constexpr uint64_t | findereSpan = k - s + 1 |
| S-mers hashed per k-mer (findere). | |
| static constexpr uint64_t | insertGroupSize = blockWordCount |
| Threads cooperating on insert. | |
| static constexpr uint64_t | queryGroupSize = 1 |
| Threads cooperating on query (fused path). | |
| static constexpr uint64_t | maxRunKmers = cudaBlockSize |
| Max consecutive k-mers per warp run. | |
Compile-time configuration for a cusbf::filter.
All filter behaviour (k-mer length, minimizer width, s-mer width, hash count, CUDA block size, and alphabet) is encoded in this struct so that separate configurations produce completely independent Filter types with zero run-time overhead.
| K_ | k-mer length (1-32). |
| S_ | s-mer width used as the Bloom hash seed (1-k). |
| M_ | minimizer width used for shard selection (1-k). |
| HashCount_ | number of independent Bloom hash functions (1-16, default 4). |
| CudaBlockSize_ | CUDA threads per block (multiple of 32, default 256). |
| Alphabet_ | byte-to-symbol alphabet encoding. |
Definition at line 35 of file config.cuh.
| using cusbf::Config< K_, S_, M_, HashCount_, CudaBlockSize_, Alphabet_ >::Alphabet = Alphabet_ |
Definition at line 36 of file config.cuh.
|
staticconstexpr |
Number of symbols in the alphabet.
Definition at line 47 of file config.cuh.
|
staticconstexpr |
64-bit words per 256-bit shard.
Definition at line 62 of file config.cuh.
|
staticconstexpr |
CUDA threads per kernel block.
Definition at line 57 of file config.cuh.
|
staticconstexpr |
Bits per shard (filter block).
Definition at line 55 of file config.cuh.
|
staticconstexpr |
S-mers hashed per k-mer (findere).
Definition at line 66 of file config.cuh.
|
staticconstexpr |
Independent Bloom hash functions.
Definition at line 45 of file config.cuh.
|
staticconstexpr |
Threads cooperating on insert.
Definition at line 68 of file config.cuh.
|
staticconstexpr |
K-mer length in symbols.
Definition at line 39 of file config.cuh.
|
staticconstexpr |
Minimizer width in symbols.
Definition at line 41 of file config.cuh.
|
staticconstexpr |
Max consecutive k-mers per warp run.
Definition at line 72 of file config.cuh.
|
staticconstexpr |
M-mers evaluated per k-mer window.
Definition at line 64 of file config.cuh.
|
staticconstexpr |
Threads cooperating on query (fused path).
Definition at line 70 of file config.cuh.
|
staticconstexpr |
S-mer width (Bloom hash seed) in symbols.
Definition at line 43 of file config.cuh.
|
staticconstexpr |
Bits per packed symbol in a uint64_t k-mer.
Definition at line 51 of file config.cuh.
|
staticconstexpr |
Low symbolBits mask for one encoded symbol.
Definition at line 53 of file config.cuh.
|
staticconstexpr |
Input bytes per symbol.
Definition at line 49 of file config.cuh.
|
staticconstexpr |
Bits per shard word.
Definition at line 60 of file config.cuh.