|
@ -127,7 +127,7 @@ int main(int argc, char** argv) { |
|
|
Linear_Int_Range<uint32_t, 0, 30, 1> run("run"); |
|
|
Linear_Int_Range<uint32_t, 0, 30, 1> run("run"); |
|
|
Linear_Int_Range<size_t, chunk_min, chunk_max, chunk_incr> chunk_size("chunk_size"); |
|
|
Linear_Int_Range<size_t, chunk_min, chunk_max, chunk_incr> chunk_size("chunk_size"); |
|
|
|
|
|
|
|
|
print_to_file(out_file, generateHead(run, chunk_size, "HBM-Prefetch"), "thread_group", "time", |
|
|
|
|
|
|
|
|
print_to_file(out_file, generateHead(run, chunk_size, "mode"), "thread_group", "time", |
|
|
#ifdef THREAD_TIMINGS
|
|
|
#ifdef THREAD_TIMINGS
|
|
|
"scan_a", "scan_b", "aggr_j", |
|
|
"scan_a", "scan_b", "aggr_j", |
|
|
#endif
|
|
|
#endif
|
|
@ -175,9 +175,9 @@ int main(int argc, char** argv) { |
|
|
std::promise<void> p; |
|
|
std::promise<void> p; |
|
|
std::shared_future<void> ready_future(p.get_future()); |
|
|
std::shared_future<void> ready_future(p.get_future()); |
|
|
|
|
|
|
|
|
const uint8_t tc_filter = 4; |
|
|
|
|
|
const uint8_t tc_copy = 1; |
|
|
|
|
|
const uint8_t tc_agg = 2; |
|
|
|
|
|
|
|
|
const uint8_t tc_filter = 6; |
|
|
|
|
|
const uint8_t tc_copy = 2; |
|
|
|
|
|
const uint8_t tc_agg = 4; |
|
|
|
|
|
|
|
|
Query_Wrapper<base_t, simple_query, cache_a, wait_b> qw ( |
|
|
Query_Wrapper<base_t, simple_query, cache_a, wait_b> qw ( |
|
|
&ready_future, workload_b, chunk_size.current, |
|
|
&ready_future, workload_b, chunk_size.current, |
|
@ -195,13 +195,6 @@ int main(int argc, char** argv) { |
|
|
std::vector<std::thread> copy_pool; |
|
|
std::vector<std::thread> copy_pool; |
|
|
std::vector<std::thread> agg_pool; |
|
|
std::vector<std::thread> agg_pool; |
|
|
|
|
|
|
|
|
// int thread_id = 0;
|
|
|
|
|
|
// std::vector<std::pair<int, int>> pinning_ranges {std::make_pair(28, 42), std::make_pair(84, 98)}; // node 2 heacboehm II
|
|
|
|
|
|
//std::vector<std::pair<int, int>> pinning_ranges {std::make_pair(32, 48), std::make_pair(96, 112)}; // node 2 heacboehm
|
|
|
|
|
|
// std::vector<std::pair<int, int>> pinning_ranges {std::make_pair(24, 36), std::make_pair(120, 132)}; // node 2 sapphire rapids
|
|
|
|
|
|
//std::vector<std::pair<int, int>> pinning_ranges {std::make_pair(24, 48)}; // node 2+3 sapphire rapids
|
|
|
|
|
|
//std::vector<std::pair<int, int>> pinning_ranges {std::make_pair(0, 48)}; // node 0-3 sapphire rapids
|
|
|
|
|
|
|
|
|
|
|
|
for(uint32_t gid = 0; gid < THREAD_GROUP_MULTIPLIER; ++gid) { |
|
|
for(uint32_t gid = 0; gid < THREAD_GROUP_MULTIPLIER; ++gid) { |
|
|
for(uint32_t tid = 0; tid < tc_filter; ++tid) { |
|
|
for(uint32_t tid = 0; tid < tc_filter; ++tid) { |
|
|
filter_pool.emplace_back(filter_lambda, gid, THREAD_GROUP_MULTIPLIER, tid); |
|
|
filter_pool.emplace_back(filter_lambda, gid, THREAD_GROUP_MULTIPLIER, tid); |
|
@ -232,7 +225,7 @@ int main(int argc, char** argv) { |
|
|
double seconds = (double)(nanos) / nanos_per_second; |
|
|
double seconds = (double)(nanos) / nanos_per_second; |
|
|
|
|
|
|
|
|
if (i >= 5) { |
|
|
if (i >= 5) { |
|
|
print_to_file(out_file, run, chunk_size, "HBM", THREAD_GROUP_MULTIPLIER, seconds, |
|
|
|
|
|
|
|
|
print_to_file(out_file, run, chunk_size, "DSA-HBM-Prefetch", THREAD_GROUP_MULTIPLIER, seconds, |
|
|
#ifdef THREAD_TIMINGS
|
|
|
#ifdef THREAD_TIMINGS
|
|
|
qw.trt->summarize_time(0), qw.trt->summarize_time(1), qw.trt->summarize_time(2), |
|
|
qw.trt->summarize_time(0), qw.trt->summarize_time(1), qw.trt->summarize_time(2), |
|
|
#endif
|
|
|
#endif
|
|
|