Skip to content
Snippets Groups Projects
Commit e2d211ac authored by Pekka Paalanen's avatar Pekka Paalanen
Browse files

lowlevel-blt-bench: add option to skip memcpy measurement


The memcpy speed measurement takes several seconds. When you are running
single tests in a harness that iterates dozens or hundreds of times, the
repeated measurements are redundant and take a lot of time. It is also
an open question whether the measured speed changes over long test runs
due to unidentified platform reasons (Raspberry Pi).

Add a command line option to set the reference memcpy speed, skipping
the measuring.

The speed is mainly used to compute how many iterations do run inside
the bench_*() functions, so for repeated testing on the same hardware,
it makes sense to lock that number to a constant.

Signed-off-by: default avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: default avatarBen Avison <bavison@riscosopen.org>
parent 31cb0d42
No related branches found
No related tags found
No related merge requests found
......@@ -55,7 +55,7 @@ uint32_t *dst;
uint32_t *src;
uint32_t *mask;
double bandwidth = 0;
double bandwidth = 0.0;
double
bench_memcpy ()
......@@ -1086,10 +1086,11 @@ print_speed_scaling (double bw)
static void
usage (const char *progname)
{
printf ("Usage: %s [-b] [-n] [-c] pattern\n", progname);
printf ("Usage: %s [-b] [-n] [-c] [-m M] pattern\n", progname);
printf (" -n : benchmark nearest scaling\n");
printf (" -b : benchmark bilinear scaling\n");
printf (" -c : print output as CSV data\n");
printf (" -m M : set reference memcpy speed to M MB/s instead of measuring it\n");
}
int
......@@ -1115,6 +1116,9 @@ main (int argc, char *argv[])
if (strchr (argv[i] + 1, 'c'))
use_csv_output = TRUE;
if (strcmp (argv[i], "-m") == 0 && i + 1 < argc)
bandwidth = atof (argv[++i]) * 1e6;
}
else
{
......@@ -1138,7 +1142,8 @@ main (int argc, char *argv[])
if (!use_csv_output)
print_explanation ();
bandwidth = bench_memcpy ();
if (bandwidth < 1.0)
bandwidth = bench_memcpy ();
if (!use_csv_output)
print_speed_scaling (bandwidth);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment