@@ -99,7 +99,7 @@ void QueryFragmentDescriptor::buildFragmentPerKernelForTable(
99
99
Executor* executor,
100
100
compiler::CodegenTraitsDescriptor cgen_traits_desc) {
101
101
const auto inner_table_id_to_join_condition = executor->getInnerTabIdToJoinCond ();
102
- LOG (INFO) << *policy;
102
+ LOG (INFO) << " Building Kernel Fragment table with policy: " << *policy;
103
103
for (size_t frag_id = 0 ; frag_id < fragments->size (); frag_id++) {
104
104
if (!allowed_outer_fragment_indices_.empty ()) {
105
105
if (std::find (allowed_outer_fragment_indices_.begin (),
@@ -162,7 +162,7 @@ void QueryFragmentDescriptor::buildFragmentPerKernelForTable(
162
162
const auto table_id = ra_exe_unit.input_descs [table_desc_idx].getTableId ();
163
163
auto table_frags_it = selected_tables_fragments_.find ({db_id, table_id});
164
164
CHECK (table_frags_it != selected_tables_fragments_.end ());
165
- if (policy->devices_dispatch_modes . at (device_type) ==
165
+ if (policy->getExecutionMode (device_type) ==
166
166
ExecutorDispatchMode::KernelPerFragment) {
167
167
execution_kernel_desc.fragments .emplace_back (
168
168
FragmentsPerTable{db_id, table_id, frag_ids});
@@ -198,7 +198,7 @@ void QueryFragmentDescriptor::buildFragmentPerKernelForTable(
198
198
}
199
199
LOG (DEBUG1) << " Assigning frag_id=" << frag_id << " /" << fragments->size () - 1
200
200
<< " to " << device_type << " , device_id=" << device_id;
201
- if (policy->devices_dispatch_modes . at (device_type) ==
201
+ if (policy->getExecutionMode (device_type) ==
202
202
ExecutorDispatchMode::KernelPerFragment) {
203
203
auto itr = execution_kernels_per_device_[device_type].find (device_id);
204
204
if (itr == execution_kernels_per_device_[device_type].end ()) {
@@ -237,31 +237,36 @@ void QueryFragmentDescriptor::buildFragmentPerKernelMapForUnion(
237
237
j,
238
238
executor,
239
239
cgen_traits_desc);
240
-
241
- std::vector<int > table_cpu_ids =
242
- std::accumulate (execution_kernels_per_device_[ExecutorDeviceType::CPU][0 ].begin (),
243
- execution_kernels_per_device_[ExecutorDeviceType::CPU][0 ].end (),
244
- std::vector<int >(),
245
- [](auto && vec, auto & exe_kern) {
246
- vec.push_back (exe_kern.fragments [0 ].table_id );
247
- return vec;
248
- });
249
- std::vector<int > table_gpu_ids =
250
- std::accumulate (execution_kernels_per_device_[ExecutorDeviceType::GPU][0 ].begin (),
251
- execution_kernels_per_device_[ExecutorDeviceType::GPU][0 ].end (),
252
- std::vector<int >(),
253
- [](auto && vec, auto & exe_kern) {
254
- vec.push_back (exe_kern.fragments [0 ].table_id );
255
- return vec;
256
- });
257
- VLOG (1 ) << " execution_kernels_per_device_[CPU].size()="
258
- << execution_kernels_per_device_[ExecutorDeviceType::CPU].size ()
259
- << " execution_kernels_per_device_[CPU][0][*].fragments[0].table_id="
260
- << shared::printContainer (table_cpu_ids);
261
- VLOG (1 ) << " execution_kernels_per_device_[GPU].size()="
262
- << execution_kernels_per_device_[ExecutorDeviceType::GPU].size ()
263
- << " execution_kernels_per_device_[GPU][0][*].fragments[0].table_id="
264
- << shared::printContainer (table_gpu_ids);
240
+ if (policy->hasDevice (ExecutorDeviceType::CPU)) {
241
+ CHECK (execution_kernels_per_device_.count (ExecutorDeviceType::CPU));
242
+ std::vector<int > table_cpu_ids = std::accumulate (
243
+ execution_kernels_per_device_.at (ExecutorDeviceType::CPU)[0 ].begin (),
244
+ execution_kernels_per_device_.at (ExecutorDeviceType::CPU)[0 ].end (),
245
+ std::vector<int >(),
246
+ [](auto && vec, auto & exe_kern) {
247
+ vec.push_back (exe_kern.fragments [0 ].table_id );
248
+ return vec;
249
+ });
250
+ VLOG (1 ) << " execution_kernels_per_device_[CPU].size()="
251
+ << execution_kernels_per_device_.at (ExecutorDeviceType::CPU).size ()
252
+ << " execution_kernels_per_device_[CPU][0][*].fragments[0].table_id="
253
+ << shared::printContainer (table_cpu_ids);
254
+ }
255
+ if (policy->hasDevice (ExecutorDeviceType::GPU)) {
256
+ CHECK (execution_kernels_per_device_.count (ExecutorDeviceType::GPU));
257
+ std::vector<int > table_gpu_ids = std::accumulate (
258
+ execution_kernels_per_device_.at (ExecutorDeviceType::GPU)[0 ].begin (),
259
+ execution_kernels_per_device_.at (ExecutorDeviceType::GPU)[0 ].end (),
260
+ std::vector<int >(),
261
+ [](auto && vec, auto & exe_kern) {
262
+ vec.push_back (exe_kern.fragments [0 ].table_id );
263
+ return vec;
264
+ });
265
+ VLOG (1 ) << " execution_kernels_per_device_[GPU].size()="
266
+ << execution_kernels_per_device_.at (ExecutorDeviceType::GPU).size ()
267
+ << " execution_kernels_per_device_[GPU][0][*].fragments[0].table_id="
268
+ << shared::printContainer (table_gpu_ids);
269
+ }
265
270
}
266
271
}
267
272
0 commit comments