Raptor 4.0.0-rc.1
A fast and space-efficient pre-filter
Loading...
Searching...
No Matches
raptor::min_ibf_fpga_oneapi< chunk_bits, profile > Class Template Reference
+ Collaboration diagram for raptor::min_ibf_fpga_oneapi< chunk_bits, profile >:

Classes

struct  buffer_data
 

Public Member Functions

void count (std::filesystem::path const &query_path, std::filesystem::path const &output_path)
 
std::string get_library_name () const
 
size_t hash_function_count () const
 
 min_ibf_fpga_oneapi (std::filesystem::path const &index_path, size_t minimalNumberOfMinimizers, size_t maximalNumberOfMinimizers, std::vector< size_t > thresholds, uint8_t const bufferSizeMiB, uint8_t const numberOfKernelCopys)
 

Private Types

using Chunk = ac_int<chunk_bits, false>
 
using HostSizeType = min_ibf_fpga::backend_sycl::HostSizeType
 
using timeUnit = std::chrono::duration<double, std::milli>
 
template<typename T >
using unique_utilities_ptr = std::unique_ptr<T, decltype(utilities_QueueDeleter)>
 

Private Member Functions

template<typename T >
unique_utilities_ptr< T > malloc_device_utilities (size_t const count)
 
template<typename T >
unique_utilities_ptr< T > malloc_host_utilities (size_t const count)
 
void setup_fpga ()
 

Static Private Member Functions

static double getRuntime (std::vector< sycl::event > const events)
 
static double getRuntime (sycl::event const &event)
 
static double getRuntime (sycl::event const &startEvent, sycl::event const &endEvent)
 
static void printDuration (std::string const &label, std::chrono::steady_clock::time_point const &start, std::chrono::steady_clock::duration duration=std::chrono::steady_clock::duration())
 
static void printDurationFromEvent (std::string const &label, sycl::event const event)
 

Private Attributes

size_t const bufferSizeBytes
 
std::chrono::nanoseconds constructorDuration {}
 
std::array< buffer_data, 2 > double_buffer
 
raptor::raptor_index< raptor::index_structure::ibf > index
 
sycl::queue kernelQueue
 
size_t const maximalNumberOfMinimizers {}
 
size_t const minimalNumberOfMinimizers {}
 
size_t const numberOfKernelCopys
 
std::array< sycl::event, 2 > setupEvents
 
size_t technical_bins {}
 
std::vector< size_t > thresholds_size_t
 
std::function< void(void *) utilities_QueueDeleter )
 
sycl::queue utilitiesQueue
 

Static Private Attributes

static constexpr bool is_emulator
 

Member Data Documentation

◆ is_emulator

template<size_t chunk_bits, bool profile = false>
constexpr bool raptor::min_ibf_fpga_oneapi< chunk_bits, profile >::is_emulator
staticconstexprprivate
Initial value:
=
false

◆ utilities_QueueDeleter

template<size_t chunk_bits, bool profile = false>
std::function<void(void *) raptor::min_ibf_fpga_oneapi< chunk_bits, profile >::utilities_QueueDeleter)
private
Initial value:
= [this](void * ptr)
{
sycl::free(ptr, utilitiesQueue);
}

The documentation for this class was generated from the following file:
Hide me