Skip to content

Commit f7b1606

Browse files
committed
Increase number of elements
1 parent 524fcb2 commit f7b1606

File tree

6 files changed

+38
-37
lines changed

6 files changed

+38
-37
lines changed

aos_manual.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ int main(int argc, char** argv) {
3232
benchmark::Initialize(&argc, argv);
3333

3434
std::vector<S2*> BM_CPUEasyRW_ptrs;
35-
for (auto n : N) {
35+
for (auto n : N_Large) {
3636
S2* t = new S2[n];
3737
BM_CPUEasyRW_ptrs.push_back(t);
3838
benchmark::RegisterBenchmark("BM_CPUEasyRW", BM_CPUEasyRW<S2*>, t)->Arg(n)->Unit(benchmark::kMillisecond);
@@ -67,14 +67,14 @@ int main(int argc, char** argv) {
6767
}
6868

6969
std::vector<Sstencil*> BM_stencil_ptrs;
70-
for (auto n : N) {
70+
for (auto n : N_Large) {
7171
Sstencil* t = new Sstencil[n];
7272
BM_stencil_ptrs.push_back(t);
7373
benchmark::RegisterBenchmark("BM_stencil", BM_stencil<Sstencil*>, t)->Arg(n)->Unit(benchmark::kMillisecond);
7474
}
7575

7676
std::vector<PxPyPzM*> BM_InvariantMass_ptrs;
77-
for (std::size_t n : N) {
77+
for (std::size_t n : N_Large) {
7878
PxPyPzM* t1 = new PxPyPzM[n];
7979
PxPyPzM* t2 = new PxPyPzM[n];
8080
BM_InvariantMass_ptrs.push_back(t1);

benchmark.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@
3030
using Vector3D = Eigen::Vector3d;
3131
using Matrix3D = Eigen::Matrix3d;
3232

33-
constexpr std::size_t N[] = {10, 100, 1000, 10000, 100000};
33+
constexpr std::size_t N[] = {100, 1000, 10000, 100000, 1000000};
34+
constexpr std::size_t N_Large[] = {100000, 1000000, 10000000, 100000000, 100000000};
3435

3536
template <typename T>
3637
static std::string ToString(const T &obj)

refl/soa_refl.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ struct PxPyPzM {
4242
};
4343

4444
template <typename S>
45-
void RegisterBenchmarkHelper(const char* name, auto bm_func, auto& free_list)
45+
void RegisterBenchmarkHelper(const char* name, auto bm_func, auto& free_list, auto &N)
4646
{
4747
for (auto n : N) {
4848
using SoA = rmpp::AoS2SoA<S, 64>;
@@ -59,14 +59,14 @@ int main(int argc, char **argv)
5959
std::vector<std::byte *> free_list;
6060

6161
// Separate loops to sort the output by benchmark.
62-
RegisterBenchmarkHelper<S2>("BM_CPUEasyRW", BM_CPUEasyRW<rmpp::AoS2SoA<S2, 64>>, free_list);
63-
RegisterBenchmarkHelper<S2>("BM_CPUEasyCompute", BM_CPUEasyCompute<rmpp::AoS2SoA<S2, 64>>, free_list);
64-
RegisterBenchmarkHelper<S10>("BM_CPURealRW", BM_CPURealRW<rmpp::AoS2SoA<S10, 64>>, free_list);
65-
RegisterBenchmarkHelper<S64>("BM_CPUHardRW", BM_CPUHardRW<rmpp::AoS2SoA<S64, 64>>, free_list);
66-
RegisterBenchmarkHelper<Snbody>("BM_nbody", BM_nbody<rmpp::AoS2SoA<Snbody, 64>>, free_list);
67-
RegisterBenchmarkHelper<Sstencil>("BM_stencil", BM_stencil<rmpp::AoS2SoA<Sstencil, 64>>, free_list);
62+
RegisterBenchmarkHelper<S2>("BM_CPUEasyRW", BM_CPUEasyRW<rmpp::AoS2SoA<S2, 64>>, free_list, N);
63+
RegisterBenchmarkHelper<S2>("BM_CPUEasyCompute", BM_CPUEasyCompute<rmpp::AoS2SoA<S2, 64>>, free_list, N);
64+
RegisterBenchmarkHelper<S10>("BM_CPURealRW", BM_CPURealRW<rmpp::AoS2SoA<S10, 64>>, free_list, N);
65+
RegisterBenchmarkHelper<S64>("BM_CPUHardRW", BM_CPUHardRW<rmpp::AoS2SoA<S64, 64>>, free_list, N);
66+
RegisterBenchmarkHelper<Snbody>("BM_nbody", BM_nbody<rmpp::AoS2SoA<Snbody, 64>>, free_list, N);
67+
RegisterBenchmarkHelper<Sstencil>("BM_stencil", BM_stencil<rmpp::AoS2SoA<Sstencil, 64>>, free_list, N_Large);
6868

69-
for (auto n : N) {
69+
for (auto n : N_Large) {
7070
using SoA = rmpp::AoS2SoA<PxPyPzM, 64>;
7171
auto byte_size = SoA::ComputeSize(n);
7272
auto buffer1 = reinterpret_cast<std::byte *>(aligned_alloc(64, byte_size));

soa_boost.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ using SoAPxPyPzM = PxPyPzM<>;
125125
using SoAPxPyPzMView = SoAPxPyPzM::View;
126126

127127
template <typename SoA, typename SoAView>
128-
void RegisterBenchmarkHelper(const char* name, auto bm_func, auto& free_list) {
128+
void RegisterBenchmarkHelper(const char* name, auto bm_func, auto& free_list, auto &N) {
129129
for (auto n : N) {
130130
auto buffer = reinterpret_cast<std::byte *>(aligned_alloc(SoA::alignment, SoA::computeDataSize(n)));
131131
SoA soa(buffer, n);
@@ -139,14 +139,14 @@ int main(int argc, char** argv) {
139139
std::vector<void *> free_list;
140140

141141
// Seperate loops to sort the output by benchmark.
142-
RegisterBenchmarkHelper<SoA, SoAView>("BM_CPUEasyRW", BM_CPUEasyRW<SoAView>, free_list);
143-
RegisterBenchmarkHelper<SoA, SoAView>("BM_CPUEasyCompute", BM_CPUEasyCompute<SoAView>, free_list);
144-
RegisterBenchmarkHelper<MediumSoA, MediumSoAView>("BM_CPURealRW", BM_CPURealRW<MediumSoAView>, free_list);
145-
RegisterBenchmarkHelper<BigSoA, BigSoAView>("BM_CPUHardRW", BM_CPUHardRW<BigSoAView>, free_list);
146-
RegisterBenchmarkHelper<SoANbody, SoANbodyView>("BM_nbody", BM_nbody<SoANbodyView>, free_list);
147-
RegisterBenchmarkHelper<SoAStencil, SoAStencilView>("BM_stencil", BM_stencil<SoAStencilView>, free_list);
148-
149-
for (auto n : N) {
142+
RegisterBenchmarkHelper<SoA, SoAView>("BM_CPUEasyRW", BM_CPUEasyRW<SoAView>, free_list, N_Large);
143+
RegisterBenchmarkHelper<SoA, SoAView>("BM_CPUEasyCompute", BM_CPUEasyCompute<SoAView>, free_list, N);
144+
RegisterBenchmarkHelper<MediumSoA, MediumSoAView>("BM_CPURealRW", BM_CPURealRW<MediumSoAView>, free_list, N);
145+
RegisterBenchmarkHelper<BigSoA, BigSoAView>("BM_CPUHardRW", BM_CPUHardRW<BigSoAView>, free_list, N);
146+
RegisterBenchmarkHelper<SoANbody, SoANbodyView>("BM_nbody", BM_nbody<SoANbodyView>, free_list, N);
147+
RegisterBenchmarkHelper<SoAStencil, SoAStencilView>("BM_stencil", BM_stencil<SoAStencilView>, free_list, N_Large);
148+
149+
for (auto n : N_Large) {
150150
auto buffer1 = reinterpret_cast<std::byte *>(aligned_alloc(SoAPxPyPzM::alignment, SoAPxPyPzM::computeDataSize(n)));
151151
auto buffer2 = reinterpret_cast<std::byte *>(aligned_alloc(SoAPxPyPzM::alignment, SoAPxPyPzM::computeDataSize(n)));
152152
SoAPxPyPzM pxpypzm1(buffer1, n);

soa_manual.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ struct PxPyPzM {
290290

291291
// Helper function to register benchmarks with one argument
292292
template <typename S>
293-
void RegisterBenchmarkHelper(const char* name, auto bm_func, auto &free_list) {
293+
void RegisterBenchmarkHelper(const char* name, auto bm_func, auto &free_list, auto &N) {
294294
for (auto n : N) {
295295
auto buffer = reinterpret_cast<std::byte * __restrict__>(std::aligned_alloc(Alignment, S::size_bytes(n)));
296296
S t(buffer, n);
@@ -304,14 +304,14 @@ int main(int argc, char** argv) {
304304
std::vector<void *> free_list;
305305

306306
// Seperate loops to sort the output by benchmark.
307-
RegisterBenchmarkHelper<S2>("BM_CPUEasyRW", BM_CPUEasyRW<S2>, free_list);
308-
RegisterBenchmarkHelper<S2>("BM_CPUEasyCompute", BM_CPUEasyCompute<S2>, free_list);
309-
RegisterBenchmarkHelper<S10>("BM_CPURealRW", BM_CPURealRW<S10>, free_list);
310-
RegisterBenchmarkHelper<S64>("BM_CPUHardRW", BM_CPUHardRW<S64>, free_list);
311-
RegisterBenchmarkHelper<Snbody>("BM_nbody", BM_nbody<Snbody>, free_list);
312-
RegisterBenchmarkHelper<Sstencil>("BM_stencil", BM_stencil<Sstencil>, free_list);
307+
RegisterBenchmarkHelper<S2>("BM_CPUEasyRW", BM_CPUEasyRW<S2>, free_list, N_Large);
308+
RegisterBenchmarkHelper<S2>("BM_CPUEasyCompute", BM_CPUEasyCompute<S2>, free_list, N);
309+
RegisterBenchmarkHelper<S10>("BM_CPURealRW", BM_CPURealRW<S10>, free_list, N);
310+
RegisterBenchmarkHelper<S64>("BM_CPUHardRW", BM_CPUHardRW<S64>, free_list, N);
311+
RegisterBenchmarkHelper<Snbody>("BM_nbody", BM_nbody<Snbody>, free_list, N);
312+
RegisterBenchmarkHelper<Sstencil>("BM_stencil", BM_stencil<Sstencil>, free_list, N_Large);
313313

314-
for (auto n : N) {
314+
for (auto n : N_Large) {
315315
auto buffer1 = reinterpret_cast<std::byte * __restrict__>(std::aligned_alloc(Alignment, PxPyPzM::size_bytes(n)));
316316
auto buffer2 = reinterpret_cast<std::byte * __restrict__>(std::aligned_alloc(Alignment, PxPyPzM::size_bytes(n)));
317317
PxPyPzM t1(buffer1, n);

soa_wrapper.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ struct PxPyPzM {
6565
constexpr wrapper::layout L = wrapper::layout::soa;
6666

6767
template <template <template <class> class> class S>
68-
void RegisterBenchmarkHelper(const char* name, auto bm_func, std::vector<std::byte*>& buffer_pointers) {
68+
void RegisterBenchmarkHelper(const char* name, auto bm_func, std::vector<std::byte*>& buffer_pointers, auto &N) {
6969
for (auto n : N) {
7070
std::size_t bytes = n * factory::get_size_in_bytes<S, L>();
7171
buffer_pointers.emplace_back(new std::byte[bytes]);
@@ -80,14 +80,14 @@ int main(int argc, char** argv) {
8080

8181
std::vector<std::byte *> buffer_pointers;
8282

83-
RegisterBenchmarkHelper<S2>("BM_CPUEasyRW", BM_CPUEasyRW<wrapper::wrapper<S2, std::span, L>>, buffer_pointers);
84-
RegisterBenchmarkHelper<S2>("BM_CPUEasyCompute", BM_CPUEasyCompute<wrapper::wrapper<S2, std::span, L>>, buffer_pointers);
85-
RegisterBenchmarkHelper<S10>("BM_CPURealRW", BM_CPURealRW<wrapper::wrapper<S10, std::span, L>>, buffer_pointers);
86-
RegisterBenchmarkHelper<S64>("BM_CPUHardRW", BM_CPUHardRW<wrapper::wrapper<S64, std::span, L>>, buffer_pointers);
87-
RegisterBenchmarkHelper<Snbody>("BM_nbody", BM_nbody<wrapper::wrapper<Snbody, std::span, L>>, buffer_pointers);
88-
RegisterBenchmarkHelper<Sstencil>("BM_stencil", BM_stencil<wrapper::wrapper<Sstencil, std::span, L>>, buffer_pointers);
83+
RegisterBenchmarkHelper<S2>("BM_CPUEasyRW", BM_CPUEasyRW<wrapper::wrapper<S2, std::span, L>>, buffer_pointers, N_Large);
84+
RegisterBenchmarkHelper<S2>("BM_CPUEasyCompute", BM_CPUEasyCompute<wrapper::wrapper<S2, std::span, L>>, buffer_pointers, N);
85+
RegisterBenchmarkHelper<S10>("BM_CPURealRW", BM_CPURealRW<wrapper::wrapper<S10, std::span, L>>, buffer_pointers, N);
86+
RegisterBenchmarkHelper<S64>("BM_CPUHardRW", BM_CPUHardRW<wrapper::wrapper<S64, std::span, L>>, buffer_pointers, N);
87+
RegisterBenchmarkHelper<Snbody>("BM_nbody", BM_nbody<wrapper::wrapper<Snbody, std::span, L>>, buffer_pointers, N);
88+
RegisterBenchmarkHelper<Sstencil>("BM_stencil", BM_stencil<wrapper::wrapper<Sstencil, std::span, L>>, buffer_pointers, N_Large);
8989

90-
for (std::size_t n : N) {
90+
for (std::size_t n : N_Large) {
9191
std::size_t bytes = n * factory::get_size_in_bytes<PxPyPzM, L>();
9292
auto buffer1 = new std::byte[bytes];
9393
auto buffer2 = new std::byte[bytes];

0 commit comments

Comments
 (0)