7
7
using namespace ahr ;
8
8
using namespace ahr ::exp;
9
9
template <space_like Exp> static void BM_ExpKXKY (benchmark::State &state) {
10
- Dim const X = state.range (0 );
11
- Dim const Y = state.range (1 );
10
+ Dim const M = state.range (0 );
11
+ Dim const X = state.range (1 );
12
+ Dim const Y = state.range (2 );
12
13
13
- Grid grid{1 , X, Y};
14
+ Grid grid{M , X, Y};
14
15
Real dt = 1.0 ;
15
16
HyperCoefficients hyper = HyperCoefficients::calculate (dt, grid);
16
-
17
17
Exp exp{grid};
18
- exp.update (hyper, dt);
19
18
20
19
for (auto _ : state) {
21
- grid.for_each_kxky ([&](Dim kx, Dim ky) { benchmark::DoNotOptimize (exp (kx, ky)); });
20
+ dt *= 1.2 ;
21
+ exp.update (hyper, dt);
22
+ for (int m = 0 ; m < M; ++m) {
23
+ grid.for_each_kxky ([&](Dim kx, Dim ky) { benchmark::DoNotOptimize (exp (kx, ky)); });
24
+ }
22
25
}
23
26
}
24
27
@@ -32,37 +35,38 @@ template <moment_like Exp> static void BM_ExpM(benchmark::State &state) {
32
35
HyperCoefficients hyper = HyperCoefficients::calculate (dt, grid);
33
36
34
37
Exp exp{grid};
35
- exp.update (hyper, dt);
36
38
37
39
for (auto _ : state) {
40
+ dt *= 1.2 ;
41
+ exp.update (hyper, dt);
38
42
for (Dim m = 0 ; m < M; ++m) {
39
43
grid.for_each_kxky ([&](Dim kx, Dim ky) { benchmark::DoNotOptimize (exp (m)); });
40
44
}
41
45
}
42
46
}
43
47
44
48
BENCHMARK_WMIN (BM_ExpKXKY<Eta>)
45
- ->ArgsProduct({{2048 , 4096 , 8192 }, {2048 , 4096 , 8192 }})
49
+ ->ArgsProduct({{2 , 4 , 16 }, {2048 , 4096 }, { 2048 , 4096 }})
46
50
->Unit(benchmark::kMillisecond );
47
51
BENCHMARK_WMIN (BM_ExpKXKY<Nu>)
48
- ->ArgsProduct({{2048 , 4096 , 8192 }, {2048 , 4096 , 8192 }})
52
+ ->ArgsProduct({{2 , 4 , 16 }, {2048 , 4096 }, { 2048 , 4096 }})
49
53
->Unit(benchmark::kMillisecond );
50
54
BENCHMARK_WMIN (BM_ExpKXKY<NuG>)
51
- ->ArgsProduct({{2048 , 4096 , 8192 }, {2048 , 4096 , 8192 }})
55
+ ->ArgsProduct({{2 , 4 , 16 }, {2048 , 4096 }, { 2048 , 4096 }})
52
56
->Unit(benchmark::kMillisecond );
53
57
BENCHMARK_WMIN (BM_ExpM<GM>)
54
- ->ArgsProduct({{2 , 4 , 10 }, {2048 , 4096 }, {2048 , 4096 }})
58
+ ->ArgsProduct({{4 , 8 , 16 }, {2048 , 4096 }, {2048 , 4096 }})
55
59
->Unit(benchmark::kMillisecond );
56
60
57
61
BENCHMARK_WMIN (BM_ExpKXKY<CachedKXKY<Eta>>)
58
- ->ArgsProduct({{2048 , 4096 , 8192 }, {2048 , 4096 , 8192 }})
62
+ ->ArgsProduct({{2 , 4 , 16 }, {2048 , 4096 }, { 2048 , 4096 }})
59
63
->Unit(benchmark::kMillisecond );
60
64
BENCHMARK_WMIN (BM_ExpKXKY<CachedKXKY<Nu>>)
61
- ->ArgsProduct({{2048 , 4096 , 8192 }, {2048 , 4096 , 8192 }})
65
+ ->ArgsProduct({{2 , 4 , 16 }, {2048 , 4096 }, { 2048 , 4096 }})
62
66
->Unit(benchmark::kMillisecond );
63
67
BENCHMARK_WMIN (BM_ExpKXKY<CachedKXKY<NuG>>)
64
- ->ArgsProduct({{2048 , 4096 , 8192 }, {2048 , 4096 , 8192 }})
68
+ ->ArgsProduct({{2 , 4 , 16 }, {2048 , 4096 }, { 2048 , 4096 }})
65
69
->Unit(benchmark::kMillisecond );
66
70
BENCHMARK_WMIN (BM_ExpM<CachedM<GM>>)
67
- ->ArgsProduct({{2 , 4 , 10 }, {2048 , 4096 }, {2048 , 4096 }})
71
+ ->ArgsProduct({{4 , 8 , 16 }, {2048 , 4096 }, {2048 , 4096 }})
68
72
->Unit(benchmark::kMillisecond );
0 commit comments