|
1 | 1 | #include "benchmarks/gpu/LibcGpuBenchmark.h" |
2 | 2 |
|
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" |
7 | 4 | #include "src/math/sin.h" |
8 | 5 | #include "src/math/sinf.h" |
9 | | -#include "src/stdlib/rand.h" |
10 | 6 |
|
11 | 7 | #if defined(NVPTX_MATH_FOUND) || defined(AMDGPU_MATH_FOUND) |
12 | 8 | #include "platform.h" |
13 | 9 | #endif |
14 | 10 |
|
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) { \ |
21 | 13 | return LIBC_NAMESPACE::benchmarks::MathPerf<T>::run_throughput_in_range< \ |
22 | | - N>(Func, MIN_EXP, MAX_EXP); \ |
| 14 | + N>(Func, MinExp, MaxExp, call_index); \ |
23 | 15 | } |
24 | 16 |
|
25 | | -#define BENCH(T, Name, Func, MIN_EXP, MAX_EXP) \ |
| 17 | +#define BENCH(T, Name, Func, MinExp, MaxExp) \ |
26 | 18 | 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)); \ |
28 | 20 | 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)); \ |
30 | 22 | 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)); \ |
32 | 24 | 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)) |
34 | 26 |
|
35 | 27 | BENCH(double, Sin, LIBC_NAMESPACE::sin, -1023, 1023); |
36 | 28 | BENCH(double, SinTwoPi, LIBC_NAMESPACE::sin, -10, 3); |
|
0 commit comments