|
cuDDL
|
Move-only owner of one immutable contiguous reference database. More...
Public Types | |
| using | layout_type = Layout |
| using | score_type = uint16_t |
| using | result_type = reference_search_result |
| using | batch_result_type = packed_pairwise_counts |
Public Member Functions | |
| reference_database (reference_database const &)=delete | |
| reference_database & | operator= (reference_database const &)=delete |
| __host__ | ~reference_database () |
| reference_database (reference_database &&other) noexcept | |
| reference_database & | operator= (reference_database &&other) noexcept |
| Result< void > | copy_scores_async (device_span< score_type > scores, cuda::stream_ref stream) const |
Writes the reference scores, row-major in reference-ID order, to scores. | |
| std::span< std::string const > | names () const noexcept |
| Reference labels in reference-ID order. | |
| reference_database_metadata | metadata () const noexcept |
| Compatibility metadata and reference count. | |
| uint32_t | reference_count () const noexcept |
| Reference count. | |
| cuda::device_ref | device () const noexcept |
| Device holding the rows: the device of the stream that built them. | |
| size_t | persistent_row_bytes () const noexcept |
| Bytes this database's own row store needs. | |
| size_t | single_query_workspace_bytes () const noexcept |
| Caller-owned bytes for one exhaustive query on this database; always zero. | |
| uint32_t | single_query_result_count () const noexcept |
| Results one exhaustive query writes: one per reference. | |
| Result< void > | search_async (device_span< score_type const > query, score_compatibility const &query_compatibility, device_span< uint8_t > workspace, device_span< result_type > results, cuda::stream_ref stream) const |
| template<typename OnTile > | |
| Result< void > | search_batch_async (device_span< score_type const > queries, score_compatibility const &query_compatibility, uint32_t query_id_offset, device_span< uint8_t > workspace, device_span< batch_result_type > results, OnTile &&on_tile, device_span< uint32_t > result_match_counts, cuda::stream_ref stream) const |
| template<typename OnTile > | |
| Result< void > | search_all_to_all_async (device_span< uint8_t > workspace, device_span< batch_result_type > results, OnTile &&on_tile, device_span< uint32_t > result_match_counts, cuda::stream_ref stream, all_to_all_shard shard={}) const |
| template<typename OnTile > | |
| Result< void > | search_all_to_all_async (device_span< uint8_t > workspace, device_span< batch_result_type > results, OnTile &&on_tile, device_span< uint32_t > result_match_counts, cuda::stream_ref stream, all_to_all_tile_queue &tiles) const |
Exhaustive search of the tiles claimed from tiles; see all_to_all_tile_queue. | |
| Result< size_t > | search_workspace_bytes (cuda::stream_ref stream, reference_index< K, BucketCount, Layout > const *index=nullptr) const |
| Result< cuddl::batch_search_requirements > | batch_search_requirements (uint32_t query_count, cuda::stream_ref stream, reference_index< K, BucketCount, Layout > const *index=nullptr) const |
| Result< cuddl::batch_search_requirements > | all_to_all_search_requirements (reference_index< K, BucketCount, Layout > const *index=nullptr) const |
| Result< void > | search_async (device_span< score_type const > query, score_compatibility const &query_compatibility, device_span< uint8_t > workspace, device_span< result_type > results, device_span< uint32_t > result_count, search_options options, cuda::stream_ref stream, reference_index< K, BucketCount, Layout > const *index=nullptr) const |
| template<typename OnTile > | |
| Result< void > | search_batch_async (device_span< score_type const > queries, score_compatibility const &query_compatibility, uint32_t query_id_offset, device_span< uint8_t > workspace, device_span< batch_result_type > results, OnTile &&on_tile, device_span< uint32_t > result_match_counts, search_options options, cuda::stream_ref stream, reference_index< K, BucketCount, Layout > const *index=nullptr) const |
| template<typename OnTile > | |
| Result< void > | search_all_to_all_async (device_span< uint8_t > workspace, device_span< batch_result_type > results, OnTile &&on_tile, device_span< uint32_t > result_match_counts, search_options options, cuda::stream_ref stream, reference_index< K, BucketCount, Layout > const *index=nullptr, all_to_all_shard shard={}) const |
| template<typename OnTile > | |
| Result< void > | search_all_to_all_async (device_span< uint8_t > workspace, device_span< batch_result_type > results, OnTile &&on_tile, device_span< uint32_t > result_match_counts, search_options options, cuda::stream_ref stream, reference_index< K, BucketCount, Layout > const *index, all_to_all_tile_queue &tiles) const |
Indexed or threshold search of the tiles claimed from tiles; see all_to_all_tile_queue. | |
Static Public Member Functions | |
| static Result< reference_database > | build_async (device_span< score_type const > rows, score_compatibility compatibility, cuda::stream_ref stream) |
Builds a database from flat row-major scores on stream. | |
| static constexpr size_t | persistent_row_bytes (uint32_t reference_count) noexcept |
Bytes one compact row store needs for reference_count references. | |
| static constexpr size_t | single_query_workspace_bytes (uint32_t reference_count) noexcept |
| static constexpr uint32_t | all_to_all_result_capacity (uint32_t reference_count) noexcept |
| static constexpr uint32_t | single_query_result_count (uint32_t reference_count) noexcept |
Friends | |
| class | reference_index_file |
| template<uint32_t , size_t , typename > | |
| class | reference_index |
| class | reference_database_file |
Move-only owner of one immutable contiguous reference database.
Building enqueues row copies on the supplied stream. Inputs and the returned database must remain alive until that stream completes. The allocation stream must outlive the database. Complete work on other streams before destroying or move-assigning the database.
Definition at line 2919 of file reference_database.cuh.
| using cuddl::reference_database< K, BucketCount, Layout >::batch_result_type = packed_pairwise_counts |
Definition at line 2932 of file reference_database.cuh.
| using cuddl::reference_database< K, BucketCount, Layout >::layout_type = Layout |
Definition at line 2929 of file reference_database.cuh.
| using cuddl::reference_database< K, BucketCount, Layout >::result_type = reference_search_result |
Definition at line 2931 of file reference_database.cuh.
| using cuddl::reference_database< K, BucketCount, Layout >::score_type = uint16_t |
Definition at line 2930 of file reference_database.cuh.
|
delete |
|
inline |
Definition at line 2938 of file reference_database.cuh.
|
inlinenoexcept |
Definition at line 2940 of file reference_database.cuh.
|
inlinestaticconstexprnoexcept |
Definition at line 3065 of file reference_database.cuh.
|
inline |
Definition at line 3162 of file reference_database.cuh.
|
inline |
Definition at line 3153 of file reference_database.cuh.
|
inlinestatic |
Builds a database from flat row-major scores on stream.
The database keeps each row only as bit-planes (detail::score_plane_index), the layout every search compares 32 buckets at a time; rows is not retained. Grouping near-duplicate rows (detail::reference_delta_view) waits for stream once.
Definition at line 2965 of file reference_database.cuh.
|
inline |
Writes the reference scores, row-major in reference-ID order, to scores.
Definition at line 3002 of file reference_database.cuh.
|
inlinenoexcept |
Device holding the rows: the device of the stream that built them.
Definition at line 3040 of file reference_database.cuh.
|
inlinenoexcept |
Compatibility metadata and reference count.
Definition at line 3030 of file reference_database.cuh.
|
inlinenoexcept |
Reference labels in reference-ID order.
Definition at line 3025 of file reference_database.cuh.
|
inlinenoexcept |
Definition at line 2948 of file reference_database.cuh.
|
delete |
|
inlinenoexcept |
Bytes this database's own row store needs.
Definition at line 3050 of file reference_database.cuh.
|
inlinestaticconstexprnoexcept |
Bytes one compact row store needs for reference_count references.
Definition at line 3045 of file reference_database.cuh.
|
inlinenoexcept |
Reference count.
Definition at line 3035 of file reference_database.cuh.
|
inline |
Definition at line 3116 of file reference_database.cuh.
|
inline |
Exhaustive search of the tiles claimed from tiles; see all_to_all_tile_queue.
Definition at line 3132 of file reference_database.cuh.
|
inline |
Indexed or threshold search of the tiles claimed from tiles; see all_to_all_tile_queue.
Definition at line 3238 of file reference_database.cuh.
|
inline |
Definition at line 3213 of file reference_database.cuh.
|
inline |
Definition at line 3082 of file reference_database.cuh.
|
inline |
Definition at line 3169 of file reference_database.cuh.
|
inline |
Definition at line 3093 of file reference_database.cuh.
|
inline |
Definition at line 3186 of file reference_database.cuh.
|
inline |
Definition at line 3145 of file reference_database.cuh.
|
inlinenoexcept |
Results one exhaustive query writes: one per reference.
Definition at line 3078 of file reference_database.cuh.
|
inlinestaticconstexprnoexcept |
Definition at line 3071 of file reference_database.cuh.
|
inlinenoexcept |
Caller-owned bytes for one exhaustive query on this database; always zero.
Definition at line 3061 of file reference_database.cuh.
|
inlinestaticconstexprnoexcept |
Definition at line 3054 of file reference_database.cuh.
|
friend |
Definition at line 2923 of file reference_database.cuh.
|
friend |
Definition at line 2922 of file reference_database.cuh.
|
friend |
Definition at line 2920 of file reference_database.cuh.