17 #ifndef QUERYENGINE_QUERYEXECUTIONCONTEXT_H
18 #define QUERYENGINE_QUERYEXECUTIONCONTEXT_H
29 #include <boost/core/noncopyable.hpp>
49 const int64_t num_rows,
50 const std::vector<std::vector<const int8_t*>>& col_buffers,
51 const std::vector<std::vector<uint64_t>>& frag_offsets,
52 std::shared_ptr<RowSetMemoryOwner> row_set_mem_owner,
53 const bool output_columnar,
55 const size_t thread_idx,
66 const bool hoist_literals,
67 const std::vector<int8_t>& literal_buff,
68 std::vector<std::vector<const int8_t*>> col_buffers,
69 const std::vector<std::vector<int64_t>>& num_rows,
70 const std::vector<std::vector<uint64_t>>& frag_row_offsets,
71 const int32_t scan_limit,
73 const unsigned block_size_x,
74 const unsigned grid_size_x,
76 const size_t shared_memory_size,
78 const uint32_t num_tables,
79 const bool allow_runtime_interrupt,
80 const std::vector<int8_t*>& join_hash_tables,
82 bool optimize_cuda_block_and_grid_sizes);
87 const bool hoist_literals,
88 const std::vector<int8_t>& literal_buff,
89 std::vector<std::vector<const int8_t*>> col_buffers,
90 const std::vector<std::vector<int64_t>>& num_rows,
91 const std::vector<std::vector<uint64_t>>& frag_row_offsets,
92 const int32_t scan_limit,
94 const uint32_t num_tables,
95 const std::vector<int8_t*>& join_hash_tables,
119 const std::vector<std::vector<const int8_t*>>& col_buffers,
120 const std::vector<int8_t>& literal_buff,
121 const std::vector<std::vector<int64_t>>& num_rows,
122 const std::vector<std::vector<uint64_t>>& frag_offsets,
123 const int32_t scan_limit,
124 const std::vector<int64_t>& init_agg_vals,
125 const std::vector<int32_t>& error_codes,
126 const uint32_t num_tables,
127 const std::vector<int8_t*>& join_hash_tables,
130 const bool hoist_literals,
131 const bool is_group_by)
const;
150 #endif // QUERYENGINE_QUERYEXECUTIONCONTEXT_H
const Executor * executor_
std::unique_ptr< DeviceAllocator > gpu_allocator_
QueryExecutionContext(const RelAlgExecutionUnit &ra_exe_unit, const QueryMemoryDescriptor &, const Executor *executor, const ExecutorDeviceType device_type, const ExecutorDispatchMode dispatch_mode, const int device_id, const shared::TableKey &outer_table_key, const int64_t num_rows, const std::vector< std::vector< const int8_t * >> &col_buffers, const std::vector< std::vector< uint64_t >> &frag_offsets, std::shared_ptr< RowSetMemoryOwner > row_set_mem_owner, const bool output_columnar, const bool sort_on_gpu, const size_t thread_idx, RenderInfo *)
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 int device_id)
std::vector< int64_t * > launchCpuCode(const RelAlgExecutionUnit &ra_exe_unit, const CpuCompilationContext *fn_ptrs, const bool hoist_literals, const std::vector< int8_t > &literal_buff, std::vector< std::vector< const int8_t * >> col_buffers, const std::vector< std::vector< int64_t >> &num_rows, const std::vector< std::vector< uint64_t >> &frag_row_offsets, const int32_t scan_limit, int32_t *error_code, const uint32_t num_tables, const std::vector< int8_t * > &join_hash_tables, const int64_t num_rows_to_process=-1)
const ExecutorDispatchMode dispatch_mode_
size_t num_rows_to_process(const size_t start_row_index, const size_t max_fragment_size, const size_t rows_remaining)
std::shared_ptr< ResultSet > ResultSetPtr
const ExecutorDeviceType device_type_
const bool output_columnar_
std::unique_ptr< QueryMemoryInitializer > query_buffers_
ResultSetPtr getRowSet(const RelAlgExecutionUnit &ra_exe_unit, const QueryMemoryDescriptor &query_mem_desc) const
int64_t getAggInitValForIndex(const size_t index) const
QueryMemoryDescriptor query_mem_desc_
Executor(const ExecutorId id, Data_Namespace::DataMgr *data_mgr, const size_t block_size_x, const size_t grid_size_x, const size_t max_gpu_slab_size, const std::string &debug_dir, const std::string &debug_file)
std::vector< int8_t * > prepareKernelParams(const std::vector< std::vector< const int8_t * >> &col_buffers, const std::vector< int8_t > &literal_buff, const std::vector< std::vector< int64_t >> &num_rows, const std::vector< std::vector< uint64_t >> &frag_offsets, const int32_t scan_limit, const std::vector< int64_t > &init_agg_vals, const std::vector< int32_t > &error_codes, const uint32_t num_tables, const std::vector< int8_t * > &join_hash_tables, Data_Namespace::DataMgr *data_mgr, const int device_id, const bool hoist_literals, const bool is_group_by) const
std::shared_ptr< RowSetMemoryOwner > row_set_mem_owner_
ResultSetPtr groupBufferToDeinterleavedResults(const size_t i) const
ResultSetPtr groupBufferToResults(const size_t i) const
Basic constructors and methods of the row set interface.
Allocate GPU memory using GpuBuffers via DataMgr.
std::unique_ptr< ResultSet > estimator_result_set_
std::vector< int64_t * > launchGpuCode(const RelAlgExecutionUnit &ra_exe_unit, const CompilationContext *compilation_context, const bool hoist_literals, const std::vector< int8_t > &literal_buff, std::vector< std::vector< const int8_t * >> col_buffers, const std::vector< std::vector< int64_t >> &num_rows, const std::vector< std::vector< uint64_t >> &frag_row_offsets, const int32_t scan_limit, Data_Namespace::DataMgr *data_mgr, const unsigned block_size_x, const unsigned grid_size_x, const int device_id, const size_t shared_memory_size, int32_t *error_code, const uint32_t num_tables, const bool allow_runtime_interrupt, const std::vector< int8_t * > &join_hash_tables, RenderAllocatorMap *render_allocator_map, bool optimize_cuda_block_and_grid_sizes)