GENIE
match_device_utils.h File Reference
#include <genie/query/query.h>
#include "match_common.h"

Go to the source code of this file.

Namespaces

 genie
 This is the top-level namespace of the project.
 
 genie::matching
 

Functions

__forceinline__ __host__ __device__ T_KEY genie::matching::get_key_pos (T_HASHTABLE key)
 
__forceinline__ __host__ __device__ T_AGE genie::matching::get_key_age (T_HASHTABLE key)
 
__host__ __forceinline__ __device__ u32 genie::matching::get_key_attach_id (T_HASHTABLE key)
 
__host__ __forceinline__ __device__ T_HASHTABLE genie::matching::pack_key_pos (T_KEY p)
 
__host__ __forceinline__ __device__ T_HASHTABLE genie::matching::pack_key_pos_and_attach_id_and_age (T_KEY p, u32 i, T_AGE a)
 
__forceinline__ __device__ u32 genie::matching::hash (T_KEY key, T_AGE age, int hash_table_size)
 
__forceinline__ __device__ __host__ void genie::matching::print_binary (char *b, u32 data)
 
__forceinline__ __device__ __host__ u32 genie::matching::get_count (u32 data, int offset, int bits)
 
__forceinline__ __device__ __host__ u32 genie::matching::pack_count (u32 data, int offset, int bits, u32 count)
 
__forceinline__ __device__ void genie::matching::access_kernel (u32 id, T_HASHTABLE *htable, int hash_table_size, genie::query::Query::dim &q, bool *key_found)
 
__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)
 
__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)
 
__device__ __forceinline__ u32 genie::matching::bitmap_kernel_AT (u32 access_id, u32 *bitmap, int bits, int my_threshold, bool *key_eligible)
 
__device__ __forceinline__ void genie::matching::updateThreshold (u32 *my_passCount, u32 *my_threshold, u32 my_topk, u32 count)
 

Variables

const T_AGE genie::matching::MAX_AGE = 16u
 
const uint32_t genie::matching::KEY_TYPE_BITS = 28u
 
const uint32_t genie::matching::KEY_TYPE_MASK = u32(u64((1ull) << KEY_TYPE_BITS) - 1u)
 
const uint32_t genie::matching::ATTACH_ID_TYPE_BITS = 32u
 
const uint32_t genie::matching::ATTACH_ID_TYPE_MASK = u32(u64((1ull) << ATTACH_ID_TYPE_BITS) - 1ul)
 
const uint32_t genie::matching::KEY_TYPE_INIT_AGE = 1u
 
const uint32_t genie::matching::KEY_TYPE_NULL_AGE = 0u