[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:49:44 PDT 2024
https://github.com/jameshu15869 created https://github.com/llvm/llvm-project/pull/100838
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.
>From 76cbe7ce92a3428fb402d766f9520847272e5a3a Mon Sep 17 00:00:00 2001
From: jameshu15869 <jhudson15869 at gmail.com>
Date: Fri, 26 Jul 2024 19:45:30 -0400
Subject: [PATCH] add minimum time, iterations and reduce epsilon
---
libc/benchmarks/gpu/LibcGpuBenchmark.cpp | 1 +
libc/benchmarks/gpu/LibcGpuBenchmark.h | 5 +++--
2 files changed, 4 insertions(+), 2 deletions(-)
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;
};
More information about the libc-commits
mailing list