[libc-commits] [libc] [libc] Add Minimum Time and Iterations, Reduce Epsilon (PR #100838)
via libc-commits
libc-commits at lists.llvm.org
Fri Jul 26 16:50:15 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libc
Author: None (jameshu15869)
<details>
<summary>Changes</summary>
This PR adds minimums (50 iterations, 500 us, and epsilon of 0.0001) to ensure that all benchmarks run at least a set number of times before outputting a final measurement.
---
Full diff: https://github.com/llvm/llvm-project/pull/100838.diff
2 Files Affected:
- (modified) libc/benchmarks/gpu/LibcGpuBenchmark.cpp (+1)
- (modified) libc/benchmarks/gpu/LibcGpuBenchmark.h (+3-2)
``````````diff
diff --git a/libc/benchmarks/gpu/LibcGpuBenchmark.cpp b/libc/benchmarks/gpu/LibcGpuBenchmark.cpp
index 031ad163c20da..a9a912538cd84 100644
--- a/libc/benchmarks/gpu/LibcGpuBenchmark.cpp
+++ b/libc/benchmarks/gpu/LibcGpuBenchmark.cpp
@@ -205,6 +205,7 @@ BenchmarkResult benchmark(const BenchmarkOptions &options,
if (samples >= options.max_samples || iterations >= options.max_iterations)
break;
if (total_time >= options.min_duration && samples >= options.min_samples &&
+ total_iterations >= options.min_iterations &&
change_ratio < options.epsilon)
break;
diff --git a/libc/benchmarks/gpu/LibcGpuBenchmark.h b/libc/benchmarks/gpu/LibcGpuBenchmark.h
index f5cf4822f6fd3..ca5ad8a595d54 100644
--- a/libc/benchmarks/gpu/LibcGpuBenchmark.h
+++ b/libc/benchmarks/gpu/LibcGpuBenchmark.h
@@ -17,12 +17,13 @@ namespace benchmarks {
struct BenchmarkOptions {
uint32_t initial_iterations = 1;
+ uint32_t min_iterations = 50;
uint32_t max_iterations = 10000000;
uint32_t min_samples = 4;
uint32_t max_samples = 1000;
- int64_t min_duration = 0; // in nanoseconds (ns)
+ int64_t min_duration = 500 * 1000; // 500 * 1000 nanoseconds = 500 us
int64_t max_duration = 1000 * 1000 * 1000; // 1e9 nanoseconds = 1 second
- double epsilon = 0.01;
+ double epsilon = 0.0001;
double scaling_factor = 1.4;
};
``````````
</details>
https://github.com/llvm/llvm-project/pull/100838
More information about the libc-commits
mailing list