43 const bool output_columnar,
46 const std::vector<std::vector<const int8_t*>>& col_buffers,
47 const std::vector<std::vector<uint64_t>>& frag_offsets,
50 std::shared_ptr<RowSetMemoryOwner> row_set_mem_owner,
59 const int64_t num_rows,
60 const std::vector<std::vector<const int8_t*>>& col_buffers,
61 const std::vector<std::vector<uint64_t>>& frag_offsets,
62 std::shared_ptr<RowSetMemoryOwner> row_set_mem_owner,
109 const unsigned block_size_x,
110 const unsigned grid_size_x);
115 const size_t entry_count,
118 const unsigned block_size_x,
119 const unsigned grid_size_x,
121 const bool prepend_index_buffer)
const;
128 const size_t warp_size,
140 const std::vector<ssize_t>& bitmap_sizes);
158 const unsigned block_size_x,
159 const unsigned grid_size_x);
167 const unsigned block_size_x,
168 const unsigned grid_size_x,
169 const int8_t warp_size,
170 const bool can_sort_on_gpu,
171 const bool output_columnar,
180 const size_t projection_count);
184 const size_t projection_count,
185 const int device_id);
194 const unsigned total_thread_count,
195 const int device_id);
void initGroups(const QueryMemoryDescriptor &query_mem_desc, int64_t *groups_buffer, const std::vector< int64_t > &init_vals, const int32_t groups_buffer_entry_count, const size_t warp_size, const Executor *executor)
std::vector< ssize_t > allocateCountDistinctBuffers(const QueryMemoryDescriptor &query_mem_desc, const bool deferred, const Executor *executor)
const int32_t groups_buffer_size return groups_buffer
void resetResultSet(const size_t index)
const int8_t const int64_t * num_rows
size_t count_distinct_bitmap_mem_bytes_
const size_t num_buffers_
unsigned long long CUdeviceptr
const auto getGroupByBuffersPtr()
CUdeviceptr count_distinct_bitmap_mem_
const int64_t const uint32_t groups_buffer_entry_count
size_t computeNumberOfBuffers(const QueryMemoryDescriptor &query_mem_desc, const ExecutorDeviceType device_type, const Executor *executor) const
std::shared_ptr< RowSetMemoryOwner > row_set_mem_owner_
void compactProjectionBuffersGpu(const QueryMemoryDescriptor &query_mem_desc, Data_Namespace::DataMgr *data_mgr, const GpuGroupByBuffers &gpu_group_by_buffers, const size_t projection_count, const int device_id)
std::vector< int64_t > init_agg_vals_
std::unique_ptr< ResultSet > getResultSetOwned(const size_t index)
void applyStreamingTopNOffsetCpu(const QueryMemoryDescriptor &query_mem_desc, const RelAlgExecutionUnit &ra_exe_unit)
int64_t getAggInitValForIndex(const size_t index) const
const auto getCountDistinctBitmapPtr() const
int8_t * count_distinct_bitmap_crt_ptr_
int64_t allocateCountDistinctSet()
void compactProjectionBuffersCpu(const QueryMemoryDescriptor &query_mem_desc, const size_t projection_count)
std::vector< int64_t * > group_by_buffers_
void initColumnarGroups(const QueryMemoryDescriptor &query_mem_desc, int64_t *groups_buffer, const std::vector< int64_t > &init_vals, const Executor *executor)
const auto getNumBuffers() const
Abstract class for managing device memory allocations.
const auto getCountDistinctBitmapBytes() const
Descriptor for the result set buffer layout.
void copyGroupByBuffersFromGpu(Data_Namespace::DataMgr *data_mgr, const QueryMemoryDescriptor &query_mem_desc, const size_t entry_count, const GpuGroupByBuffers &gpu_group_by_buffers, const RelAlgExecutionUnit *ra_exe_unit, const unsigned block_size_x, const unsigned grid_size_x, const int device_id, const bool prepend_index_buffer) const
device_allocator_(device_allocator)
QueryMemoryInitializer(const RelAlgExecutionUnit &ra_exe_unit, const QueryMemoryDescriptor &query_mem_desc, const int device_id, const ExecutorDeviceType device_type, const ExecutorDispatchMode dispatch_mode, const bool output_columnar, const bool sort_on_gpu, const int64_t num_rows, const std::vector< std::vector< const int8_t * >> &col_buffers, const std::vector< std::vector< uint64_t >> &frag_offsets, RenderAllocatorMap *render_allocator_map, RenderInfo *render_info, std::shared_ptr< RowSetMemoryOwner > row_set_mem_owner, DeviceAllocator *gpu_allocator, const Executor *executor)
void applyStreamingTopNOffsetGpu(Data_Namespace::DataMgr *data_mgr, const QueryMemoryDescriptor &query_mem_desc, const GpuGroupByBuffers &gpu_group_by_buffers, const RelAlgExecutionUnit &ra_exe_unit, const unsigned total_thread_count, const int device_id)
const auto getGroupByBuffersSize() const
Basic constructors and methods of the row set interface.
void sort_on_gpu(int64_t *val_buff, int32_t *idx_buff, const uint64_t entry_count, const bool desc, const uint32_t chosen_bytes, ThrustAllocator &alloc)
const int64_t * init_vals
int8_t * count_distinct_bitmap_host_mem_
ResultSet * getResultSet(const size_t index) const
std::vector< std::unique_ptr< ResultSet > > result_sets_
void allocateCountDistinctGpuMem(const QueryMemoryDescriptor &query_mem_desc)
int64_t allocateCountDistinctBitmap(const size_t bitmap_byte_sz)
const auto getCountDistinctHostPtr() const
void initColumnPerRow(const QueryMemoryDescriptor &query_mem_desc, int8_t *row_ptr, const size_t bin, const std::vector< int64_t > &init_vals, const std::vector< ssize_t > &bitmap_sizes)