From d59e5c570b0bbdb8348d2f9ee6fc5850e606db27 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Tue, 27 Sep 2016 21:03:24 +0200 Subject: Added an option to run tuned kernels multiple times to average execution times; requires CLTune 2.5.0 --- src/tuning/tuning.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/tuning/tuning.hpp b/src/tuning/tuning.hpp index 13bae5a6..8fa93efc 100644 --- a/src/tuning/tuning.hpp +++ b/src/tuning/tuning.hpp @@ -46,6 +46,8 @@ void Tuner(int argc, char* argv[]) { if (o == kArgBeta) { args.beta = GetArgument(argc, argv, help, kArgBeta, GetScalar()); } if (o == kArgFraction) { args.fraction = GetArgument(argc, argv, help, kArgFraction, C::DefaultFraction()); } } + const auto num_runs = GetArgument(argc, argv, help, kArgNumRuns, size_t{1}); + fprintf(stdout, "%s\n", help.c_str()); // Tests validity of the given arguments @@ -127,6 +129,7 @@ void Tuner(int argc, char* argv[]) { C::SetArguments(tuner, args, x_vec, y_vec, a_mat, b_mat, c_mat, temp); // Starts the tuning process + tuner.SetNumRuns(num_runs); tuner.Tune(); // Prints the results to screen @@ -135,7 +138,7 @@ void Tuner(int argc, char* argv[]) { // Also prints the performance of the best-case in terms of GB/s or GFLOPS if (time_ms != 0.0) { - printf("[ -------> ] %.1lf ms", time_ms); + printf("[ -------> ] %.2lf ms", time_ms); printf(" or %.1lf %s\n", C::GetMetric(args)/(time_ms*1.0e6), C::PerformanceUnit().c_str()); } -- cgit v1.2.3