cuSBF
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
dense_packed.cuh File Reference
#include <cuda/__cmath/ceil_div.h>
#include <cstdint>
#include <cusbf/config.cuh>
#include <cusbf/device_span.cuh>

Go to the source code of this file.

Classes

struct  cusbf::detail::DensePackedKmerInput< Config >
 Device-side view of a dense packed symbol sequence. More...
 

Namespaces

namespace  cusbf
 
namespace  cusbf::detail
 

Functions

template<typename Config >
constexpr uint64_t cusbf::detail::dense_packed_symbols_per_word ()
 Encoded symbols stored in each uint64_t word for Config.
 
template<typename Config >
constexpr uint64_t cusbf::detail::dense_packed_word_count (uint64_t num_symbols)
 Returns the number of uint64_t words required for num_symbols encoded symbols.
 
template<typename Config >
constexpr uint64_t cusbf::detail::dense_packed_kmer_count (uint64_t num_symbols)
 Returns the number of k-mer windows in a dense packed symbol sequence.
 
template<typename Config >
__device__ __forceinline__ uint8_t cusbf::detail::dense_packed_symbol_at (const uint64_t *words, uint64_t symbol_index)
 Decodes one packed symbol at global index symbol_index.
 
template<typename Config >
__device__ __forceinline__ uint8_t cusbf::detail::dense_packed_symbol_at_local (const uint64_t *word_tile, uint64_t first_word_index, uint64_t symbol_index)
 Decodes one packed symbol from a block-local word tile.
 
template<typename Config >
__device__ __forceinline__ bool cusbf::detail::prepare_dense_packed_tiles (const uint64_t *words, uint64_t block_start_kmer, uint64_t block_kmers, uint64_t *word_tile, uint8_t *sequence_tile)
 Fills sequence_tile with encoded symbols for k-mers starting at block_start_kmer.
 
template<typename Config >
__global__ void cusbf::detail::pack_dense_sequence_kernel (const char *sequence, uint64_t num_symbols, uint64_t *words)
 Packs an encoded byte sequence into dense symbolBits-wide uint64_t words.