|
| template<typename Config > |
| __global__ void | cusbf::detail::containsSequenceKmersKernel (SequenceKmerInput< Config > input, device_span< const typename Filter< Config >::Shard > shards, device_span< uint8_t > output) |
| | CUDA kernel: queries k-mers from a sequence against the filter.
|
| |
| template<typename Config > |
| __device__ __forceinline__ bool | cusbf::detail::prepareSequenceHashTiles (const char *sequence, uint64_t blockStartKmer, uint64_t blockKmers, uint8_t *sequenceTile) |
| | Cooperatively loads and encodes a tile of symbols into shared memory.
|
| |
| template<typename Config > |
| __global__ void | cusbf::detail::insertSequenceKmersKernel (SequenceKmerInput< Config > input, device_span< typename Filter< Config >::Shard > shards) |
| | CUDA kernel: inserts k-mers from a sequence into the filter.
|
| |
| template<uint64_t Index> |
| __host__ __device__ __forceinline__ constexpr uint64_t | cusbf::detail::multiplicativeSaltLiteral () |
| | Returns the multiplicative salt constant for hash function Index.
|
| |
| template<typename Config , typename Fn , uint64_t... HashIndices> |
| __host__ __device__ __forceinline__ void | cusbf::detail::forEachHashIndexImpl (Fn &&fn, std::index_sequence< HashIndices... >) |
| | Implementation helper for forEachHashIndex (fold-expression over an index sequence).
|
| |
| template<typename Config , typename Fn > |
| __host__ __device__ __forceinline__ void | cusbf::detail::forEachHashIndex (Fn &&fn) |
| | Invokes fn for each hash index in [0, Config::hashCount) at compile time.
|
| |
| template<typename Config , uint64_t Length> |
| __host__ __device__ __forceinline__ constexpr uint64_t | cusbf::detail::packedWindowMask () |
| | Returns a bitmask covering Length packed alphabet symbols.
|
| |
| template<typename Config , uint64_t WindowLength, uint64_t K> |
| __host__ __device__ __forceinline__ constexpr uint64_t | cusbf::detail::extractPackedSubwindow (uint64_t packedKmer, uint64_t start) |
| | Extracts a packed sub-window from a packed k-mer.
|
| |
| __device__ __forceinline__ void | cusbf::detail::atomicOrWord (uint64_t *ptr, uint64_t value) |
| | Atomically ORs value into the device word at ptr.
|
| |
| template<typename Config > |
| __device__ __forceinline__ uint64_t | cusbf::detail::packedKmerMinimizerHash (uint64_t packedKmer) |
| | Computes the minimizer hash for a packed k-mer.
|
| |
| template<typename Config > |
| __device__ __forceinline__ uint64_t | cusbf::detail::packedKmerSmerHash (uint64_t packedKmer, uint64_t start) |
| | Computes the hash for the s-mer at position start within a packed k-mer.
|
| |
| template<typename Config > |
| __device__ __forceinline__ void | cusbf::detail::loadShardWords4 (const typename Filter< Config >::Shard *shards, uint64_t shardIndex, uint64_t *w) |
| | Loads all four 64-bit words of a shard into a local array.
|
| |
| template<typename Config , uint64_t K> |
| __device__ __forceinline__ uint64_t | cusbf::detail::packKmerFromTile (const uint8_t *tile, uint64_t start) |
| | Packs K symbols from a shared-memory tile into an integer.
|
| |
| template<typename Config , uint64_t K> |
| __device__ __forceinline__ uint64_t | cusbf::detail::advancePackedKmer (uint64_t packed, uint8_t newBase) |
| | Slides the packed k-mer window forward by one symbol.
|
| |
| template<typename Config > |
| __device__ __forceinline__ bool | cusbf::detail::sectorizedContainsPackedKmer (uint64_t packedKmer, const uint64_t *w) |
| | Tests whether a packed k-mer is present in a pre-loaded shard.
|
| |
| template<typename Config > |
| __device__ __forceinline__ bool | cusbf::detail::kmerIsValid (const uint8_t *tile, uint64_t start) |
| |