|
@ -19,25 +19,50 @@ |
|
|
|
|
|
|
|
|
#include "BenchmarkHelpers.cpp"
|
|
|
#include "BenchmarkHelpers.cpp"
|
|
|
|
|
|
|
|
|
|
|
|
#define MODE_PREFETCH
|
|
|
|
|
|
|
|
|
////////////////////////////////
|
|
|
////////////////////////////////
|
|
|
/// BENCHMARK SETUP
|
|
|
/// BENCHMARK SETUP
|
|
|
|
|
|
|
|
|
constexpr size_t WL_SIZE_B = 64_MiB; |
|
|
|
|
|
constexpr size_t CHUNK_SIZE_B = 1_MiB; |
|
|
|
|
|
constexpr uint64_t CMP_A = 50; |
|
|
|
|
|
constexpr uint32_t WARMUP_ITERATION_COUNT = 0; |
|
|
|
|
|
constexpr uint32_t ITERATION_COUNT = 2; |
|
|
|
|
|
constexpr uint32_t GROUP_COUNT = 2; |
|
|
|
|
|
|
|
|
constexpr size_t WL_SIZE_B = 4_GiB; |
|
|
|
|
|
constexpr uint32_t WARMUP_ITERATION_COUNT = 5; |
|
|
|
|
|
constexpr uint32_t ITERATION_COUNT = 5; |
|
|
|
|
|
|
|
|
|
|
|
#ifdef MODE_PREFETCH
|
|
|
|
|
|
constexpr size_t CHUNK_SIZE_B = 128_MiB; |
|
|
|
|
|
constexpr uint32_t GROUP_COUNT = 4; |
|
|
|
|
|
constexpr uint32_t TC_SCANA = 4; |
|
|
constexpr uint32_t TC_SCANB = 1; |
|
|
constexpr uint32_t TC_SCANB = 1; |
|
|
constexpr uint32_t TC_SCANA = 1; |
|
|
|
|
|
constexpr uint32_t TC_AGGRJ = 1; |
|
|
|
|
|
|
|
|
constexpr uint32_t TC_AGGRJ = 2; |
|
|
constexpr bool PERFORM_CACHING = true; |
|
|
constexpr bool PERFORM_CACHING = true; |
|
|
constexpr bool DATA_IN_HBM = false; |
|
|
constexpr bool DATA_IN_HBM = false; |
|
|
constexpr char MODE_STRING[] = "DramBase"; |
|
|
|
|
|
|
|
|
constexpr char MODE_STRING[] = "Dram"; |
|
|
|
|
|
#endif
|
|
|
|
|
|
#ifdef MODE_DRAM
|
|
|
|
|
|
constexpr size_t CHUNK_SIZE_B = 2_MiB; |
|
|
|
|
|
constexpr uint32_t GROUP_COUNT = 4; |
|
|
|
|
|
constexpr uint32_t TC_SCANA = 4; |
|
|
|
|
|
constexpr uint32_t TC_SCANB = 0; |
|
|
|
|
|
constexpr uint32_t TC_AGGRJ = 2; |
|
|
|
|
|
constexpr bool PERFORM_CACHING = false; |
|
|
|
|
|
constexpr bool DATA_IN_HBM = false; |
|
|
|
|
|
constexpr char MODE_STRING[] = "Prefetch"; |
|
|
|
|
|
#endif
|
|
|
|
|
|
#ifdef MODE_HBM
|
|
|
|
|
|
constexpr size_t CHUNK_SIZE_B = 2_MiB; |
|
|
|
|
|
constexpr uint32_t GROUP_COUNT = 4; |
|
|
|
|
|
constexpr uint32_t TC_SCANA = 4; |
|
|
|
|
|
constexpr uint32_t TC_SCANB = 0; |
|
|
|
|
|
constexpr uint32_t TC_AGGRJ = 2; |
|
|
|
|
|
constexpr bool PERFORM_CACHING = false; |
|
|
|
|
|
constexpr bool DATA_IN_HBM = true; |
|
|
|
|
|
constexpr char MODE_STRING[] = "Hbm"; |
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
/// DO NOT CONFIGURE BEYOND THIS
|
|
|
/// DO NOT CONFIGURE BEYOND THIS
|
|
|
////////////////////////////////
|
|
|
////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
constexpr uint64_t CMP_A = 50; |
|
|
constexpr uint32_t TC_COMBINED = TC_SCANA + TC_SCANB + TC_AGGRJ; |
|
|
constexpr uint32_t TC_COMBINED = TC_SCANA + TC_SCANB + TC_AGGRJ; |
|
|
constexpr size_t WL_SIZE_ELEMENTS = WL_SIZE_B / sizeof(uint64_t); |
|
|
constexpr size_t WL_SIZE_ELEMENTS = WL_SIZE_B / sizeof(uint64_t); |
|
|
constexpr size_t CHUNK_COUNT = WL_SIZE_B / CHUNK_SIZE_B; |
|
|
constexpr size_t CHUNK_COUNT = WL_SIZE_B / CHUNK_SIZE_B; |
|
@ -208,4 +233,4 @@ int main() { |
|
|
numa_free(DATA_DST_, TC_AGGRJ * GROUP_COUNT * sizeof(uint64_t)); |
|
|
numa_free(DATA_DST_, TC_AGGRJ * GROUP_COUNT * sizeof(uint64_t)); |
|
|
|
|
|
|
|
|
return 0; |
|
|
return 0; |
|
|
} |
|
|
|
|
|
|
|
|
} |