OmniSciDB
a5dc49c757
|
#include <cuda.h>
#include <float.h>
#include <stdint.h>
#include <stdio.h>
#include <limits>
#include "BufferCompaction.h"
#include "ExtensionFunctions.hpp"
#include "GpuRtConstants.h"
#include "HyperLogLogRank.h"
#include "GpuInitGroups.cu"
#include "GroupByRuntime.cpp"
#include "JoinHashTable/Runtime/JoinHashTableQueryRuntime.cpp"
#include "MurmurHash.cpp"
#include "TopKRuntime.cpp"
#include "../Utils/ChunkIter.cpp"
#include "DateTruncate.cpp"
#include "ExtractFromTime.cpp"
#include "ArrayOps.cpp"
#include "DateAdd.cpp"
#include "GeoOps.cpp"
#include "StringFunctions.cpp"
#include "../Utils/Regexp.cpp"
#include "../Utils/StringLike.cpp"
Go to the source code of this file.
Macros | |
#define | init_group_by_buffer_gpu_impl init_group_by_buffer_gpu |
#define | DEF_AGG_ID_INT_SHARED(n) |
#define | DEF_SKIP_AGG(base_agg_func) |
#define | DATA_T int64_t |
#define | ADDR_T uint64_t |
#define | DATA_T int32_t |
#define | ADDR_T uint32_t |
#define | DEF_SKIP_AGG(base_agg_func) |
#define | DATA_T double |
#define | ADDR_T uint64_t |
#define | DATA_T float |
#define | ADDR_T uint32_t |
#define | EXECUTE_INCLUDE |
Functions | |
__device__ int64_t | get_thread_index () |
__device__ int64_t | get_block_index () |
__device__ int32_t | pos_start_impl (const int32_t *row_index_resume) |
__device__ int32_t | group_buff_idx_impl () |
__device__ int32_t | pos_step_impl () |
__device__ int8_t | thread_warp_idx (const int8_t warp_sz) |
__device__ const int64_t * | init_shared_mem_nop (const int64_t *groups_buffer, const int32_t groups_buffer_size) |
__device__ void | write_back_nop (int64_t *dest, int64_t *src, const int32_t sz) |
__device__ int64_t * | declare_dynamic_shared_memory () |
__device__ const int64_t * | init_shared_mem (const int64_t *global_groups_buffer, const int32_t groups_buffer_size) |
__inline__ __device__ uint32_t | get_smid (void) |
__device__ bool | dynamic_watchdog () |
__device__ bool | check_interrupt () |
template<typename T = unsigned long long> | |
__device__ T | get_empty_key () |
template<> | |
__device__ unsigned int | get_empty_key () |
template<typename T > | |
__device__ int64_t * | get_matching_group_value (int64_t *groups_buffer, const uint32_t h, const T *key, const uint32_t key_count, const uint32_t row_size_quad) |
__device__ int64_t * | get_matching_group_value (int64_t *groups_buffer, const uint32_t h, const int64_t *key, const uint32_t key_count, const uint32_t key_width, const uint32_t row_size_quad) |
template<typename T > | |
__device__ int32_t | get_matching_group_value_columnar_slot (int64_t *groups_buffer, const uint32_t entry_count, const uint32_t h, const T *key, const uint32_t key_count) |
__device__ int32_t | get_matching_group_value_columnar_slot (int64_t *groups_buffer, const uint32_t entry_count, const uint32_t h, const int64_t *key, const uint32_t key_count, const uint32_t key_width) |
__device__ int64_t * | get_matching_group_value_columnar (int64_t *groups_buffer, const uint32_t h, const int64_t *key, const uint32_t key_qw_count, const size_t entry_count) |
__device__ int64_t | atomicMax64 (int64_t *address, int64_t val) |
__device__ int64_t | atomicMin64 (int64_t *address, int64_t val) |
__device__ double | atomicMax (double *address, double val) |
__device__ float | atomicMax (float *address, float val) |
__device__ double | atomicMin (double *address, double val) |
__device__ double | atomicMin (float *address, float val) |
__device__ uint64_t | agg_count_shared (uint64_t *agg, const int64_t val) |
__device__ uint64_t | agg_count_if_shared (uint64_t *agg, const int64_t cond) |
__device__ uint32_t | agg_count_int32_shared (uint32_t *agg, const int32_t val) |
__device__ uint32_t | agg_count_if_int32_shared (uint32_t *agg, const int32_t cond) |
__device__ uint64_t | agg_count_double_shared (uint64_t *agg, const double val) |
__device__ uint32_t | agg_count_float_shared (uint32_t *agg, const float val) |
__device__ int64_t | agg_sum_shared (int64_t *agg, const int64_t val) |
__device__ int32_t | agg_sum_int32_shared (int32_t *agg, const int32_t val) |
__device__ void | agg_sum_float_shared (int32_t *agg, const float val) |
__device__ void | agg_sum_double_shared (int64_t *agg, const double val) |
__device__ int64_t | agg_sum_if_shared (int64_t *agg, const int64_t val, const int8_t cond) |
__device__ int32_t | agg_sum_if_int32_shared (int32_t *agg, const int32_t val, const int8_t cond) |
__device__ void | agg_sum_if_float_shared (int32_t *agg, const float val, const int8_t cond) |
__device__ void | agg_sum_if_double_shared (int64_t *agg, const double val, const int8_t cond) |
__device__ void | agg_max_shared (int64_t *agg, const int64_t val) |
__device__ void | agg_max_int32_shared (int32_t *agg, const int32_t val) |
__device__ void | agg_max_double_shared (int64_t *agg, const double val) |
__device__ void | agg_max_float_shared (int32_t *agg, const float val) |
__device__ void | agg_min_shared (int64_t *agg, const int64_t val) |
__device__ void | agg_min_int32_shared (int32_t *agg, const int32_t val) |
__device__ void | atomicMax16 (int16_t *agg, const int16_t val) |
__device__ void | atomicMax8 (int8_t *agg, const int8_t val) |
__device__ void | atomicMin16 (int16_t *agg, const int16_t val) |
__device__ void | atomicMin16SkipVal (int16_t *agg, const int16_t val, const int16_t skip_val) |
__device__ void | atomicMin8 (int8_t *agg, const int8_t val) |
__device__ void | atomicMin8SkipVal (int8_t *agg, const int8_t val, const int8_t skip_val) |
__device__ void | agg_max_int16_shared (int16_t *agg, const int16_t val) |
__device__ void | agg_max_int8_shared (int8_t *agg, const int8_t val) |
__device__ void | agg_min_int16_shared (int16_t *agg, const int16_t val) |
__device__ void | agg_min_int8_shared (int8_t *agg, const int8_t val) |
__device__ void | agg_min_double_shared (int64_t *agg, const double val) |
__device__ void | agg_min_float_shared (int32_t *agg, const float val) |
__device__ void | agg_id_shared (int64_t *agg, const int64_t val) |
__device__ int8_t * | agg_id_varlen_shared (int8_t *varlen_buffer, const int64_t offset, const int8_t *value, const int64_t size_bytes) |
__device__ int32_t | checked_single_agg_id_shared (int64_t *agg, const int64_t val, const int64_t null_val) |
__device__ void | agg_id_double_shared (int64_t *agg, const double val) |
__device__ int32_t | checked_single_agg_id_double_shared (int64_t *agg, const double val, const double null_val) |
__device__ void | agg_id_double_shared_slow (int64_t *agg, const double *val) |
__device__ int32_t | checked_single_agg_id_double_shared_slow (int64_t *agg, const double *valp, const double null_val) |
__device__ void | agg_id_float_shared (int32_t *agg, const float val) |
__device__ int32_t | checked_single_agg_id_float_shared (int32_t *agg, const float val, const float null_val) |
__device__ void | agg_max_int32_skip_val_shared (int32_t *agg, const int32_t val, const int32_t skip_val) |
__device__ void | agg_max_int16_skip_val_shared (int16_t *agg, const int16_t val, const int16_t skip_val) |
__device__ void | agg_min_int16_skip_val_shared (int16_t *agg, const int16_t val, const int16_t skip_val) |
__device__ void | agg_max_int8_skip_val_shared (int8_t *agg, const int8_t val, const int8_t skip_val) |
__device__ void | agg_min_int8_skip_val_shared (int8_t *agg, const int8_t val, const int8_t skip_val) |
__device__ int32_t | atomicMin32SkipVal (int32_t *address, int32_t val, const int32_t skip_val) |
__device__ void | agg_min_int32_skip_val_shared (int32_t *agg, const int32_t val, const int32_t skip_val) |
__device__ int32_t | atomicSum32SkipVal (int32_t *address, const int32_t val, const int32_t skip_val) |
__device__ int32_t | agg_sum_int32_skip_val_shared (int32_t *agg, const int32_t val, const int32_t skip_val) |
__device__ int32_t | agg_sum_if_int32_skip_val_shared (int32_t *agg, const int32_t val, const int32_t skip_val, const int8_t cond) |
__device__ int64_t | atomicSum64SkipVal (int64_t *address, const int64_t val, const int64_t skip_val) |
__device__ int64_t | agg_sum_skip_val_shared (int64_t *agg, const int64_t val, const int64_t skip_val) |
__device__ int64_t | agg_sum_if_skip_val_shared (int64_t *agg, const int64_t val, const int64_t skip_val, const int8_t cond) |
__device__ int64_t | atomicMin64SkipVal (int64_t *address, int64_t val, const int64_t skip_val) |
__device__ void | agg_min_skip_val_shared (int64_t *agg, const int64_t val, const int64_t skip_val) |
__device__ int64_t | atomicMax64SkipVal (int64_t *address, int64_t val, const int64_t skip_val) |
__device__ void | agg_max_skip_val_shared (int64_t *agg, const int64_t val, const int64_t skip_val) |
__device__ void | agg_max_float_skip_val_shared (int32_t *agg, const float val, const float skip_val) |
__device__ float | atomicMinFltSkipVal (int32_t *address, float val, const float skip_val) |
__device__ void | agg_min_float_skip_val_shared (int32_t *agg, const float val, const float skip_val) |
__device__ void | atomicSumFltSkipVal (float *address, const float val, const float skip_val) |
__device__ void | agg_sum_float_skip_val_shared (int32_t *agg, const float val, const float skip_val) |
__device__ void | agg_sum_if_float_skip_val_shared (int32_t *agg, const float val, const float skip_val, const int8_t cond) |
__device__ void | atomicSumDblSkipVal (double *address, const double val, const double skip_val) |
__device__ void | agg_sum_double_skip_val_shared (int64_t *agg, const double val, const double skip_val) |
__device__ void | agg_sum_if_double_skip_val_shared (int64_t *agg, const double val, const double skip_val, const int8_t cond) |
__device__ double | atomicMinDblSkipVal (double *address, double val, const double skip_val) |
__device__ void | agg_min_double_skip_val_shared (int64_t *agg, const double val, const double skip_val) |
__device__ void | agg_max_double_skip_val_shared (int64_t *agg, const double val, const double skip_val) |
__device__ bool | slotEmptyKeyCAS (int64_t *slot, int64_t new_val, int64_t init_val) |
__device__ bool | slotEmptyKeyCAS_int32 (int32_t *slot, int32_t new_val, int32_t init_val) |
__device__ bool | slotEmptyKeyCAS_int16 (int16_t *slot, int16_t new_val, int16_t init_val) |
__device__ bool | slotEmptyKeyCAS_int8 (int8_t *slot, int8_t new_val, int8_t init_val) |
__device__ StringView | string_decode (int8_t *chunk_iter_, int64_t pos) |
__device__ void | linear_probabilistic_count (uint8_t *bitmap, const uint32_t bitmap_bytes, const uint8_t *key_bytes, const uint32_t key_len) |
__device__ void | agg_count_distinct_bitmap_gpu (int64_t *agg, const int64_t val, const int64_t min_val, const int64_t bucket_size, const int64_t base_dev_addr, const int64_t base_host_addr, const uint64_t sub_bitmap_count, const uint64_t bitmap_bytes) |
__device__ void | agg_count_distinct_bitmap_skip_val_gpu (int64_t *agg, const int64_t val, const int64_t min_val, const int64_t bucket_size, const int64_t skip_val, const int64_t base_dev_addr, const int64_t base_host_addr, const uint64_t sub_bitmap_count, const uint64_t bitmap_bytes) |
__device__ void | agg_approximate_count_distinct_gpu (int64_t *agg, const int64_t key, const uint32_t b, const int64_t base_dev_addr, const int64_t base_host_addr) |
__device__ void | force_sync () |
__device__ void | sync_warp () |
__device__ void | sync_warp_protected (int64_t thread_pos, int64_t row_count) |
__device__ void | sync_threadblock () |
__device__ void | write_back_non_grouped_agg (int64_t *input_buffer, int64_t *output_buffer, const int32_t agg_idx) |
Variables | |
__device__ int64_t | dw_sm_cycle_start [128] |
__device__ int64_t | dw_cycle_budget = 0 |
__device__ int32_t | dw_abort = 0 |
__device__ int32_t | runtime_interrupt_flag = 0 |
#define ADDR_T uint64_t |
Definition at line 1066 of file cuda_mapd_rt.cu.
#define ADDR_T uint32_t |
Definition at line 1066 of file cuda_mapd_rt.cu.
#define ADDR_T uint64_t |
Definition at line 1066 of file cuda_mapd_rt.cu.
#define ADDR_T uint32_t |
Definition at line 1066 of file cuda_mapd_rt.cu.
#define DATA_T int64_t |
Definition at line 1065 of file cuda_mapd_rt.cu.
#define DATA_T int32_t |
Definition at line 1065 of file cuda_mapd_rt.cu.
#define DATA_T double |
Definition at line 1065 of file cuda_mapd_rt.cu.
#define DATA_T float |
Definition at line 1065 of file cuda_mapd_rt.cu.
#define DEF_AGG_ID_INT_SHARED | ( | n | ) |
Definition at line 762 of file cuda_mapd_rt.cu.
#define DEF_SKIP_AGG | ( | base_agg_func | ) |
Definition at line 1050 of file cuda_mapd_rt.cu.
#define DEF_SKIP_AGG | ( | base_agg_func | ) |
Definition at line 1050 of file cuda_mapd_rt.cu.
#define EXECUTE_INCLUDE |
Definition at line 1273 of file cuda_mapd_rt.cu.
#define init_group_by_buffer_gpu_impl init_group_by_buffer_gpu |
Definition at line 82 of file cuda_mapd_rt.cu.
__device__ void agg_approximate_count_distinct_gpu | ( | int64_t * | agg, |
const int64_t | key, | ||
const uint32_t | b, | ||
const int64_t | base_dev_addr, | ||
const int64_t | base_host_addr | ||
) |
Definition at line 1346 of file cuda_mapd_rt.cu.
References atomicMax(), get_rank(), and MurmurHash64A().
__device__ void agg_count_distinct_bitmap_gpu | ( | int64_t * | agg, |
const int64_t | val, | ||
const int64_t | min_val, | ||
const int64_t | bucket_size, | ||
const int64_t | base_dev_addr, | ||
const int64_t | base_host_addr, | ||
const uint64_t | sub_bitmap_count, | ||
const uint64_t | bitmap_bytes | ||
) |
Definition at line 1303 of file cuda_mapd_rt.cu.
Referenced by agg_count_distinct_bitmap_skip_val_gpu().
__device__ void agg_count_distinct_bitmap_skip_val_gpu | ( | int64_t * | agg, |
const int64_t | val, | ||
const int64_t | min_val, | ||
const int64_t | bucket_size, | ||
const int64_t | skip_val, | ||
const int64_t | base_dev_addr, | ||
const int64_t | base_host_addr, | ||
const uint64_t | sub_bitmap_count, | ||
const uint64_t | bitmap_bytes | ||
) |
Definition at line 1324 of file cuda_mapd_rt.cu.
References agg_count_distinct_bitmap_gpu().
__device__ uint64_t agg_count_double_shared | ( | uint64_t * | agg, |
const double | val | ||
) |
Definition at line 448 of file cuda_mapd_rt.cu.
References agg_count_shared().
__device__ uint32_t agg_count_float_shared | ( | uint32_t * | agg, |
const float | val | ||
) |
Definition at line 452 of file cuda_mapd_rt.cu.
References agg_count_int32_shared().
__device__ uint32_t agg_count_if_int32_shared | ( | uint32_t * | agg, |
const int32_t | cond | ||
) |
Definition at line 443 of file cuda_mapd_rt.cu.
__device__ uint64_t agg_count_if_shared | ( | uint64_t * | agg, |
const int64_t | cond | ||
) |
Definition at line 434 of file cuda_mapd_rt.cu.
__device__ uint32_t agg_count_int32_shared | ( | uint32_t * | agg, |
const int32_t | val | ||
) |
Definition at line 439 of file cuda_mapd_rt.cu.
Referenced by agg_count_float_shared().
__device__ uint64_t agg_count_shared | ( | uint64_t * | agg, |
const int64_t | val | ||
) |
Definition at line 430 of file cuda_mapd_rt.cu.
Referenced by agg_count_double_shared().
__device__ void agg_id_double_shared | ( | int64_t * | agg, |
const double | val | ||
) |
Definition at line 774 of file cuda_mapd_rt.cu.
__device__ void agg_id_double_shared_slow | ( | int64_t * | agg, |
const double * | val | ||
) |
Definition at line 805 of file cuda_mapd_rt.cu.
__device__ void agg_id_float_shared | ( | int32_t * | agg, |
const float | val | ||
) |
Definition at line 838 of file cuda_mapd_rt.cu.
__device__ void agg_id_shared | ( | int64_t * | agg, |
const int64_t | val | ||
) |
Definition at line 721 of file cuda_mapd_rt.cu.
__device__ int8_t* agg_id_varlen_shared | ( | int8_t * | varlen_buffer, |
const int64_t | offset, | ||
const int8_t * | value, | ||
const int64_t | size_bytes | ||
) |
Definition at line 725 of file cuda_mapd_rt.cu.
__device__ void agg_max_double_shared | ( | int64_t * | agg, |
const double | val | ||
) |
Definition at line 515 of file cuda_mapd_rt.cu.
References atomicMax().
__device__ void agg_max_double_skip_val_shared | ( | int64_t * | agg, |
const double | val, | ||
const double | skip_val | ||
) |
Definition at line 1178 of file cuda_mapd_rt.cu.
References atomicMax().
__device__ void agg_max_float_shared | ( | int32_t * | agg, |
const float | val | ||
) |
Definition at line 519 of file cuda_mapd_rt.cu.
References atomicMax().
__device__ void agg_max_float_skip_val_shared | ( | int32_t * | agg, |
const float | val, | ||
const float | skip_val | ||
) |
Definition at line 1072 of file cuda_mapd_rt.cu.
References atomicMax().
__device__ void agg_max_int16_shared | ( | int16_t * | agg, |
const int16_t | val | ||
) |
Definition at line 697 of file cuda_mapd_rt.cu.
References atomicMax16().
Referenced by agg_max_int16_skip_val_shared().
__device__ void agg_max_int16_skip_val_shared | ( | int16_t * | agg, |
const int16_t | val, | ||
const int16_t | skip_val | ||
) |
Definition at line 901 of file cuda_mapd_rt.cu.
References agg_max_int16_shared().
__device__ void agg_max_int32_shared | ( | int32_t * | agg, |
const int32_t | val | ||
) |
Definition at line 511 of file cuda_mapd_rt.cu.
References atomicMax().
Referenced by agg_max_int32_skip_val_shared().
__device__ void agg_max_int32_skip_val_shared | ( | int32_t * | agg, |
const int32_t | val, | ||
const int32_t | skip_val | ||
) |
Definition at line 893 of file cuda_mapd_rt.cu.
References agg_max_int32_shared().
__device__ void agg_max_int8_shared | ( | int8_t * | agg, |
const int8_t | val | ||
) |
Definition at line 701 of file cuda_mapd_rt.cu.
References atomicMax8().
Referenced by agg_max_int8_skip_val_shared().
__device__ void agg_max_int8_skip_val_shared | ( | int8_t * | agg, |
const int8_t | val, | ||
const int8_t | skip_val | ||
) |
Definition at line 917 of file cuda_mapd_rt.cu.
References agg_max_int8_shared().
__device__ void agg_max_shared | ( | int64_t * | agg, |
const int64_t | val | ||
) |
Definition at line 507 of file cuda_mapd_rt.cu.
References atomicMax64().
__device__ void agg_max_skip_val_shared | ( | int64_t * | agg, |
const int64_t | val, | ||
const int64_t | skip_val | ||
) |
Definition at line 1041 of file cuda_mapd_rt.cu.
References atomicMax64SkipVal().
__device__ void agg_min_double_shared | ( | int64_t * | agg, |
const double | val | ||
) |
Definition at line 713 of file cuda_mapd_rt.cu.
References atomicMin().
__device__ void agg_min_double_skip_val_shared | ( | int64_t * | agg, |
const double | val, | ||
const double | skip_val | ||
) |
Definition at line 1170 of file cuda_mapd_rt.cu.
References atomicMinDblSkipVal().
__device__ void agg_min_float_shared | ( | int32_t * | agg, |
const float | val | ||
) |
Definition at line 717 of file cuda_mapd_rt.cu.
References atomicMin().
__device__ void agg_min_float_skip_val_shared | ( | int32_t * | agg, |
const float | val, | ||
const float | skip_val | ||
) |
Definition at line 1089 of file cuda_mapd_rt.cu.
References atomicMinFltSkipVal().
__device__ void agg_min_int16_shared | ( | int16_t * | agg, |
const int16_t | val | ||
) |
Definition at line 705 of file cuda_mapd_rt.cu.
References atomicMin16().
__device__ void agg_min_int16_skip_val_shared | ( | int16_t * | agg, |
const int16_t | val, | ||
const int16_t | skip_val | ||
) |
Definition at line 909 of file cuda_mapd_rt.cu.
References atomicMin16SkipVal().
__device__ void agg_min_int32_shared | ( | int32_t * | agg, |
const int32_t | val | ||
) |
Definition at line 527 of file cuda_mapd_rt.cu.
References atomicMin().
__device__ void agg_min_int32_skip_val_shared | ( | int32_t * | agg, |
const int32_t | val, | ||
const int32_t | skip_val | ||
) |
Definition at line 940 of file cuda_mapd_rt.cu.
References atomicMin32SkipVal().
__device__ void agg_min_int8_shared | ( | int8_t * | agg, |
const int8_t | val | ||
) |
Definition at line 709 of file cuda_mapd_rt.cu.
References atomicMin8().
__device__ void agg_min_int8_skip_val_shared | ( | int8_t * | agg, |
const int8_t | val, | ||
const int8_t | skip_val | ||
) |
Definition at line 925 of file cuda_mapd_rt.cu.
References atomicMin8SkipVal().
__device__ void agg_min_shared | ( | int64_t * | agg, |
const int64_t | val | ||
) |
Definition at line 523 of file cuda_mapd_rt.cu.
References atomicMin64().
__device__ void agg_min_skip_val_shared | ( | int64_t * | agg, |
const int64_t | val, | ||
const int64_t | skip_val | ||
) |
Definition at line 1016 of file cuda_mapd_rt.cu.
References atomicMin64SkipVal().
__device__ void agg_sum_double_shared | ( | int64_t * | agg, |
const double | val | ||
) |
Definition at line 468 of file cuda_mapd_rt.cu.
__device__ void agg_sum_double_skip_val_shared | ( | int64_t * | agg, |
const double | val, | ||
const double | skip_val | ||
) |
Definition at line 1131 of file cuda_mapd_rt.cu.
References atomicSumDblSkipVal().
Referenced by agg_sum_if_double_skip_val_shared().
__device__ void agg_sum_float_shared | ( | int32_t * | agg, |
const float | val | ||
) |
Definition at line 464 of file cuda_mapd_rt.cu.
__device__ void agg_sum_float_skip_val_shared | ( | int32_t * | agg, |
const float | val, | ||
const float | skip_val | ||
) |
Definition at line 1104 of file cuda_mapd_rt.cu.
References atomicSumFltSkipVal().
Referenced by agg_sum_if_float_skip_val_shared().
__device__ void agg_sum_if_double_shared | ( | int64_t * | agg, |
const double | val, | ||
const int8_t | cond | ||
) |
Definition at line 499 of file cuda_mapd_rt.cu.
__device__ void agg_sum_if_double_skip_val_shared | ( | int64_t * | agg, |
const double | val, | ||
const double | skip_val, | ||
const int8_t | cond | ||
) |
Definition at line 1139 of file cuda_mapd_rt.cu.
References agg_sum_double_skip_val_shared().
__device__ void agg_sum_if_float_shared | ( | int32_t * | agg, |
const float | val, | ||
const int8_t | cond | ||
) |
Definition at line 491 of file cuda_mapd_rt.cu.
__device__ void agg_sum_if_float_skip_val_shared | ( | int32_t * | agg, |
const float | val, | ||
const float | skip_val, | ||
const int8_t | cond | ||
) |
Definition at line 1112 of file cuda_mapd_rt.cu.
References agg_sum_float_skip_val_shared().
__device__ int32_t agg_sum_if_int32_shared | ( | int32_t * | agg, |
const int32_t | val, | ||
const int8_t | cond | ||
) |
Definition at line 482 of file cuda_mapd_rt.cu.
__device__ int32_t agg_sum_if_int32_skip_val_shared | ( | int32_t * | agg, |
const int32_t | val, | ||
const int32_t | skip_val, | ||
const int8_t | cond | ||
) |
Definition at line 967 of file cuda_mapd_rt.cu.
References agg_sum_int32_skip_val_shared().
__device__ int64_t agg_sum_if_shared | ( | int64_t * | agg, |
const int64_t | val, | ||
const int8_t | cond | ||
) |
Definition at line 472 of file cuda_mapd_rt.cu.
__device__ int64_t agg_sum_if_skip_val_shared | ( | int64_t * | agg, |
const int64_t | val, | ||
const int64_t | skip_val, | ||
const int8_t | cond | ||
) |
Definition at line 992 of file cuda_mapd_rt.cu.
References agg_sum_skip_val_shared().
__device__ int32_t agg_sum_int32_shared | ( | int32_t * | agg, |
const int32_t | val | ||
) |
Definition at line 460 of file cuda_mapd_rt.cu.
__device__ int32_t agg_sum_int32_skip_val_shared | ( | int32_t * | agg, |
const int32_t | val, | ||
const int32_t | skip_val | ||
) |
Definition at line 957 of file cuda_mapd_rt.cu.
References atomicSum32SkipVal().
Referenced by agg_sum_if_int32_skip_val_shared().
__device__ int64_t agg_sum_shared | ( | int64_t * | agg, |
const int64_t | val | ||
) |
Definition at line 456 of file cuda_mapd_rt.cu.
Referenced by write_back_non_grouped_agg().
__device__ int64_t agg_sum_skip_val_shared | ( | int64_t * | agg, |
const int64_t | val, | ||
const int64_t | skip_val | ||
) |
Definition at line 983 of file cuda_mapd_rt.cu.
References atomicSum64SkipVal().
Referenced by agg_sum_if_skip_val_shared().
__device__ double atomicMax | ( | double * | address, |
double | val | ||
) |
Definition at line 372 of file cuda_mapd_rt.cu.
Referenced by agg_approximate_count_distinct_gpu(), agg_max_double_shared(), agg_max_double_skip_val_shared(), agg_max_float_shared(), agg_max_float_skip_val_shared(), agg_max_int32_shared(), and approximate_distinct_tuples_impl().
__device__ float atomicMax | ( | float * | address, |
float | val | ||
) |
Definition at line 388 of file cuda_mapd_rt.cu.
__device__ void atomicMax16 | ( | int16_t * | agg, |
const int16_t | val | ||
) |
Definition at line 545 of file cuda_mapd_rt.cu.
Referenced by agg_max_int16_shared().
__device__ int64_t atomicMax64 | ( | int64_t * | address, |
int64_t | val | ||
) |
Definition at line 330 of file cuda_mapd_rt.cu.
Referenced by agg_max_shared().
__device__ int64_t atomicMax64SkipVal | ( | int64_t * | address, |
int64_t | val, | ||
const int64_t | skip_val | ||
) |
Definition at line 1024 of file cuda_mapd_rt.cu.
Referenced by agg_max_skip_val_shared().
__device__ void atomicMax8 | ( | int8_t * | agg, |
const int8_t | val | ||
) |
Definition at line 567 of file cuda_mapd_rt.cu.
Referenced by agg_max_int8_shared().
__device__ double atomicMin | ( | double * | address, |
double | val | ||
) |
Definition at line 403 of file cuda_mapd_rt.cu.
Referenced by agg_min_double_shared(), agg_min_float_shared(), agg_min_int32_shared(), atomicMin32SkipVal(), atomicMinFltSkipVal(), and compute_bucket_sizes_impl().
__device__ double atomicMin | ( | float * | address, |
float | val | ||
) |
Definition at line 417 of file cuda_mapd_rt.cu.
__device__ void atomicMin16 | ( | int16_t * | agg, |
const int16_t | val | ||
) |
Definition at line 607 of file cuda_mapd_rt.cu.
Referenced by agg_min_int16_shared().
__device__ void atomicMin16SkipVal | ( | int16_t * | agg, |
const int16_t | val, | ||
const int16_t | skip_val | ||
) |
Definition at line 629 of file cuda_mapd_rt.cu.
Referenced by agg_min_int16_skip_val_shared().
__device__ int32_t atomicMin32SkipVal | ( | int32_t * | address, |
int32_t | val, | ||
const int32_t | skip_val | ||
) |
Definition at line 933 of file cuda_mapd_rt.cu.
References atomicMin().
Referenced by agg_min_int32_skip_val_shared().
__device__ int64_t atomicMin64 | ( | int64_t * | address, |
int64_t | val | ||
) |
Definition at line 342 of file cuda_mapd_rt.cu.
Referenced by agg_min_shared().
__device__ int64_t atomicMin64SkipVal | ( | int64_t * | address, |
int64_t | val, | ||
const int64_t | skip_val | ||
) |
Definition at line 999 of file cuda_mapd_rt.cu.
Referenced by agg_min_skip_val_shared().
__device__ void atomicMin8 | ( | int8_t * | agg, |
const int8_t | val | ||
) |
Definition at line 657 of file cuda_mapd_rt.cu.
Referenced by agg_min_int8_shared().
__device__ void atomicMin8SkipVal | ( | int8_t * | agg, |
const int8_t | val, | ||
const int8_t | skip_val | ||
) |
Definition at line 677 of file cuda_mapd_rt.cu.
Referenced by agg_min_int8_skip_val_shared().
__device__ double atomicMinDblSkipVal | ( | double * | address, |
double | val, | ||
const double | skip_val | ||
) |
Definition at line 1148 of file cuda_mapd_rt.cu.
Referenced by agg_min_double_skip_val_shared().
__device__ float atomicMinFltSkipVal | ( | int32_t * | address, |
float | val, | ||
const float | skip_val | ||
) |
Definition at line 1082 of file cuda_mapd_rt.cu.
References atomicMin().
Referenced by agg_min_float_skip_val_shared().
__device__ int32_t atomicSum32SkipVal | ( | int32_t * | address, |
const int32_t | val, | ||
const int32_t | skip_val | ||
) |
Definition at line 948 of file cuda_mapd_rt.cu.
Referenced by agg_sum_int32_skip_val_shared().
__device__ int64_t atomicSum64SkipVal | ( | int64_t * | address, |
const int64_t | val, | ||
const int64_t | skip_val | ||
) |
Definition at line 974 of file cuda_mapd_rt.cu.
Referenced by agg_sum_skip_val_shared().
__device__ void atomicSumDblSkipVal | ( | double * | address, |
const double | val, | ||
const double | skip_val | ||
) |
Definition at line 1121 of file cuda_mapd_rt.cu.
Referenced by agg_sum_double_skip_val_shared().
__device__ void atomicSumFltSkipVal | ( | float * | address, |
const float | val, | ||
const float | skip_val | ||
) |
Definition at line 1097 of file cuda_mapd_rt.cu.
References f().
Referenced by agg_sum_float_skip_val_shared().
__device__ bool check_interrupt | ( | ) |
Definition at line 159 of file cuda_mapd_rt.cu.
Referenced by check_interrupt_rt(), and ColumnFetcher::linearizeFixedLenArrayColFrags().
__device__ int32_t checked_single_agg_id_double_shared | ( | int64_t * | agg, |
const double | val, | ||
const double | null_val | ||
) |
Definition at line 778 of file cuda_mapd_rt.cu.
__device__ int32_t checked_single_agg_id_double_shared_slow | ( | int64_t * | agg, |
const double * | valp, | ||
const double | null_val | ||
) |
Definition at line 810 of file cuda_mapd_rt.cu.
__device__ int32_t checked_single_agg_id_float_shared | ( | int32_t * | agg, |
const float | val, | ||
const float | null_val | ||
) |
Definition at line 842 of file cuda_mapd_rt.cu.
__device__ int32_t checked_single_agg_id_shared | ( | int64_t * | agg, |
const int64_t | val, | ||
const int64_t | null_val | ||
) |
Definition at line 735 of file cuda_mapd_rt.cu.
__device__ int64_t* declare_dynamic_shared_memory | ( | ) |
Definition at line 56 of file cuda_mapd_rt.cu.
__device__ bool dynamic_watchdog | ( | ) |
Definition at line 115 of file cuda_mapd_rt.cu.
Referenced by anonymous_namespace{ResultSetReduction.cpp}::check_watchdog(), check_watchdog_rt(), anonymous_namespace{ResultSetReduction.cpp}::check_watchdog_with_seed(), get_group_value_columnar_slot_with_watchdog(), get_group_value_columnar_with_watchdog(), and get_group_value_with_watchdog().
__device__ void force_sync | ( | ) |
Definition at line 1360 of file cuda_mapd_rt.cu.
__device__ int64_t get_block_index | ( | ) |
Definition at line 23 of file cuda_mapd_rt.cu.
|
inline |
|
inline |
|
inline |
Definition at line 174 of file cuda_mapd_rt.cu.
References align_to_int64(), and heavydb.dtypes::T.
Referenced by get_group_value(), get_group_value_with_watchdog(), and get_matching_group_value().
__device__ int64_t* get_matching_group_value | ( | int64_t * | groups_buffer, |
const uint32_t | h, | ||
const int64_t * | key, | ||
const uint32_t | key_count, | ||
const uint32_t | key_width, | ||
const uint32_t | row_size_quad | ||
) |
Definition at line 211 of file cuda_mapd_rt.cu.
References get_matching_group_value().
__device__ int64_t* get_matching_group_value_columnar | ( | int64_t * | groups_buffer, |
const uint32_t | h, | ||
const int64_t * | key, | ||
const uint32_t | key_qw_count, | ||
const size_t | entry_count | ||
) |
Definition at line 296 of file cuda_mapd_rt.cu.
References EMPTY_KEY_64.
Referenced by get_group_value_columnar(), and get_group_value_columnar_with_watchdog().
__device__ int32_t get_matching_group_value_columnar_slot | ( | int64_t * | groups_buffer, |
const uint32_t | entry_count, | ||
const uint32_t | h, | ||
const T * | key, | ||
const uint32_t | key_count | ||
) |
Definition at line 236 of file cuda_mapd_rt.cu.
References heavydb.dtypes::T.
Referenced by get_group_value_columnar_slot(), get_group_value_columnar_slot_with_watchdog(), and get_matching_group_value_columnar_slot().
__device__ int32_t get_matching_group_value_columnar_slot | ( | int64_t * | groups_buffer, |
const uint32_t | entry_count, | ||
const uint32_t | h, | ||
const int64_t * | key, | ||
const uint32_t | key_count, | ||
const uint32_t | key_width | ||
) |
Definition at line 270 of file cuda_mapd_rt.cu.
References get_matching_group_value_columnar_slot().
__inline__ __device__ uint32_t get_smid | ( | void | ) |
Definition at line 97 of file cuda_mapd_rt.cu.
Referenced by dynamic_watchdog().
__device__ int64_t get_thread_index | ( | ) |
Definition at line 19 of file cuda_mapd_rt.cu.
__device__ int32_t group_buff_idx_impl | ( | ) |
Definition at line 31 of file cuda_mapd_rt.cu.
References pos_start_impl().
__device__ const int64_t* init_shared_mem | ( | const int64_t * | global_groups_buffer, |
const int32_t | groups_buffer_size | ||
) |
Initializes the shared memory buffer for perfect hash group by. In this function, we simply copy the global group by buffer (already initialized on the host and transferred) to all shared memory group by buffers.
Definition at line 66 of file cuda_mapd_rt.cu.
__device__ const int64_t* init_shared_mem_nop | ( | const int64_t * | groups_buffer, |
const int32_t | groups_buffer_size | ||
) |
Definition at line 43 of file cuda_mapd_rt.cu.
__device__ void linear_probabilistic_count | ( | uint8_t * | bitmap, |
const uint32_t | bitmap_bytes, | ||
const uint8_t * | key_bytes, | ||
const uint32_t | key_len | ||
) |
Definition at line 1293 of file cuda_mapd_rt.cu.
__device__ int32_t pos_start_impl | ( | const int32_t * | row_index_resume | ) |
Definition at line 27 of file cuda_mapd_rt.cu.
Referenced by get_bin_from_k_heap_impl(), get_error_code(), group_buff_idx_impl(), and record_error_code().
__device__ int32_t pos_step_impl | ( | ) |
Definition at line 35 of file cuda_mapd_rt.cu.
Referenced by get_bin_from_k_heap_impl().
__device__ bool slotEmptyKeyCAS | ( | int64_t * | slot, |
int64_t | new_val, | ||
int64_t | init_val | ||
) |
Definition at line 1193 of file cuda_mapd_rt.cu.
__device__ bool slotEmptyKeyCAS_int16 | ( | int16_t * | slot, |
int16_t | new_val, | ||
int16_t | init_val | ||
) |
Definition at line 1221 of file cuda_mapd_rt.cu.
__device__ bool slotEmptyKeyCAS_int32 | ( | int32_t * | slot, |
int32_t | new_val, | ||
int32_t | init_val | ||
) |
Definition at line 1210 of file cuda_mapd_rt.cu.
__device__ bool slotEmptyKeyCAS_int8 | ( | int8_t * | slot, |
int8_t | new_val, | ||
int8_t | init_val | ||
) |
Definition at line 1245 of file cuda_mapd_rt.cu.
__device__ StringView string_decode | ( | int8_t * | chunk_iter_, |
int64_t | pos | ||
) |
Definition at line 1282 of file cuda_mapd_rt.cu.
References ChunkIter_get_nth(), VarlenDatum::is_null, VarlenDatum::length, and VarlenDatum::pointer.
__device__ void sync_threadblock | ( | ) |
Definition at line 1383 of file cuda_mapd_rt.cu.
Referenced by GpuSharedMemCodeBuilder::codegenInitialization(), and GpuSharedMemCodeBuilder::codegenReduction().
__device__ void sync_warp | ( | ) |
Definition at line 1364 of file cuda_mapd_rt.cu.
__device__ void sync_warp_protected | ( | int64_t | thread_pos, |
int64_t | row_count | ||
) |
Protected warp synchornization to make sure all (or none) threads within a warp go through a synchronization barrier. thread_pos: the current thread position to be used for a memory access row_count: maximum number of rows to be processed The function performs warp sync iff all 32 threads within that warp will process valid data NOTE: it currently assumes that warp size is 32.
Definition at line 1375 of file cuda_mapd_rt.cu.
__device__ int8_t thread_warp_idx | ( | const int8_t | warp_sz | ) |
Definition at line 39 of file cuda_mapd_rt.cu.
__device__ void write_back_non_grouped_agg | ( | int64_t * | input_buffer, |
int64_t * | output_buffer, | ||
const int32_t | agg_idx | ||
) |
Definition at line 1395 of file cuda_mapd_rt.cu.
References agg_sum_shared().
__device__ void write_back_nop | ( | int64_t * | dest, |
int64_t * | src, | ||
const int32_t | sz | ||
) |
Definition at line 49 of file cuda_mapd_rt.cu.
__device__ int32_t dw_abort = 0 |
Definition at line 94 of file cuda_mapd_rt.cu.
Referenced by dynamic_watchdog(), dynamic_watchdog_init(), and Executor::interrupt().
__device__ int64_t dw_cycle_budget = 0 |
Definition at line 93 of file cuda_mapd_rt.cu.
Referenced by dynamic_watchdog(), and dynamic_watchdog_init().
__device__ int64_t dw_sm_cycle_start[128] |
Definition at line 91 of file cuda_mapd_rt.cu.
Referenced by dynamic_watchdog().
__device__ int32_t runtime_interrupt_flag = 0 |
Definition at line 95 of file cuda_mapd_rt.cu.
Referenced by check_interrupt(), check_interrupt_init(), and Executor::interrupt().