OmniSciDB
a5dc49c757
|
#include <cstddef>
#include <cstdint>
#include <vector>
#include "../../../Shared/SqlTypesLayout.h"
#include "../../../Shared/sqltypes.h"
#include "../../RuntimeFunctions.h"
#include "../../../Shared/funcannotations.h"
Go to the source code of this file.
Classes | |
struct | BucketizedHashEntryInfo |
struct | JoinChunk |
struct | JoinColumn |
struct | JoinColumnTypeInfo |
struct | JoinBucketInfo |
struct | ShardInfo |
struct | OneToOnePerfectJoinHashTableFillFuncArgs |
struct | OneToManyPerfectJoinHashTableFillFuncArgs |
Enumerations | |
enum | ColumnType { SmallDate = 0, Signed = 1, Unsigned = 2, Double = 3 } |
Functions | |
void | init_hash_join_buff (int32_t *buff, const int64_t entry_count, const int32_t invalid_slot_val, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
void | init_hash_join_buff_on_device (int32_t *buff, const int64_t entry_count, const int32_t invalid_slot_val) |
void | init_baseline_hash_join_buff_32 (int8_t *hash_join_buff, const int64_t entry_count, const size_t key_component_count, const bool with_val_slot, const int32_t invalid_slot_val, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
void | init_baseline_hash_join_buff_64 (int8_t *hash_join_buff, const int64_t entry_count, const size_t key_component_count, const bool with_val_slot, const int32_t invalid_slot_val, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
void | init_baseline_hash_join_buff_on_device_32 (int8_t *hash_join_buff, const int64_t entry_count, const size_t key_component_count, const bool with_val_slot, const int32_t invalid_slot_val) |
void | init_baseline_hash_join_buff_on_device_64 (int8_t *hash_join_buff, const int64_t entry_count, const size_t key_component_count, const bool with_val_slot, const int32_t invalid_slot_val) |
ColumnType | get_join_column_type_kind (const SQLTypeInfo &ti) |
int | fill_hash_join_buff_bucketized (OneToOnePerfectJoinHashTableFillFuncArgs const args, int32_t const cpu_thread_idx, int32_t const cpu_thread_count) |
int | fill_hash_join_buff (OneToOnePerfectJoinHashTableFillFuncArgs const args, int32_t const cpu_thread_idx, int32_t const cpu_thread_count) |
int | fill_hash_join_buff_bitwise_eq (OneToOnePerfectJoinHashTableFillFuncArgs const args, int32_t const cpu_thread_idx, int32_t const cpu_thread_count) |
void | fill_hash_join_buff_on_device (OneToOnePerfectJoinHashTableFillFuncArgs const args) |
void | fill_hash_join_buff_on_device_bucketized (OneToOnePerfectJoinHashTableFillFuncArgs const args) |
void | fill_hash_join_buff_on_device_sharded (OneToOnePerfectJoinHashTableFillFuncArgs const args, ShardInfo const shard_info) |
void | fill_hash_join_buff_on_device_sharded_bucketized (OneToOnePerfectJoinHashTableFillFuncArgs const args, ShardInfo const shard_info) |
void | fill_one_to_many_hash_table (OneToManyPerfectJoinHashTableFillFuncArgs const args, int32_t const cpu_thread_count) |
void | fill_one_to_many_hash_table_bucketized (OneToManyPerfectJoinHashTableFillFuncArgs const args, int32_t const cpu_thread_count) |
void | fill_one_to_many_hash_table_on_device (OneToManyPerfectJoinHashTableFillFuncArgs const args) |
void | fill_one_to_many_hash_table_on_device_bucketized (OneToManyPerfectJoinHashTableFillFuncArgs const args) |
void | fill_one_to_many_hash_table_on_device_sharded (OneToManyPerfectJoinHashTableFillFuncArgs const args, ShardInfo const shard_info) |
int | fill_baseline_hash_join_buff_32 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const bool for_semi_join, const size_t key_component_count, const bool with_val_slot, const GenericKeyHandler *key_handler, const int64_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
int | bbox_intersect_fill_baseline_hash_join_buff_32 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const bool with_val_slot, const BoundingBoxIntersectKeyHandler *key_handler, const int64_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
int | range_fill_baseline_hash_join_buff_32 (int8_t *hash_buff, const size_t entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const bool with_val_slot, const RangeKeyHandler *key_handler, const size_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
int | fill_baseline_hash_join_buff_64 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const bool for_semi_join, const size_t key_component_count, const bool with_val_slot, const GenericKeyHandler *key_handler, const int64_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
int | bbox_intersect_fill_baseline_hash_join_buff_64 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const bool with_val_slot, const BoundingBoxIntersectKeyHandler *key_handler, const int64_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
int | range_fill_baseline_hash_join_buff_64 (int8_t *hash_buff, const size_t entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const bool with_val_slot, const RangeKeyHandler *key_handler, const size_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
void | fill_baseline_hash_join_buff_on_device_32 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const bool for_semi_join, const size_t key_component_count, const bool with_val_slot, int *dev_err_buff, const GenericKeyHandler *key_handler, const int64_t num_elems) |
void | fill_baseline_hash_join_buff_on_device_64 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const bool for_semi_join, const size_t key_component_count, const bool with_val_slot, int *dev_err_buff, const GenericKeyHandler *key_handler, const int64_t num_elems) |
void | bbox_intersect_fill_baseline_hash_join_buff_on_device_64 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const bool with_val_slot, int *dev_err_buff, const BoundingBoxIntersectKeyHandler *key_handler, const int64_t num_elems) |
void | range_fill_baseline_hash_join_buff_on_device_64 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const bool with_val_slot, int *dev_err_buff, const RangeKeyHandler *key_handler, const size_t num_elems) |
void | fill_one_to_many_baseline_hash_table_32 (int32_t *buff, const int32_t *composite_key_dict, const int64_t hash_entry_count, const size_t key_component_count, const std::vector< JoinColumn > &join_column_per_key, const std::vector< JoinColumnTypeInfo > &type_info_per_key, const std::vector< JoinBucketInfo > &join_bucket_info, const std::vector< const int32_t * > &sd_inner_to_outer_translation_maps, const std::vector< int32_t > &sd_min_inner_elems, const int32_t cpu_thread_count, const bool is_range_join=false, const bool is_geo_compressed=false, const bool for_window_framing=false) |
void | fill_one_to_many_baseline_hash_table_64 (int32_t *buff, const int64_t *composite_key_dict, const int64_t hash_entry_count, const size_t key_component_count, const std::vector< JoinColumn > &join_column_per_key, const std::vector< JoinColumnTypeInfo > &type_info_per_key, const std::vector< JoinBucketInfo > &join_bucket_info, const std::vector< const int32_t * > &sd_inner_to_outer_translation_maps, const std::vector< int32_t > &sd_min_inner_elems, const int32_t cpu_thread_count, const bool is_range_join=false, const bool is_geo_compressed=false, const bool for_window_framing=false) |
void | fill_one_to_many_baseline_hash_table_on_device_32 (int32_t *buff, const int32_t *composite_key_dict, const int64_t hash_entry_count, const size_t key_component_count, const GenericKeyHandler *key_handler, const int64_t num_elems, const bool for_window_framing) |
void | fill_one_to_many_baseline_hash_table_on_device_64 (int32_t *buff, const int64_t *composite_key_dict, const int64_t hash_entry_count, const GenericKeyHandler *key_handler, const int64_t num_elems, const bool for_window_framing) |
void | bbox_intersect_fill_one_to_many_baseline_hash_table_on_device_64 (int32_t *buff, const int64_t *composite_key_dict, const int64_t hash_entry_count, const BoundingBoxIntersectKeyHandler *key_handler, const int64_t num_elems) |
void | range_fill_one_to_many_baseline_hash_table_on_device_64 (int32_t *buff, const int64_t *composite_key_dict, const size_t hash_entry_count, const RangeKeyHandler *key_handler, const size_t num_elems) |
void | approximate_distinct_tuples (uint8_t *hll_buffer_all_cpus, const uint32_t b, const size_t padded_size_bytes, const std::vector< JoinColumn > &join_column_per_key, const std::vector< JoinColumnTypeInfo > &type_info_per_key, const int thread_count) |
void | approximate_distinct_tuples_bbox_intersect (uint8_t *hll_buffer_all_cpus, std::vector< int32_t > &row_counts, const uint32_t b, const size_t padded_size_bytes, const std::vector< JoinColumn > &join_column_per_key, const std::vector< JoinColumnTypeInfo > &type_info_per_key, const std::vector< JoinBucketInfo > &join_buckets_per_key, const int thread_count) |
void | approximate_distinct_tuples_range (uint8_t *hll_buffer_all_cpus, std::vector< int32_t > &row_counts, const uint32_t b, const size_t padded_size_bytes, const std::vector< JoinColumn > &join_column_per_key, const std::vector< JoinColumnTypeInfo > &type_info_per_key, const std::vector< JoinBucketInfo > &join_buckets_per_key, const bool is_compressed, const int thread_count) |
void | approximate_distinct_tuples_on_device (uint8_t *hll_buffer, const uint32_t b, const GenericKeyHandler *key_handler, const int64_t num_elems) |
void | approximate_distinct_tuples_on_device_bbox_intersect (uint8_t *hll_buffer, const uint32_t b, int32_t *row_counts_buffer, const BoundingBoxIntersectKeyHandler *key_handler, const int64_t num_elems) |
void | compute_bucket_sizes_on_cpu (std::vector< double > &bucket_sizes_for_dimension, const JoinColumn &join_column, const JoinColumnTypeInfo &type_info, const std::vector< double > &bucket_size_thresholds, const int thread_count) |
void | approximate_distinct_tuples_on_device_range (uint8_t *hll_buffer, const uint32_t b, int32_t *row_counts_buffer, const RangeKeyHandler *key_handler, const size_t num_elems, const size_t block_size_x, const size_t grid_size_x) |
void | compute_bucket_sizes_on_device (double *bucket_sizes_buffer, const JoinColumn *join_column, const JoinColumnTypeInfo *type_info, const double *bucket_size_thresholds) |
Variables | |
const size_t | g_maximum_conditions_to_coalesce {8} |
enum ColumnType |
Enumerator | |
---|---|
SmallDate | |
Signed | |
Unsigned | |
Double |
Definition at line 120 of file HashJoinRuntime.h.
void approximate_distinct_tuples | ( | uint8_t * | hll_buffer_all_cpus, |
const uint32_t | b, | ||
const size_t | padded_size_bytes, | ||
const std::vector< JoinColumn > & | join_column_per_key, | ||
const std::vector< JoinColumnTypeInfo > & | type_info_per_key, | ||
const int | thread_count | ||
) |
Definition at line 2247 of file HashJoinRuntime.cpp.
References approximate_distinct_tuples_impl(), threading_serial::async(), CHECK, and CHECK_EQ.
Referenced by BaselineJoinHashTable::approximateTupleCount().
void approximate_distinct_tuples_bbox_intersect | ( | uint8_t * | hll_buffer_all_cpus, |
std::vector< int32_t > & | row_counts, | ||
const uint32_t | b, | ||
const size_t | padded_size_bytes, | ||
const std::vector< JoinColumn > & | join_column_per_key, | ||
const std::vector< JoinColumnTypeInfo > & | type_info_per_key, | ||
const std::vector< JoinBucketInfo > & | join_buckets_per_key, | ||
const int | thread_count | ||
) |
Definition at line 2289 of file HashJoinRuntime.cpp.
References approximate_distinct_tuples_impl(), threading_serial::async(), CHECK, CHECK_EQ, and inclusive_scan().
Referenced by BoundingBoxIntersectJoinHashTable::approximateTupleCount().
void approximate_distinct_tuples_on_device | ( | uint8_t * | hll_buffer, |
const uint32_t | b, | ||
const GenericKeyHandler * | key_handler, | ||
const int64_t | num_elems | ||
) |
Definition at line 537 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper().
Referenced by BaselineJoinHashTable::approximateTupleCount().
void approximate_distinct_tuples_on_device_bbox_intersect | ( | uint8_t * | hll_buffer, |
const uint32_t | b, | ||
int32_t * | row_counts_buffer, | ||
const BoundingBoxIntersectKeyHandler * | key_handler, | ||
const int64_t | num_elems | ||
) |
Definition at line 501 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper(), and inclusive_scan().
Referenced by BoundingBoxIntersectJoinHashTable::approximateTupleCount().
void approximate_distinct_tuples_on_device_range | ( | uint8_t * | hll_buffer, |
const uint32_t | b, | ||
int32_t * | row_counts_buffer, | ||
const RangeKeyHandler * | key_handler, | ||
const size_t | num_elems, | ||
const size_t | block_size_x, | ||
const size_t | grid_size_x | ||
) |
Definition at line 520 of file HashJoinRuntimeGpu.cu.
References checkCudaErrors, getQueryEngineCudaStream(), and inclusive_scan().
Referenced by RangeJoinHashTable::approximateTupleCount().
void approximate_distinct_tuples_range | ( | uint8_t * | hll_buffer_all_cpus, |
std::vector< int32_t > & | row_counts, | ||
const uint32_t | b, | ||
const size_t | padded_size_bytes, | ||
const std::vector< JoinColumn > & | join_column_per_key, | ||
const std::vector< JoinColumnTypeInfo > & | type_info_per_key, | ||
const std::vector< JoinBucketInfo > & | join_buckets_per_key, | ||
const bool | is_compressed, | ||
const int | thread_count | ||
) |
Definition at line 2337 of file HashJoinRuntime.cpp.
References approximate_distinct_tuples_impl(), threading_serial::async(), CHECK, CHECK_EQ, and inclusive_scan().
Referenced by RangeJoinHashTable::approximateTupleCount().
int bbox_intersect_fill_baseline_hash_join_buff_32 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const BoundingBoxIntersectKeyHandler * | key_handler, | ||
const int64_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1866 of file HashJoinRuntime.cpp.
Referenced by fill_baseline_hash_join_buff().
int bbox_intersect_fill_baseline_hash_join_buff_64 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const BoundingBoxIntersectKeyHandler * | key_handler, | ||
const int64_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1931 of file HashJoinRuntime.cpp.
void bbox_intersect_fill_baseline_hash_join_buff_on_device_64 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
int * | dev_err_buff, | ||
const BoundingBoxIntersectKeyHandler * | key_handler, | ||
const int64_t | num_elems | ||
) |
Definition at line 406 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper(), and fill_baseline_hash_join_buff_wrapper().
void bbox_intersect_fill_one_to_many_baseline_hash_table_on_device_64 | ( | int32_t * | buff, |
const int64_t * | composite_key_dict, | ||
const int64_t | hash_entry_count, | ||
const BoundingBoxIntersectKeyHandler * | key_handler, | ||
const int64_t | num_elems | ||
) |
Definition at line 481 of file HashJoinRuntimeGpu.cu.
void compute_bucket_sizes_on_cpu | ( | std::vector< double > & | bucket_sizes_for_dimension, |
const JoinColumn & | join_column, | ||
const JoinColumnTypeInfo & | type_info, | ||
const std::vector< double > & | bucket_size_thresholds, | ||
const int | thread_count | ||
) |
Definition at line 2388 of file HashJoinRuntime.cpp.
References threading_serial::async().
Referenced by anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::compute_bucket_sizes().
void compute_bucket_sizes_on_device | ( | double * | bucket_sizes_buffer, |
const JoinColumn * | join_column, | ||
const JoinColumnTypeInfo * | type_info, | ||
const double * | bucket_size_thresholds | ||
) |
Definition at line 549 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper().
Referenced by anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::compute_bucket_sizes().
int fill_baseline_hash_join_buff_32 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const GenericKeyHandler * | key_handler, | ||
const int64_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1844 of file HashJoinRuntime.cpp.
Referenced by fill_baseline_hash_join_buff().
int fill_baseline_hash_join_buff_64 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const GenericKeyHandler * | key_handler, | ||
const int64_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1909 of file HashJoinRuntime.cpp.
void fill_baseline_hash_join_buff_on_device_32 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
int * | dev_err_buff, | ||
const GenericKeyHandler * | key_handler, | ||
const int64_t | num_elems | ||
) |
Definition at line 362 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper().
Referenced by fill_baseline_hash_join_buff_on_device().
void fill_baseline_hash_join_buff_on_device_64 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
int * | dev_err_buff, | ||
const GenericKeyHandler * | key_handler, | ||
const int64_t | num_elems | ||
) |
Definition at line 384 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper().
int fill_hash_join_buff | ( | OneToOnePerfectJoinHashTableFillFuncArgs const | args, |
int32_t const | cpu_thread_idx, | ||
int32_t const | cpu_thread_count | ||
) |
Definition at line 203 of file HashJoinRuntime.cpp.
References fill_hash_join_buff_impl(), fill_hashtable_for_semi_join(), fill_one_to_one_hashtable(), get_hash_slot(), and SUFFIX.
Referenced by fill_hash_join_buff_wrapper(), and PerfectJoinHashTableBuilder::initOneToOneHashTableOnCpu().
int fill_hash_join_buff_bitwise_eq | ( | OneToOnePerfectJoinHashTableFillFuncArgs const | args, |
int32_t const | cpu_thread_idx, | ||
int32_t const | cpu_thread_count | ||
) |
Definition at line 187 of file HashJoinRuntime.cpp.
References fill_hash_join_buff_impl(), fill_hashtable_for_semi_join(), fill_one_to_one_hashtable(), get_hash_slot_bitwise_eq(), and SUFFIX.
Referenced by fill_hash_join_buff_wrapper(), and PerfectJoinHashTableBuilder::initOneToOneHashTableOnCpu().
int fill_hash_join_buff_bucketized | ( | OneToOnePerfectJoinHashTableFillFuncArgs const | args, |
int32_t const | cpu_thread_idx, | ||
int32_t const | cpu_thread_count | ||
) |
Definition at line 167 of file HashJoinRuntime.cpp.
References fill_hash_join_buff_impl(), fill_hashtable_for_semi_join(), fill_one_to_one_hashtable(), get_bucketized_hash_slot(), and SUFFIX.
Referenced by fill_hash_join_buff_bucketized_wrapper(), and PerfectJoinHashTableBuilder::initOneToOneHashTableOnCpu().
void fill_hash_join_buff_on_device | ( | OneToOnePerfectJoinHashTableFillFuncArgs const | args | ) |
Definition at line 57 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper(), and fill_hash_join_buff_wrapper().
void fill_hash_join_buff_on_device_bucketized | ( | OneToOnePerfectJoinHashTableFillFuncArgs const | args | ) |
Definition at line 52 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper(), and fill_hash_join_buff_bucketized_wrapper().
void fill_hash_join_buff_on_device_sharded | ( | OneToOnePerfectJoinHashTableFillFuncArgs const | args, |
ShardInfo const | shard_info | ||
) |
Definition at line 102 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper(), and fill_hash_join_buff_wrapper_sharded().
void fill_hash_join_buff_on_device_sharded_bucketized | ( | OneToOnePerfectJoinHashTableFillFuncArgs const | args, |
ShardInfo const | shard_info | ||
) |
Definition at line 95 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper(), and fill_hash_join_buff_wrapper_sharded_bucketized().
void fill_one_to_many_baseline_hash_table_32 | ( | int32_t * | buff, |
const int32_t * | composite_key_dict, | ||
const int64_t | hash_entry_count, | ||
const size_t | key_component_count, | ||
const std::vector< JoinColumn > & | join_column_per_key, | ||
const std::vector< JoinColumnTypeInfo > & | type_info_per_key, | ||
const std::vector< JoinBucketInfo > & | join_bucket_info, | ||
const std::vector< const int32_t * > & | sd_inner_to_outer_translation_maps, | ||
const std::vector< int32_t > & | sd_min_inner_elems, | ||
const int32_t | cpu_thread_count, | ||
const bool | is_range_join = false , |
||
const bool | is_geo_compressed = false , |
||
const bool | for_window_framing = false |
||
) |
Definition at line 2189 of file HashJoinRuntime.cpp.
Referenced by BaselineJoinHashTableBuilder::initHashTableOnCpu().
void fill_one_to_many_baseline_hash_table_64 | ( | int32_t * | buff, |
const int64_t * | composite_key_dict, | ||
const int64_t | hash_entry_count, | ||
const size_t | key_component_count, | ||
const std::vector< JoinColumn > & | join_column_per_key, | ||
const std::vector< JoinColumnTypeInfo > & | type_info_per_key, | ||
const std::vector< JoinBucketInfo > & | join_bucket_info, | ||
const std::vector< const int32_t * > & | sd_inner_to_outer_translation_maps, | ||
const std::vector< int32_t > & | sd_min_inner_elems, | ||
const int32_t | cpu_thread_count, | ||
const bool | is_range_join = false , |
||
const bool | is_geo_compressed = false , |
||
const bool | for_window_framing = false |
||
) |
Definition at line 2218 of file HashJoinRuntime.cpp.
Referenced by BaselineJoinHashTableBuilder::initHashTableOnCpu().
void fill_one_to_many_baseline_hash_table_on_device_32 | ( | int32_t * | buff, |
const int32_t * | composite_key_dict, | ||
const int64_t | hash_entry_count, | ||
const size_t | key_component_count, | ||
const GenericKeyHandler * | key_handler, | ||
const int64_t | num_elems, | ||
const bool | for_window_framing | ||
) |
Definition at line 450 of file HashJoinRuntimeGpu.cu.
Referenced by fill_one_to_many_baseline_hash_table_on_device().
void fill_one_to_many_baseline_hash_table_on_device_64 | ( | int32_t * | buff, |
const int64_t * | composite_key_dict, | ||
const int64_t | hash_entry_count, | ||
const GenericKeyHandler * | key_handler, | ||
const int64_t | num_elems, | ||
const bool | for_window_framing | ||
) |
Definition at line 466 of file HashJoinRuntimeGpu.cu.
void fill_one_to_many_hash_table | ( | OneToManyPerfectJoinHashTableFillFuncArgs const | args, |
int32_t const | cpu_thread_count | ||
) |
Definition at line 1564 of file HashJoinRuntime.cpp.
References run_benchmark_import::args, OneToManyPerfectJoinHashTableFillFuncArgs::buff, count_matches(), DEBUG_TIMER, fill_one_to_many_hash_table_impl(), fill_row_ids(), OneToManyPerfectJoinHashTableFillFuncArgs::for_window_framing, OneToManyPerfectJoinHashTableFillFuncArgs::hash_entry_info, OneToManyPerfectJoinHashTableFillFuncArgs::join_column, OneToManyPerfectJoinHashTableFillFuncArgs::min_inner_elem, OneToManyPerfectJoinHashTableFillFuncArgs::sd_inner_to_outer_translation_map, SUFFIX, and OneToManyPerfectJoinHashTableFillFuncArgs::type_info.
Referenced by PerfectJoinHashTableBuilder::initOneToManyHashTableOnCpu().
void fill_one_to_many_hash_table_bucketized | ( | OneToManyPerfectJoinHashTableFillFuncArgs const | args, |
int32_t const | cpu_thread_count | ||
) |
Definition at line 1608 of file HashJoinRuntime.cpp.
References run_benchmark_import::args, BucketizedHashEntryInfo::bucket_normalization, OneToManyPerfectJoinHashTableFillFuncArgs::buff, count_matches_bucketized(), DEBUG_TIMER, fill_one_to_many_hash_table_impl(), fill_row_ids_bucketized(), OneToManyPerfectJoinHashTableFillFuncArgs::hash_entry_info, OneToManyPerfectJoinHashTableFillFuncArgs::join_column, OneToManyPerfectJoinHashTableFillFuncArgs::min_inner_elem, OneToManyPerfectJoinHashTableFillFuncArgs::sd_inner_to_outer_translation_map, SUFFIX, and OneToManyPerfectJoinHashTableFillFuncArgs::type_info.
Referenced by PerfectJoinHashTableBuilder::initOneToManyHashTableOnCpu().
void fill_one_to_many_hash_table_on_device | ( | OneToManyPerfectJoinHashTableFillFuncArgs const | args | ) |
Definition at line 175 of file HashJoinRuntimeGpu.cu.
References run_benchmark_import::args, BucketizedHashEntryInfo::bucketized_hash_entry_count, OneToManyPerfectJoinHashTableFillFuncArgs::buff, count_matches(), cuda_kernel_launch_wrapper(), fill_one_to_many_hash_table_on_device_impl(), fill_row_ids(), OneToManyPerfectJoinHashTableFillFuncArgs::for_window_framing, OneToManyPerfectJoinHashTableFillFuncArgs::hash_entry_info, OneToManyPerfectJoinHashTableFillFuncArgs::join_column, SUFFIX, and OneToManyPerfectJoinHashTableFillFuncArgs::type_info.
void fill_one_to_many_hash_table_on_device_bucketized | ( | OneToManyPerfectJoinHashTableFillFuncArgs const | args | ) |
Definition at line 199 of file HashJoinRuntimeGpu.cu.
References run_benchmark_import::args, OneToManyPerfectJoinHashTableFillFuncArgs::bucket_normalization, OneToManyPerfectJoinHashTableFillFuncArgs::buff, count_matches_bucketized(), cuda_kernel_launch_wrapper(), fill_one_to_many_hash_table_on_device_impl(), fill_row_ids_bucketized(), BucketizedHashEntryInfo::getNormalizedHashEntryCount(), OneToManyPerfectJoinHashTableFillFuncArgs::hash_entry_info, OneToManyPerfectJoinHashTableFillFuncArgs::join_column, SUFFIX, and OneToManyPerfectJoinHashTableFillFuncArgs::type_info.
void fill_one_to_many_hash_table_on_device_sharded | ( | OneToManyPerfectJoinHashTableFillFuncArgs const | args, |
ShardInfo const | shard_info | ||
) |
Definition at line 226 of file HashJoinRuntimeGpu.cu.
References BucketizedHashEntryInfo::bucketized_hash_entry_count, OneToManyPerfectJoinHashTableFillFuncArgs::buff, checkCudaErrors, count_matches_sharded(), cuda_kernel_launch_wrapper(), fill_row_ids_sharded(), getQueryEngineCudaStream(), OneToManyPerfectJoinHashTableFillFuncArgs::hash_entry_info, inclusive_scan(), OneToManyPerfectJoinHashTableFillFuncArgs::join_column, set_valid_pos(), set_valid_pos_flag(), SUFFIX, and OneToManyPerfectJoinHashTableFillFuncArgs::type_info.
|
inline |
Definition at line 147 of file HashJoinRuntime.h.
References SQLTypeInfo::is_date_in_days(), is_unsigned_type(), Signed, SmallDate, and Unsigned.
Referenced by BoundingBoxIntersectJoinHashTable::fetchColumnsForDevice(), PerfectJoinHashTable::fetchColumnsForDevice(), BaselineJoinHashTable::fetchColumnsForDevice(), PerfectJoinHashTableBuilder::initOneToManyHashTableOnCpu(), and PerfectJoinHashTableBuilder::initOneToOneHashTableOnCpu().
void init_baseline_hash_join_buff_32 | ( | int8_t * | hash_join_buff, |
const int64_t | entry_count, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const int32_t | invalid_slot_val, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1788 of file HashJoinRuntime.cpp.
Referenced by BaselineJoinHashTableBuilder::initHashTableOnCpu().
void init_baseline_hash_join_buff_64 | ( | int8_t * | hash_join_buff, |
const int64_t | entry_count, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const int32_t | invalid_slot_val, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1804 of file HashJoinRuntime.cpp.
Referenced by BaselineJoinHashTableBuilder::initHashTableOnCpu().
void init_baseline_hash_join_buff_on_device_32 | ( | int8_t * | hash_join_buff, |
const int64_t | entry_count, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const int32_t | invalid_slot_val | ||
) |
Definition at line 313 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper().
Referenced by BaselineJoinHashTableBuilder::initHashTableOnGpu().
void init_baseline_hash_join_buff_on_device_64 | ( | int8_t * | hash_join_buff, |
const int64_t | entry_count, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const int32_t | invalid_slot_val | ||
) |
Definition at line 326 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper().
Referenced by BaselineJoinHashTableBuilder::initHashTableOnGpu().
void init_hash_join_buff | ( | int32_t * | buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 71 of file HashJoinRuntime.cpp.
Referenced by init_hash_join_buff_wrapper(), BaselineJoinHashTableBuilder::initHashTableOnCpu(), PerfectJoinHashTableBuilder::initOneToManyHashTableOnCpu(), and PerfectJoinHashTableBuilder::initOneToOneHashTableOnCpu().
void init_hash_join_buff_on_device | ( | int32_t * | buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val | ||
) |
Definition at line 114 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper(), and init_hash_join_buff_wrapper().
Referenced by BaselineJoinHashTableBuilder::initHashTableOnGpu().
int range_fill_baseline_hash_join_buff_32 | ( | int8_t * | hash_buff, |
const size_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const RangeKeyHandler * | key_handler, | ||
const size_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1888 of file HashJoinRuntime.cpp.
Referenced by fill_baseline_hash_join_buff().
int range_fill_baseline_hash_join_buff_64 | ( | int8_t * | hash_buff, |
const size_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const RangeKeyHandler * | key_handler, | ||
const size_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1953 of file HashJoinRuntime.cpp.
void range_fill_baseline_hash_join_buff_on_device_64 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
int * | dev_err_buff, | ||
const RangeKeyHandler * | key_handler, | ||
const size_t | num_elems | ||
) |
Definition at line 429 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper().
void range_fill_one_to_many_baseline_hash_table_on_device_64 | ( | int32_t * | buff, |
const int64_t * | composite_key_dict, | ||
const size_t | hash_entry_count, | ||
const RangeKeyHandler * | key_handler, | ||
const size_t | num_elems | ||
) |
Definition at line 491 of file HashJoinRuntimeGpu.cu.
const size_t g_maximum_conditions_to_coalesce {8} |
Definition at line 52 of file HashJoinRuntime.h.
Referenced by approximate_distinct_tuples_impl(), anonymous_namespace{IRCodegen.cpp}::check_valid_join_qual(), combine_equi_join_conditions(), count_matches_baseline(), fill_baseline_hash_join_buff(), and fill_row_ids_baseline().