RFA: Time Benchmarks
Jeffrey Oldham
oldham at codesourcery.com
Fri Jul 6 03:38:21 UTC 2001
OK to commit this patch?
When running benchmarks, knowing the running time is frequently
useful. Currently, only the number of megaflops is computed. This
patch adds a "--report-time" command-line option which substitutes
running time in seconds for megaflops.
2001-07-05 Jeffrey D. Oldham <oldham at codesourcery.com>
* Benchmark.cmpl.cpp (Benchmark::Benchmark): Initialize
report_time_m. Process "--report-time".
(Benchmark::usage): Add "--report-time" explanation.
(Benchmark::runImplementation): Revise storage of time xor Mflops.
* Benchmark.h (Benchmark): Add report_time_m.
Tested on sequential Linux using gcc3.0 and by building and running three benchmarks
Approved by ???you???
Thanks,
Jeffrey D. Oldham
oldham at codesourcery.com
-------------- next part --------------
? LINUXgcc
? Benchmark.patch
? Benchmark.ChangeLog
? foo
? tests/LINUXgcc
Index: Benchmark.cmpl.cpp
===================================================================
RCS file: /home/pooma/Repository/r2/src/Utilities/Benchmark.cmpl.cpp,v
retrieving revision 1.44
diff -c -p -r1.44 Benchmark.cmpl.cpp
*** Benchmark.cmpl.cpp 2000/06/30 02:02:50 1.44
--- Benchmark.cmpl.cpp 2001/07/06 02:27:43
*************** Benchmark::Benchmark(int argc, char *arg
*** 76,81 ****
--- 76,82 ----
print_m = true;
diags_m = true;
+ report_time_m = false;
// Default Inform object has null prefix and only prints from context 0:
*************** Benchmark::Benchmark(int argc, char *arg
*** 225,230 ****
--- 226,236 ----
print_m = false;
++i;
}
+ else if (strcmp("--report-time", argv[i]) == 0)
+ {
+ report_time_m = true;
+ ++i;
+ }
else if (strcmp("--num-patches", argv[i]) == 0)
{
setNumPatches_m = true;
*************** void Benchmark::usage(const char *name)
*** 278,284 ****
<< " V1, V2, etc.\n"
<< "--no-print.........................don't print anything (useful if\n"
<< " profiling using an external tool).\n"
! << "--n-idiags.........................suppress diagnostic output.\n"
<< "--iters N..........................run benchmark for N iterations\n"
<< " (no effect if using SGI timers).\n"
<< "--samples N........................repeat runs N time.\n"
--- 284,291 ----
<< " V1, V2, etc.\n"
<< "--no-print.........................don't print anything (useful if\n"
<< " profiling using an external tool).\n"
! << "--no-diags.........................suppress diagnostic output.\n"
! << "--report-time......................print time, not Mflops.\n"
<< "--iters N..........................run benchmark for N iterations\n"
<< " (no effect if using SGI timers).\n"
<< "--samples N........................repeat runs N time.\n"
*************** void Benchmark::runImplementation(Implem
*** 637,645 ****
double timeper = total / double(iters);
! // Compute the MOps and store it.
! times[i] = impl->opCount() / timeper / 1.0e6;
// If we're testing results and we're printing, do this now.
--- 644,655 ----
double timeper = total / double(iters);
! // Either store the running time or the MOps.
! if (report_time_m)
! times[i] = total;
! else
! times[i] = impl->opCount() / timeper / 1.0e6;
// If we're testing results and we're printing, do this now.
Index: Benchmark.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Utilities/Benchmark.h,v
retrieving revision 1.27
diff -c -p -r1.27 Benchmark.h
*** Benchmark.h 2000/06/30 02:02:50 1.27
--- Benchmark.h 2001/07/06 02:27:43
*************** private:
*** 199,209 ****
bool setSamples_m;
//---------------------------------------------------------------------------
! // If true, we are supposed to display results or show diagnostic output.
bool print_m;
bool diags_m;
!
// --------------------------------------------------------------------------
// Points to the Inform object pointer used for printing output:
--- 199,211 ----
bool setSamples_m;
//---------------------------------------------------------------------------
! // If true, we are supposed to display results or show diagnostic
! // output or print running time, not Mflops.
bool print_m;
bool diags_m;
! bool report_time_m;
!
// --------------------------------------------------------------------------
// Points to the Inform object pointer used for printing output:
More information about the pooma-dev
mailing list