OmniSciDB
a5dc49c757
|
#include <cuda.h>
#include "BufferCompaction.h"
#include "GpuInitGroups.h"
#include "GpuRtConstants.h"
#include "Logger/Logger.h"
Go to the source code of this file.
Macros | |
#define | checkCudaErrors(err) CHECK_EQ(err, cudaSuccess) |
Functions | |
CUstream | getQueryEngineCudaStream () |
template<typename T > | |
__device__ int8_t * | init_columnar_buffer (T *buffer_ptr, const T init_val, const uint32_t entry_count, const int32_t start, const int32_t step) |
__device__ void | init_columnar_group_by_buffer_gpu_impl (int64_t *groups_buffer, const int64_t *init_vals, const uint32_t groups_buffer_entry_count, const uint32_t key_count, const uint32_t agg_col_count, const int8_t *col_sizes, const bool need_padding, const bool keyless, const int8_t key_size) |
template<typename K > | |
__device__ void | fill_empty_device_key (K *keys_ptr, const uint32_t key_count, const K empty_key) |
__global__ void | init_group_by_buffer_gpu (int64_t *groups_buffer, const int64_t *init_vals, const uint32_t groups_buffer_entry_count, const uint32_t key_count, const uint32_t key_width, const uint32_t row_size_quad, const bool keyless, const int8_t warp_size) |
__global__ void | init_columnar_group_by_buffer_gpu_wrapper (int64_t *groups_buffer, const int64_t *init_vals, const uint32_t groups_buffer_entry_count, const uint32_t key_count, const uint32_t agg_col_count, const int8_t *col_sizes, const bool need_padding, const bool keyless, const int8_t key_size) |
void | init_group_by_buffer_on_device (int64_t *groups_buffer, const int64_t *init_vals, const uint32_t groups_buffer_entry_count, const uint32_t key_count, const uint32_t key_width, const uint32_t row_size_quad, const bool keyless, const int8_t warp_size, const size_t block_size_x, const size_t grid_size_x) |
void | init_columnar_group_by_buffer_on_device (int64_t *groups_buffer, const int64_t *init_vals, const uint32_t groups_buffer_entry_count, const uint32_t key_count, const uint32_t agg_col_count, const int8_t *col_sizes, const bool need_padding, const bool keyless, const int8_t key_size, const size_t block_size_x, const size_t grid_size_x) |
#define checkCudaErrors | ( | err | ) | CHECK_EQ(err, cudaSuccess) |
Definition at line 9 of file GpuInitGroups.cu.
Referenced by approximate_distinct_tuples_on_device_range(), collect_order_entry_column(), cuda_kernel_launch_wrapper(), anonymous_namespace{ResultSetSortImpl.cu}::do_radix_sort(), fill_one_to_many_baseline_hash_table_on_device(), fill_one_to_many_hash_table_on_device_impl(), fill_one_to_many_hash_table_on_device_sharded(), init_columnar_group_by_buffer_on_device(), init_group_by_buffer_on_device(), pop_n_rows_from_merged_heaps_gpu(), and sort_indices_by_key().
|
inline |
Definition at line 117 of file GpuInitGroups.cu.
Referenced by init_group_by_buffer_gpu().
CUstream getQueryEngineCudaStream | ( | ) |
Definition at line 3 of file QueryEngine.cpp.
Referenced by approximate_distinct_tuples_on_device_range(), cuda_kernel_launch_wrapper(), fill_one_to_many_baseline_hash_table_on_device(), fill_one_to_many_hash_table_on_device_impl(), fill_one_to_many_hash_table_on_device_sharded(), init_columnar_group_by_buffer_on_device(), and init_group_by_buffer_on_device().
__device__ int8_t* init_columnar_buffer | ( | T * | buffer_ptr, |
const T | init_val, | ||
const uint32_t | entry_count, | ||
const int32_t | start, | ||
const int32_t | step | ||
) |
Definition at line 12 of file GpuInitGroups.cu.
__device__ void init_columnar_group_by_buffer_gpu_impl | ( | int64_t * | groups_buffer, |
const int64_t * | init_vals, | ||
const uint32_t | groups_buffer_entry_count, | ||
const uint32_t | key_count, | ||
const uint32_t | agg_col_count, | ||
const int8_t * | col_sizes, | ||
const bool | need_padding, | ||
const bool | keyless, | ||
const int8_t | key_size | ||
) |
Definition at line 23 of file GpuInitGroups.cu.
References align_to_int64(), EMPTY_KEY_16, EMPTY_KEY_32, EMPTY_KEY_64, and EMPTY_KEY_8.
Referenced by init_columnar_group_by_buffer_gpu_wrapper().
__global__ void init_columnar_group_by_buffer_gpu_wrapper | ( | int64_t * | groups_buffer, |
const int64_t * | init_vals, | ||
const uint32_t | groups_buffer_entry_count, | ||
const uint32_t | key_count, | ||
const uint32_t | agg_col_count, | ||
const int8_t * | col_sizes, | ||
const bool | need_padding, | ||
const bool | keyless, | ||
const int8_t | key_size | ||
) |
Definition at line 174 of file GpuInitGroups.cu.
References init_columnar_group_by_buffer_gpu_impl().
Referenced by init_columnar_group_by_buffer_on_device().
void init_columnar_group_by_buffer_on_device | ( | int64_t * | groups_buffer, |
const int64_t * | init_vals, | ||
const uint32_t | groups_buffer_entry_count, | ||
const uint32_t | key_count, | ||
const uint32_t | agg_col_count, | ||
const int8_t * | col_sizes, | ||
const bool | need_padding, | ||
const bool | keyless, | ||
const int8_t | key_size, | ||
const size_t | block_size_x, | ||
const size_t | grid_size_x | ||
) |
Definition at line 218 of file GpuInitGroups.cu.
References checkCudaErrors, getQueryEngineCudaStream(), and init_columnar_group_by_buffer_gpu_wrapper().
Referenced by QueryMemoryInitializer::createAndInitializeGroupByBufferGpu().
__global__ void init_group_by_buffer_gpu | ( | int64_t * | groups_buffer, |
const int64_t * | init_vals, | ||
const uint32_t | groups_buffer_entry_count, | ||
const uint32_t | key_count, | ||
const uint32_t | key_width, | ||
const uint32_t | row_size_quad, | ||
const bool | keyless, | ||
const int8_t | warp_size | ||
) |
Definition at line 125 of file GpuInitGroups.cu.
References align_to_int64(), EMPTY_KEY_32, EMPTY_KEY_64, and fill_empty_device_key().
void init_group_by_buffer_on_device | ( | int64_t * | groups_buffer, |
const int64_t * | init_vals, | ||
const uint32_t | groups_buffer_entry_count, | ||
const uint32_t | key_count, | ||
const uint32_t | key_width, | ||
const uint32_t | row_size_quad, | ||
const bool | keyless, | ||
const int8_t | warp_size, | ||
const size_t | block_size_x, | ||
const size_t | grid_size_x | ||
) |
Definition at line 195 of file GpuInitGroups.cu.
References checkCudaErrors, and getQueryEngineCudaStream().
Referenced by QueryMemoryInitializer::createAndInitializeGroupByBufferGpu(), and QueryMemoryInitializer::prepareTopNHeapsDevBuffer().