cuSBF
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions
fastx_chunk.cuh File Reference
#include <cuda_runtime.h>
#include <cstddef>
#include <cstdint>
#include <cusbf/detail/record_math.cuh>
#include <filesystem>
#include <format>
#include <stdexcept>
#include <string_view>
#include <cusbf/config.cuh>
#include <cusbf/detail/fastx_host_limits.cuh>
#include <cusbf/error.hpp>

Go to the source code of this file.

Classes

struct  cusbf::detail::cuda_free_memory
 Driver-reported free device memory (bytes available for new allocations). More...
 

Namespaces

namespace  cusbf
 
namespace  cusbf::detail
 

Enumerations

enum class  cusbf::detail::fastx_chunk_mode { cusbf::detail::insert , cusbf::detail::query }
 FASTX mode used to size GPU staging buffers. More...
 

Functions

Result< cuda_free_memorycusbf::detail::query_cuda_free_memory ()
 Queries current device free memory via cudaMemGetInfo.
 
constexpr size_t cusbf::detail::fastx_chunk_slack_bytes () noexcept
 Reserved device memory left for allocator and kernel temporaries.
 
uint64_t cusbf::detail::fastx_file_bytes (const std::filesystem::path &path)
 
template<typename Config >
constexpr uint64_t cusbf::detail::fastx_record_symbol_count (uint64_t bases) noexcept
 
template<typename Config >
constexpr uint64_t cusbf::detail::fastx_record_kmer_count (uint64_t bases) noexcept
 
template<typename Config >
constexpr uint64_t cusbf::detail::estimate_normalized_sequence_bytes (uint64_t raw_bytes, uint64_t record_count) noexcept
 Upper bound on normalized sequence bytes for a raw host chunk.
 
template<typename Config >
constexpr uint64_t cusbf::detail::estimate_insert_staging_bytes (uint64_t raw_bytes, uint64_t record_count) noexcept
 Peak device bytes for insert staging (d_sequence_) for a host chunk.
 
template<typename Config >
constexpr uint64_t cusbf::detail::estimate_query_staging_bytes (uint64_t raw_bytes, uint64_t record_count) noexcept
 Peak device bytes for query staging (d_sequence_ + d_resultBuffer_).
 
template<typename Config >
constexpr size_t cusbf::detail::fastx_staging_budget_bytes (double fill_fraction, size_t free_bytes) noexcept
 Device staging byte budget derived from free VRAM and fill_fraction.
 
template<typename Config >
constexpr bool cusbf::detail::fastx_chunk_reached_staging_budget (fastx_chunk_mode mode, size_t staging_budget_bytes, uint64_t raw_bytes, uint64_t record_count) noexcept
 Whether estimated device staging meets or exceeds staging_budget_bytes.
 
constexpr size_t cusbf::detail::fastx_pipelined_chunk_budget (fastx_chunk_mode mode, size_t staging_budget_bytes) noexcept
 Per-chunk flush budget for dual-stream ping-pong (two device sequence buffers).
 
template<typename Config >
bool cusbf::detail::fastx_chunk_should_flush (fastx_chunk_mode mode, size_t gpu_staging_budget_bytes, size_t host_chunk_max_bytes, uint64_t raw_chunk_bytes, uint64_t record_count) noexcept
 Whether a host chunk should flush based on GPU staging and host byte limits.
 
template<typename Config >
bool cusbf::detail::fastx_file_fits_gpu_staging (const std::filesystem::path &path, fastx_chunk_mode mode, double fill_fraction)
 Whether the entire uncompressed file fits in one GPU staging pass.
 
template<typename Config >
Result< voidcusbf::detail::validate_fastx_staging_fits (fastx_chunk_mode mode, double fill_fraction, uint64_t raw_bytes, uint64_t record_count, std::string_view source_name)