Skip to content

Commit dc7436f

Browse files
Adapt math benchmarks
1 parent 6e60a3d commit dc7436f

File tree

3 files changed

+18
-36
lines changed

3 files changed

+18
-36
lines changed

libc/benchmarks/gpu/src/math/CMakeLists.txt

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,6 @@ add_benchmark(
3434
libc.hdr.stdint_proxy
3535
libc.src.math.sin
3636
libc.src.math.sinf
37-
libc.src.stdlib.srand
38-
libc.src.stdlib.rand
39-
libc.src.__support.FPUtil.fp_bits
40-
libc.src.__support.CPP.bit
41-
libc.src.__support.CPP.array
4237
COMPILE_OPTIONS
4338
${math_benchmark_flags}
4439
LOADER_ARGS
@@ -54,11 +49,6 @@ add_benchmark(
5449
DEPENDS
5550
libc.hdr.stdint_proxy
5651
libc.src.math.atan2
57-
libc.src.stdlib.srand
58-
libc.src.stdlib.rand
59-
libc.src.__support.FPUtil.fp_bits
60-
libc.src.__support.CPP.bit
61-
libc.src.__support.CPP.array
6252
COMPILE_OPTIONS
6353
${math_benchmark_flags}
6454
LOADER_ARGS

libc/benchmarks/gpu/src/math/atan2_benchmark.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
#include "benchmarks/gpu/LibcGpuBenchmark.h"
22

3+
#include "hdr/stdint_proxy.h"
34
#include "src/math/atan2.h"
4-
#include "src/stdlib/rand.h"
55

66
#if defined(NVPTX_MATH_FOUND) || defined(AMDGPU_MATH_FOUND)
77
#include "platform.h"
88
#endif
99

10-
#define BM_TWO_RANDOM_INPUT(T, Func, MIN_EXP, MAX_EXP, N) \
11-
[]() { \
10+
#define BM_RANDOM_INPUTS(T, Func, MinExp, MaxExp, N) \
11+
[](uint32_t call_index) { \
1212
return LIBC_NAMESPACE::benchmarks::MathPerf<T>::run_throughput_in_range< \
13-
N>(Func, MIN_EXP, MAX_EXP, MIN_EXP, MAX_EXP); \
13+
N>(Func, MinExp, MaxExp, MinExp, MaxExp, call_index); \
1414
}
1515

16-
#define BENCH(T, Name, Func, MIN_EXP, MAX_EXP) \
16+
#define BENCH(T, Name, Func, MinExp, MaxExp) \
1717
SINGLE_WAVE_BENCHMARK(LlvmLibcAtan2GpuBenchmark, Name##_1, \
18-
BM_TWO_RANDOM_INPUT(T, Func, MIN_EXP, MAX_EXP, 1)); \
18+
BM_RANDOM_INPUTS(T, Func, MinExp, MaxExp, 1)); \
1919
SINGLE_WAVE_BENCHMARK(LlvmLibcAtan2GpuBenchmark, Name##_128, \
20-
BM_TWO_RANDOM_INPUT(T, Func, MIN_EXP, MAX_EXP, 128)); \
20+
BM_RANDOM_INPUTS(T, Func, MinExp, MaxExp, 128)); \
2121
SINGLE_WAVE_BENCHMARK(LlvmLibcAtan2GpuBenchmark, Name##_1024, \
22-
BM_TWO_RANDOM_INPUT(T, Func, MIN_EXP, MAX_EXP, 1024)); \
22+
BM_RANDOM_INPUTS(T, Func, MinExp, MaxExp, 1024)); \
2323
SINGLE_WAVE_BENCHMARK(LlvmLibcAtan2GpuBenchmark, Name##_4096, \
24-
BM_TWO_RANDOM_INPUT(T, Func, MIN_EXP, MAX_EXP, 4096))
24+
BM_RANDOM_INPUTS(T, Func, MinExp, MaxExp, 4096))
2525

2626
BENCH(double, Atan2, LIBC_NAMESPACE::atan2, -1023, 1023);
2727
BENCH(double, Atan2TwoPi, LIBC_NAMESPACE::atan2, -10, 3);

libc/benchmarks/gpu/src/math/sin_benchmark.cpp

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,28 @@
11
#include "benchmarks/gpu/LibcGpuBenchmark.h"
22

3-
#include "src/__support/CPP/array.h"
4-
#include "src/__support/CPP/bit.h"
5-
#include "src/__support/CPP/functional.h"
6-
#include "src/__support/FPUtil/FPBits.h"
3+
#include "hdr/stdint_proxy.h"
74
#include "src/math/sin.h"
85
#include "src/math/sinf.h"
9-
#include "src/stdlib/rand.h"
106

117
#if defined(NVPTX_MATH_FOUND) || defined(AMDGPU_MATH_FOUND)
128
#include "platform.h"
139
#endif
1410

15-
// BENCHMARK() expects a function that with no parameters that returns a
16-
// uint64_t representing the latency. Defining each benchmark using macro that
17-
// expands to a lambda to allow us to switch the implementation of `sin()` to
18-
// easily register NVPTX benchmarks.
19-
#define BM_RANDOM_INPUT(T, Func, MIN_EXP, MAX_EXP, N) \
20-
[]() { \
11+
#define BM_RANDOM_INPUT(T, Func, MinExp, MaxExp, N) \
12+
[](uint32_t call_index) { \
2113
return LIBC_NAMESPACE::benchmarks::MathPerf<T>::run_throughput_in_range< \
22-
N>(Func, MIN_EXP, MAX_EXP); \
14+
N>(Func, MinExp, MaxExp, call_index); \
2315
}
2416

25-
#define BENCH(T, Name, Func, MIN_EXP, MAX_EXP) \
17+
#define BENCH(T, Name, Func, MinExp, MaxExp) \
2618
SINGLE_WAVE_BENCHMARK(LlvmLibcSinGpuBenchmark, Name##_1, \
27-
BM_RANDOM_INPUT(T, Func, MIN_EXP, MAX_EXP, 1)); \
19+
BM_RANDOM_INPUT(T, Func, MinExp, MaxExp, 1)); \
2820
SINGLE_WAVE_BENCHMARK(LlvmLibcSinGpuBenchmark, Name##_128, \
29-
BM_RANDOM_INPUT(T, Func, MIN_EXP, MAX_EXP, 128)); \
21+
BM_RANDOM_INPUT(T, Func, MinExp, MaxExp, 128)); \
3022
SINGLE_WAVE_BENCHMARK(LlvmLibcSinGpuBenchmark, Name##_1024, \
31-
BM_RANDOM_INPUT(T, Func, MIN_EXP, MAX_EXP, 1024)); \
23+
BM_RANDOM_INPUT(T, Func, MinExp, MaxExp, 1024)); \
3224
SINGLE_WAVE_BENCHMARK(LlvmLibcSinGpuBenchmark, Name##_4096, \
33-
BM_RANDOM_INPUT(T, Func, MIN_EXP, MAX_EXP, 4096))
25+
BM_RANDOM_INPUT(T, Func, MinExp, MaxExp, 4096))
3426

3527
BENCH(double, Sin, LIBC_NAMESPACE::sin, -1023, 1023);
3628
BENCH(double, SinTwoPi, LIBC_NAMESPACE::sin, -10, 3);

0 commit comments

Comments
 (0)