GENIE
|
Classes | |
struct | data_t |
Functions | |
void | heap_count_topk (thrust::device_vector< genie::matching::data_t > &d_data, thrust::device_vector< genie::matching::data_t > &d_topk, thrust::device_vector< u32 > &d_threshold, thrust::device_vector< u32 > &d_passCount, int topk, int num_of_queries) |
SearchResult | Match (const std::shared_ptr< const genie::table::inv_table > &table, const std::vector< genie::query::Query > &queries, const uint32_t dim, const uint32_t k) |
void | knn (genie::table::inv_table &table, std::vector< genie::query::Query > &queries, thrust::device_vector< int > &d_top_indexes, thrust::device_vector< int > &d_top_count, int hash_table_size, int max_load, int bitmap_bits) |
void | knn_MT (std::vector< genie::table::inv_table *> &table, std::vector< std::vector< genie::query::Query > > &queries, std::vector< thrust::device_vector< int > > &d_top_indexes, std::vector< thrust::device_vector< int > > &d_top_count, std::vector< int > &hash_table_size, std::vector< int > &max_load, int bitmap_bits) |
void | knn_bijectMap (genie::table::inv_table &table, std::vector< genie::query::Query > &queries, thrust::device_vector< int > &d_top_indexes, thrust::device_vector< int > &d_top_count, int hash_table_size, int max_load, int bitmap_bits) |
void | knn_bijectMap_MT (std::vector< genie::table::inv_table *> &table, std::vector< std::vector< genie::query::Query > > &queries, std::vector< thrust::device_vector< int > > &d_top_indexes, std::vector< thrust::device_vector< int > > &d_top_count, std::vector< int > &hash_table_size, std::vector< int > &max_load, int bitmap_bits) |
__global__ void | match_AT (int m_size, int i_size, int hash_table_size, int *d_inv, Query::dim *d_dims, T_HASHTABLE *hash_table_list, u32 *bitmap_list, int bitmap_bits, u32 *d_topks, u32 *d_threshold, u32 *d_passCount, u32 num_of_max_count, u32 *noiih, bool *overflow, unsigned int shift_bits_subsequence) |
int | build_queries (vector< Query > &queries, inv_table &table, vector< Query::dim > &dims, int max_load) |
int | cal_max_topk (vector< Query > &queries) |
void | match (inv_table &table, vector< Query > &queries, device_vector< data_t > &d_data, device_vector< u32 > &d_bitmap, int hash_table_size, int max_load, int bitmap_bits, device_vector< u32 > &d_noiih, device_vector< u32 > &d_threshold, device_vector< u32 > &d_passCount) |
void | match_MT (vector< inv_table *> &table, vector< vector< Query > > &queries, vector< device_vector< data_t > > &d_data, vector< device_vector< u32 > > &d_bitmap, vector< int > &hash_table_size, vector< int > &max_load, int bitmap_bits, vector< device_vector< u32 > > &d_noiih, vector< device_vector< u32 > > &d_threshold, vector< device_vector< u32 > > &d_passCount, size_t start, size_t finish) |
int | cal_max_topk (std::vector< genie::query::Query > &queries) |
void | match (genie::table::inv_table &table, std::vector< genie::query::Query > &queries, thrust::device_vector< genie::matching::data_t > &d_data, thrust::device_vector< u32 > &d_bitmap, int hash_table_size, int max_load, int bitmap_bits, thrust::device_vector< u32 > &d_noiih, thrust::device_vector< u32 > &d_threshold, thrust::device_vector< u32 > &d_passCount) |
Search the inv_table and save the match result into d_count and d_aggregation. More... | |
void | match_MT (std::vector< genie::table::inv_table *> &table, std::vector< std::vector< genie::query::Query > > &queries, std::vector< thrust::device_vector< genie::matching::data_t > > &d_data, std::vector< thrust::device_vector< u32 > > &d_bitmap, std::vector< int > &hash_table_size, std::vector< int > &max_load, int bitmap_bits, std::vector< thrust::device_vector< u32 > > &d_noiih, std::vector< thrust::device_vector< u32 > > &d_threshold, std::vector< thrust::device_vector< u32 > > &d_passCount, size_t start, size_t finish) |
int | build_queries (std::vector< genie::query::Query > &queries, genie::table::inv_table &table, std::vector< genie::query::Query::dim > &dims, int max_load) |
__global__ void | convert_to_data (T_HASHTABLE *table, u32 size) |
__forceinline__ __host__ __device__ T_KEY | get_key_pos (T_HASHTABLE key) |
__forceinline__ __host__ __device__ T_AGE | get_key_age (T_HASHTABLE key) |
__host__ __forceinline__ __device__ u32 | get_key_attach_id (T_HASHTABLE key) |
__host__ __forceinline__ __device__ T_HASHTABLE | pack_key_pos (T_KEY p) |
__host__ __forceinline__ __device__ T_HASHTABLE | pack_key_pos_and_attach_id_and_age (T_KEY p, u32 i, T_AGE a) |
__forceinline__ __device__ u32 | hash (T_KEY key, T_AGE age, int hash_table_size) |
__forceinline__ __device__ __host__ void | print_binary (char *b, u32 data) |
__forceinline__ __device__ __host__ u32 | get_count (u32 data, int offset, int bits) |
__forceinline__ __device__ __host__ u32 | pack_count (u32 data, int offset, int bits, u32 count) |
__forceinline__ __device__ void | access_kernel (u32 id, T_HASHTABLE *htable, int hash_table_size, genie::query::Query::dim &q, bool *key_found) |
__device__ __forceinline__ void | access_kernel_AT (u32 id, T_HASHTABLE *htable, int hash_table_size, genie::query::Query::dim &q, u32 count, bool *key_found, u32 *my_threshold, bool *pass_threshold) |
__device__ __forceinline__ void | hash_kernel_AT (u32 id, T_HASHTABLE *htable, int hash_table_size, genie::query::Query::dim &q, u32 count, u32 *my_threshold, u32 *my_noiih, bool *overflow, bool *pass_threshold) |
__device__ __forceinline__ u32 | bitmap_kernel_AT (u32 access_id, u32 *bitmap, int bits, int my_threshold, bool *key_eligible) |
__device__ __forceinline__ void | updateThreshold (u32 *my_passCount, u32 *my_threshold, u32 my_topk, u32 count) |
template void | match_integrated< DeviceCopyCodec > (inv_compr_table &, std::vector< Query > &, thrust::device_vector< data_t > &, thrust::device_vector< u32 > &, int, int, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &) |
template void | match_integrated< DeviceDeltaCodec > (inv_compr_table &, std::vector< Query > &, thrust::device_vector< data_t > &, thrust::device_vector< u32 > &, int, int, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &) |
template void | match_integrated< DeviceBitPackingCodec > (inv_compr_table &, std::vector< Query > &, thrust::device_vector< data_t > &, thrust::device_vector< u32 > &, int, int, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &) |
template void | match_integrated< DeviceVarintCodec > (inv_compr_table &, std::vector< Query > &, thrust::device_vector< data_t > &, thrust::device_vector< u32 > &, int, int, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &) |
template void | match_integrated< DeviceCompositeCodec< DeviceBitPackingCodec, DeviceCopyCodec > > (inv_compr_table &, std::vector< Query > &, thrust::device_vector< data_t > &, thrust::device_vector< u32 > &, int, int, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &) |
template void | match_integrated< DeviceCompositeCodec< DeviceBitPackingCodec, DeviceVarintCodec > > (inv_compr_table &, std::vector< Query > &, thrust::device_vector< data_t > &, thrust::device_vector< u32 > &, int, int, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &) |
template void | match_integrated< DeviceSerialCodec< DeviceCopyCodec, DeviceCopyCodec > > (inv_compr_table &, std::vector< Query > &, thrust::device_vector< data_t > &, thrust::device_vector< u32 > &, int, int, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &) |
template void | match_integrated< DeviceSerialCodec< DeviceDeltaCodec, DeviceCopyCodec > > (inv_compr_table &, std::vector< Query > &, thrust::device_vector< data_t > &, thrust::device_vector< u32 > &, int, int, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &) |
template void | match_integrated< DeviceSerialCodec< DeviceDeltaCodec, DeviceDeltaCodec > > (inv_compr_table &, std::vector< Query > &, thrust::device_vector< data_t > &, thrust::device_vector< u32 > &, int, int, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &) |
template void | match_integrated< DeviceSerialCodec< DeviceDeltaCodec, DeviceVarintCodec > > (inv_compr_table &, std::vector< Query > &, thrust::device_vector< data_t > &, thrust::device_vector< u32 > &, int, int, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &) |
template void | match_integrated< DeviceSerialCodec< DeviceDeltaCodec, DeviceBitPackingCodec > > (inv_compr_table &, std::vector< Query > &, thrust::device_vector< data_t > &, thrust::device_vector< u32 > &, int, int, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &) |
template void | match_integrated< DeviceSerialCodec< DeviceDeltaCodec, DeviceCompositeCodec< DeviceBitPackingCodec, DeviceCopyCodec > > > (inv_compr_table &, std::vector< Query > &, thrust::device_vector< data_t > &, thrust::device_vector< u32 > &, int, int, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &) |
template void | match_integrated< DeviceSerialCodec< DeviceDeltaCodec, DeviceCompositeCodec< DeviceBitPackingCodec, DeviceVarintCodec > > > (inv_compr_table &, std::vector< Query > &, thrust::device_vector< data_t > &, thrust::device_vector< u32 > &, int, int, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &, thrust::device_vector< u32 > &) |
int | getBitmapSize (int &in_out_bitmap_bits, u32 in_shift_bits_subsequence, int in_number_of_data_points, int in_queries_size) |
int | build_compressed_queries (vector< Query > &queries, inv_compr_table *ctable, vector< Query::dim > &dims, int max_load) |
template<class Codec > | |
__global__ void | match_adaptiveThreshold_integrated (int m_size, int i_size, int hash_table_size, uint32_t *d_compr_inv, Query::dim *d_dims, T_HASHTABLE *hash_table_list, u32 *bitmap_list, int bitmap_bits, u32 *d_topks, u32 *d_threshold, u32 *d_passCount, u32 num_of_max_count, u32 *noiih, bool *overflow, unsigned int shift_bits_subsequence) |
template<class Codec > | |
void | match_integrated (genie::table::inv_compr_table &table, std::vector< genie::query::Query > &queries, thrust::device_vector< genie::matching::data_t > &d_data, thrust::device_vector< u32 > &d_bitmap, int hash_table_size, int bitmap_bits, thrust::device_vector< u32 > &d_noiih, thrust::device_vector< u32 > &d_threshold, thrust::device_vector< u32 > &d_passCount) |
Variables | |
const size_t | MATCH_THREADS_PER_BLOCK = 256 |
const T_AGE | MAX_AGE = 16u |
const uint32_t | KEY_TYPE_BITS = 28u |
const uint32_t | KEY_TYPE_MASK = u32(u64((1ull) << KEY_TYPE_BITS) - 1u) |
const uint32_t | ATTACH_ID_TYPE_BITS = 32u |
const uint32_t | ATTACH_ID_TYPE_MASK = u32(u64((1ull) << ATTACH_ID_TYPE_BITS) - 1ul) |
const uint32_t | KEY_TYPE_INIT_AGE = 1u |
const uint32_t | KEY_TYPE_NULL_AGE = 0u |
__forceinline__ __device__ void genie::matching::access_kernel | ( | u32 | id, |
T_HASHTABLE * | htable, | ||
int | hash_table_size, | ||
genie::query::Query::dim & | q, | ||
bool * | key_found | ||
) |
Definition at line 94 of file match_device_utils.h.
__device__ __forceinline__ void genie::matching::access_kernel_AT | ( | u32 | id, |
T_HASHTABLE * | htable, | ||
int | hash_table_size, | ||
genie::query::Query::dim & | q, | ||
u32 | count, | ||
bool * | key_found, | ||
u32 * | my_threshold, | ||
bool * | pass_threshold | ||
) |
Definition at line 161 of file match_device_utils.h.
__device__ __forceinline__ u32 genie::matching::bitmap_kernel_AT | ( | u32 | access_id, |
u32 * | bitmap, | ||
int | bits, | ||
int | my_threshold, | ||
bool * | key_eligible | ||
) |
Definition at line 423 of file match_device_utils.h.
int genie::matching::build_compressed_queries | ( | vector< Query > & | queries, |
inv_compr_table * | ctable, | ||
vector< Query::dim > & | dims, | ||
int | max_load | ||
) |
Definition at line 142 of file match_integrated.cu.
int genie::matching::build_queries | ( | std::vector< genie::query::Query > & | queries, |
genie::table::inv_table & | table, | ||
std::vector< genie::query::Query::dim > & | dims, | ||
int | max_load | ||
) |
int genie::matching::build_queries | ( | vector< Query > & | queries, |
inv_table & | table, | ||
vector< Query::dim > & | dims, | ||
int | max_load | ||
) |
int genie::matching::cal_max_topk | ( | std::vector< genie::query::Query > & | queries | ) |
int genie::matching::cal_max_topk | ( | vector< Query > & | queries | ) |
__global__ void genie::matching::convert_to_data | ( | T_HASHTABLE * | table, |
u32 | size | ||
) |
Definition at line 10 of file match_common.cu.
__forceinline__ __device__ __host__ u32 genie::matching::get_count | ( | u32 | data, |
int | offset, | ||
int | bits | ||
) |
Definition at line 80 of file match_device_utils.h.
__forceinline__ __host__ __device__ T_AGE genie::matching::get_key_age | ( | T_HASHTABLE | key | ) |
Definition at line 41 of file match_device_utils.h.
__host__ __forceinline__ __device__ u32 genie::matching::get_key_attach_id | ( | T_HASHTABLE | key | ) |
Definition at line 47 of file match_device_utils.h.
__forceinline__ __host__ __device__ T_KEY genie::matching::get_key_pos | ( | T_HASHTABLE | key | ) |
Definition at line 36 of file match_device_utils.h.
int genie::matching::getBitmapSize | ( | int & | in_out_bitmap_bits, |
u32 | in_shift_bits_subsequence, | ||
int | in_number_of_data_points, | ||
int | in_queries_size | ||
) |
Definition at line 106 of file match_integrated.cu.
Definition at line 65 of file match_device_utils.h.
__device__ __forceinline__ void genie::matching::hash_kernel_AT | ( | u32 | id, |
T_HASHTABLE * | htable, | ||
int | hash_table_size, | ||
genie::query::Query::dim & | q, | ||
u32 | count, | ||
u32 * | my_threshold, | ||
u32 * | my_noiih, | ||
bool * | overflow, | ||
bool * | pass_threshold | ||
) |
Definition at line 260 of file match_device_utils.h.
void genie::matching::heap_count_topk | ( | thrust::device_vector< genie::matching::data_t > & | d_data, |
thrust::device_vector< genie::matching::data_t > & | d_topk, | ||
thrust::device_vector< u32 > & | d_threshold, | ||
thrust::device_vector< u32 > & | d_passCount, | ||
int | topk, | ||
int | num_of_queries | ||
) |
void genie::matching::knn | ( | genie::table::inv_table & | table, |
std::vector< genie::query::Query > & | queries, | ||
thrust::device_vector< int > & | d_top_indexes, | ||
thrust::device_vector< int > & | d_top_count, | ||
int | hash_table_size, | ||
int | max_load, | ||
int | bitmap_bits | ||
) |
void genie::matching::knn_bijectMap | ( | genie::table::inv_table & | table, |
std::vector< genie::query::Query > & | queries, | ||
thrust::device_vector< int > & | d_top_indexes, | ||
thrust::device_vector< int > & | d_top_count, | ||
int | hash_table_size, | ||
int | max_load, | ||
int | bitmap_bits | ||
) |
void genie::matching::knn_bijectMap_MT | ( | std::vector< genie::table::inv_table *> & | table, |
std::vector< std::vector< genie::query::Query > > & | queries, | ||
std::vector< thrust::device_vector< int > > & | d_top_indexes, | ||
std::vector< thrust::device_vector< int > > & | d_top_count, | ||
std::vector< int > & | hash_table_size, | ||
std::vector< int > & | max_load, | ||
int | bitmap_bits | ||
) |
void genie::matching::knn_MT | ( | std::vector< genie::table::inv_table *> & | table, |
std::vector< std::vector< genie::query::Query > > & | queries, | ||
std::vector< thrust::device_vector< int > > & | d_top_indexes, | ||
std::vector< thrust::device_vector< int > > & | d_top_count, | ||
std::vector< int > & | hash_table_size, | ||
std::vector< int > & | max_load, | ||
int | bitmap_bits | ||
) |
SearchResult genie::matching::Match | ( | const std::shared_ptr< const genie::table::inv_table > & | table, |
const std::vector< genie::query::Query > & | queries, | ||
const uint32_t | dim, | ||
const uint32_t | k | ||
) |
void genie::matching::match | ( | genie::table::inv_table & | table, |
std::vector< genie::query::Query > & | queries, | ||
thrust::device_vector< genie::matching::data_t > & | d_data, | ||
thrust::device_vector< u32 > & | d_bitmap, | ||
int | hash_table_size, | ||
int | max_load, | ||
int | bitmap_bits, | ||
thrust::device_vector< u32 > & | d_noiih, | ||
thrust::device_vector< u32 > & | d_threshold, | ||
thrust::device_vector< u32 > & | d_passCount | ||
) |
Search the inv_table and save the match result into d_count and d_aggregation.
table | The inv_table which will be searched. |
queries | The queries. |
d_data | The output data consisting of count and the index of the data in table. |
hash_table_size | The hash table size. |
max_load | The maximum number of posting list items that can be processed by one gpu block |
bitmap_bits | The threshold for the count heap |
d_noiih | The number of items in hash table |
d_threshold | The container for heap-count thresholds of each query. |
d_passCount | The container for heap-count counts in each buckets of each query. |
__global__ void genie::matching::match_adaptiveThreshold_integrated | ( | int | m_size, |
int | i_size, | ||
int | hash_table_size, | ||
uint32_t * | d_compr_inv, | ||
Query::dim * | d_dims, | ||
T_HASHTABLE * | hash_table_list, | ||
u32 * | bitmap_list, | ||
int | bitmap_bits, | ||
u32 * | d_topks, | ||
u32 * | d_threshold, | ||
u32 * | d_passCount, | ||
u32 | num_of_max_count, | ||
u32 * | noiih, | ||
bool * | overflow, | ||
unsigned int | shift_bits_subsequence | ||
) |
Definition at line 169 of file match_integrated.cu.
__global__ void genie::matching::match_AT | ( | int | m_size, |
int | i_size, | ||
int | hash_table_size, | ||
int * | d_inv, | ||
Query::dim * | d_dims, | ||
T_HASHTABLE * | hash_table_list, | ||
u32 * | bitmap_list, | ||
int | bitmap_bits, | ||
u32 * | d_topks, | ||
u32 * | d_threshold, | ||
u32 * | d_passCount, | ||
u32 | num_of_max_count, | ||
u32 * | noiih, | ||
bool * | overflow, | ||
unsigned int | shift_bits_subsequence | ||
) |
void genie::matching::match_integrated | ( | genie::table::inv_compr_table & | table, |
std::vector< genie::query::Query > & | queries, | ||
thrust::device_vector< genie::matching::data_t > & | d_data, | ||
thrust::device_vector< u32 > & | d_bitmap, | ||
int | hash_table_size, | ||
int | bitmap_bits, | ||
thrust::device_vector< u32 > & | d_noiih, | ||
thrust::device_vector< u32 > & | d_threshold, | ||
thrust::device_vector< u32 > & | d_passCount | ||
) |
template void genie::matching::match_integrated< DeviceBitPackingCodec > | ( | inv_compr_table & | , |
std::vector< Query > & | , | ||
thrust::device_vector< data_t > & | , | ||
thrust::device_vector< u32 > & | , | ||
int | , | ||
int | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | |||
) |
template void genie::matching::match_integrated< DeviceCompositeCodec< DeviceBitPackingCodec, DeviceCopyCodec > > | ( | inv_compr_table & | , |
std::vector< Query > & | , | ||
thrust::device_vector< data_t > & | , | ||
thrust::device_vector< u32 > & | , | ||
int | , | ||
int | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | |||
) |
template void genie::matching::match_integrated< DeviceCompositeCodec< DeviceBitPackingCodec, DeviceVarintCodec > > | ( | inv_compr_table & | , |
std::vector< Query > & | , | ||
thrust::device_vector< data_t > & | , | ||
thrust::device_vector< u32 > & | , | ||
int | , | ||
int | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | |||
) |
template void genie::matching::match_integrated< DeviceCopyCodec > | ( | inv_compr_table & | , |
std::vector< Query > & | , | ||
thrust::device_vector< data_t > & | , | ||
thrust::device_vector< u32 > & | , | ||
int | , | ||
int | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | |||
) |
template void genie::matching::match_integrated< DeviceDeltaCodec > | ( | inv_compr_table & | , |
std::vector< Query > & | , | ||
thrust::device_vector< data_t > & | , | ||
thrust::device_vector< u32 > & | , | ||
int | , | ||
int | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | |||
) |
template void genie::matching::match_integrated< DeviceSerialCodec< DeviceCopyCodec, DeviceCopyCodec > > | ( | inv_compr_table & | , |
std::vector< Query > & | , | ||
thrust::device_vector< data_t > & | , | ||
thrust::device_vector< u32 > & | , | ||
int | , | ||
int | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | |||
) |
template void genie::matching::match_integrated< DeviceSerialCodec< DeviceDeltaCodec, DeviceBitPackingCodec > > | ( | inv_compr_table & | , |
std::vector< Query > & | , | ||
thrust::device_vector< data_t > & | , | ||
thrust::device_vector< u32 > & | , | ||
int | , | ||
int | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | |||
) |
template void genie::matching::match_integrated< DeviceSerialCodec< DeviceDeltaCodec, DeviceCompositeCodec< DeviceBitPackingCodec, DeviceCopyCodec > > > | ( | inv_compr_table & | , |
std::vector< Query > & | , | ||
thrust::device_vector< data_t > & | , | ||
thrust::device_vector< u32 > & | , | ||
int | , | ||
int | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | |||
) |
template void genie::matching::match_integrated< DeviceSerialCodec< DeviceDeltaCodec, DeviceCompositeCodec< DeviceBitPackingCodec, DeviceVarintCodec > > > | ( | inv_compr_table & | , |
std::vector< Query > & | , | ||
thrust::device_vector< data_t > & | , | ||
thrust::device_vector< u32 > & | , | ||
int | , | ||
int | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | |||
) |
template void genie::matching::match_integrated< DeviceSerialCodec< DeviceDeltaCodec, DeviceCopyCodec > > | ( | inv_compr_table & | , |
std::vector< Query > & | , | ||
thrust::device_vector< data_t > & | , | ||
thrust::device_vector< u32 > & | , | ||
int | , | ||
int | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | |||
) |
template void genie::matching::match_integrated< DeviceSerialCodec< DeviceDeltaCodec, DeviceDeltaCodec > > | ( | inv_compr_table & | , |
std::vector< Query > & | , | ||
thrust::device_vector< data_t > & | , | ||
thrust::device_vector< u32 > & | , | ||
int | , | ||
int | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | |||
) |
template void genie::matching::match_integrated< DeviceSerialCodec< DeviceDeltaCodec, DeviceVarintCodec > > | ( | inv_compr_table & | , |
std::vector< Query > & | , | ||
thrust::device_vector< data_t > & | , | ||
thrust::device_vector< u32 > & | , | ||
int | , | ||
int | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | |||
) |
template void genie::matching::match_integrated< DeviceVarintCodec > | ( | inv_compr_table & | , |
std::vector< Query > & | , | ||
thrust::device_vector< data_t > & | , | ||
thrust::device_vector< u32 > & | , | ||
int | , | ||
int | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | , | ||
thrust::device_vector< u32 > & | |||
) |
void genie::matching::match_MT | ( | std::vector< genie::table::inv_table *> & | table, |
std::vector< std::vector< genie::query::Query > > & | queries, | ||
std::vector< thrust::device_vector< genie::matching::data_t > > & | d_data, | ||
std::vector< thrust::device_vector< u32 > > & | d_bitmap, | ||
std::vector< int > & | hash_table_size, | ||
std::vector< int > & | max_load, | ||
int | bitmap_bits, | ||
std::vector< thrust::device_vector< u32 > > & | d_noiih, | ||
std::vector< thrust::device_vector< u32 > > & | d_threshold, | ||
std::vector< thrust::device_vector< u32 > > & | d_passCount, | ||
size_t | start, | ||
size_t | finish | ||
) |
void genie::matching::match_MT | ( | vector< inv_table *> & | table, |
vector< vector< Query > > & | queries, | ||
vector< device_vector< data_t > > & | d_data, | ||
vector< device_vector< u32 > > & | d_bitmap, | ||
vector< int > & | hash_table_size, | ||
vector< int > & | max_load, | ||
int | bitmap_bits, | ||
vector< device_vector< u32 > > & | d_noiih, | ||
vector< device_vector< u32 > > & | d_threshold, | ||
vector< device_vector< u32 > > & | d_passCount, | ||
size_t | start, | ||
size_t | finish | ||
) |
__forceinline__ __device__ __host__ u32 genie::matching::pack_count | ( | u32 | data, |
int | offset, | ||
int | bits, | ||
u32 | count | ||
) |
Definition at line 86 of file match_device_utils.h.
__host__ __forceinline__ __device__ T_HASHTABLE genie::matching::pack_key_pos | ( | T_KEY | p | ) |
Definition at line 52 of file match_device_utils.h.
__host__ __forceinline__ __device__ T_HASHTABLE genie::matching::pack_key_pos_and_attach_id_and_age | ( | T_KEY | p, |
u32 | i, | ||
T_AGE | a | ||
) |
Definition at line 57 of file match_device_utils.h.
__forceinline__ __device__ __host__ void genie::matching::print_binary | ( | char * | b, |
u32 | data | ||
) |
Definition at line 72 of file match_device_utils.h.
__device__ __forceinline__ void genie::matching::updateThreshold | ( | u32 * | my_passCount, |
u32 * | my_threshold, | ||
u32 | my_topk, | ||
u32 | count | ||
) |
Definition at line 449 of file match_device_utils.h.
const uint32_t genie::matching::ATTACH_ID_TYPE_BITS = 32u |
Definition at line 25 of file match_device_utils.h.
Definition at line 26 of file match_device_utils.h.
const uint32_t genie::matching::KEY_TYPE_BITS = 28u |
Definition at line 23 of file match_device_utils.h.
const uint32_t genie::matching::KEY_TYPE_INIT_AGE = 1u |
Definition at line 27 of file match_device_utils.h.
Definition at line 24 of file match_device_utils.h.
const uint32_t genie::matching::KEY_TYPE_NULL_AGE = 0u |
Definition at line 28 of file match_device_utils.h.
const size_t genie::matching::MATCH_THREADS_PER_BLOCK = 256 |
Definition at line 41 of file match_common.h.
const T_AGE genie::matching::MAX_AGE = 16u |
Definition at line 22 of file match_device_utils.h.