20 #define GPUGENIE_DEFAULT_TOPK 10 23 #define GPUGENIE_DEFAULT_RADIUS 0 26 #define GPUGENIE_DEFAULT_THRESHOLD 0 29 #define GPUGENIE_DEFAULT_HASHTABLE_SIZE 1.0f 32 #define GPUGENIE_DEFAULT_WEIGHT 1 35 #define GPUGENIE_DEFAULT_DEVICE 0 38 #define GPUGENIE_DEFAULT_USE_ADAPTIVE_RANGE false 41 #define GPUGENIE_DEFAULT_SELECTIVITY -1.0f 44 #define GPUGENIE_DEFAULT_POSTING_LIST_LENGTH 100000 47 #define GPUGENIE_DEFAULT_LOAD_MULTIPLIER 3.0f 50 #define GPUGENIE_DEFAULT_USE_LOAD_BALANCE false 53 #define GPUGENIE_DEFAULT_USE_MULTIRANGE true 56 #define GPUGENIE_DEFAULT_NUM_OF_QUERIES 0 119 data_points(NULL), data(NULL), index(NULL),
120 item_num(0), row_num(0), search_type(0),
121 data_type(0), max_data_size(0), save_to_gpu(false),
122 query_points(NULL), multirange_query_points(NULL),
128 use_subsequence_search(false),
129 data_gram_length(3), num_of_iteration(1),
133 num_of_topk(config.num_of_topk),
134 query_radius(config.query_radius),
135 count_threshold(config.count_threshold),
136 hashtable_size(config.hashtable_size),
137 use_device(config.use_device),
138 dim(config.dim), use_adaptive_range(config.use_adaptive_range),
139 selectivity(config.selectivity),
140 data_points(config.data_points),
141 data(config.data), index(config.index),
142 item_num(config.item_num), row_num(config.row_num),
143 search_type(config.search_type),
144 data_type(config.data_type),
145 max_data_size(config.max_data_size),
146 save_to_gpu(config.save_to_gpu),
147 query_points(config.query_points),
148 multirange_query_points(config.multirange_query_points),
149 posting_list_max_length(config.posting_list_max_length),
150 multiplier(config.multiplier),
151 use_load_balance(config.use_load_balance),
152 use_multirange(config.use_multirange),
153 num_of_queries(config.num_of_queries),
154 use_subsequence_search(config.use_subsequence_search),
155 data_gram_length(config.data_gram_length),
156 num_of_iteration(config.num_of_iteration),
157 compression(config.compression){}
228 std::vector<int>& h_topk, std::vector<int>& h_topk_count,
GPUGenie_Config& config);
231 void knn_search_MT(std::vector<genie::table::inv_table*>& table,std::vector<std::vector<genie::query::Query>>& queries,
232 std::vector<std::vector<int> >& h_topk, std::vector<std::vector<int> >& h_topk_count, std::vector<GPUGenie_Config>& config);
359 void sequence_to_gram(std::vector<std::vector<int> >& sequences, std::vector<std::vector<int> >& gram_data,
int max_value,
int gram_length);
369 void sequence_reduce_to_ground(std::vector<std::vector<int> >& data, std::vector<std::vector<int> >& converted_data,
int& min_value,
int& max_value);
393 void get_rowID_offset(std::vector<int> &result, std::vector<int> &resultID, std::vector<int> &resultOffset,
unsigned int shift_bits);
genie::compression::COMPRESSION_TYPE compression
std::vector< std::vector< int > > * query_points
void load_query_singlerange(genie::table::inv_table &table, std::vector< genie::query::Query > &queries, GPUGenie_Config &config)
void init_genie(GPUGenie_Config &config)
void load_table_bijectMap(genie::table::inv_table &table, std::vector< std::vector< int > > &data_points, GPUGenie_Config &config)
bool preprocess_for_knn_csv(GPUGenie_Config &config, genie::table::inv_table *&_table)
This is the top-level namespace of the project.
const COMPRESSION_TYPE DEFAULT_COMPRESSION_TYPE
#define GPUGENIE_DEFAULT_DEVICE
void knn_search_MT(std::vector< genie::table::inv_table *> &table, std::vector< std::vector< genie::query::Query >> &queries, std::vector< std::vector< int > > &h_topk, std::vector< std::vector< int > > &h_topk_count, std::vector< GPUGenie_Config > &config)
The declaration for class inv_table.
struct genie::original::_GPUGenie_Config GPUGenie_Config
struct _GPUGenie_Config
int posting_list_max_length
void knn_search_after_preprocess(GPUGenie_Config &config, genie::table::inv_table *&_table, std::vector< int > &result, std::vector< int > &result_count)
#define GPUGENIE_DEFAULT_RADIUS
unsigned int max_data_size
void knn_search_for_csv_data(std::vector< int > &result, std::vector< int > &result_count, GPUGenie_Config &config)
Declaration of query class.
void load_query(genie::table::inv_table &table, std::vector< genie::query::Query > &queries, GPUGenie_Config &config)
_GPUGenie_Config(const _GPUGenie_Config &config)
void load_table(genie::table::inv_table &table, std::vector< std::vector< int > > &data_points, GPUGenie_Config &config)
#define GPUGENIE_DEFAULT_HASHTABLE_SIZE
Definitions about configurations that can be set by users.
void get_rowID_offset(std::vector< int > &result, std::vector< int > &resultID, std::vector< int > &resultOffset, unsigned int shift_bits)
void reset_device()
clear gpu memory
std::vector< genie::utility::attr_t > * multirange_query_points
This file declares functions about file operations.
void load_query_sequence(genie::table::inv_table &table, std::vector< genie::query::Query > &queries, GPUGenie_Config &config)
#define GPUGENIE_DEFAULT_USE_ADAPTIVE_RANGE
#define GPUGENIE_DEFAULT_TOPK
#define GPUGENIE_DEFAULT_SELECTIVITY
void load_query_multirange(genie::table::inv_table &table, std::vector< genie::query::Query > &queries, GPUGenie_Config &config)
void knn_search(std::vector< int > &result, std::vector< int > &result_count, GPUGenie_Config &config)
#define GPUGENIE_DEFAULT_THRESHOLD
#define GPUGENIE_DEFAULT_USE_LOAD_BALANCE
std::vector< std::vector< int > > * data_points
void load_table_sequence(genie::table::inv_table &table, std::vector< std::vector< int > > &data_points, GPUGenie_Config &config)
void sequence_to_gram(std::vector< std::vector< int > > &sequences, std::vector< std::vector< int > > &gram_data, int max_value, int gram_length)
unsigned int num_of_iteration
bool use_subsequence_search
#define GPUGENIE_DEFAULT_NUM_OF_QUERIES
#define GPUGENIE_DEFAULT_LOAD_MULTIPLIER
#define GPUGENIE_DEFAULT_USE_MULTIRANGE
void sequence_reduce_to_ground(std::vector< std::vector< int > > &data, std::vector< std::vector< int > > &converted_data, int &min_value, int &max_value)
#define GPUGENIE_DEFAULT_POSTING_LIST_LENGTH