Copyright(c) 2011-2015 Intel Corporation All rights reserved.
Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
+ modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
#ifdef CACHED_TEST
// Cached test, loop many times over small dataset
# define TEST_LEN 8*1024
-# define TEST_LOOPS 4000000
# define TEST_TYPE_STR "_warm"
#else
# ifndef TEST_CUSTOM
# define TEST_SOURCES 10
# define GT_L3_CACHE 32*1024*1024 /* some number > last level cache */
# define TEST_LEN GT_L3_CACHE / 2
-# define TEST_LOOPS 1000
# define TEST_TYPE_STR "_cold"
# else
# define TEST_TYPE_STR "_cus"
-# ifndef TEST_LOOPS
-# define TEST_LOOPS 1000
-# endif
# endif
#endif
typedef unsigned char u8;
+void gf_vect_mul_perf(u8 a, u8 * gf_const_tbl, u8 * buff1, u8 * buff2)
+{
+ gf_vect_mul_init(a, gf_const_tbl);
+ gf_vect_mul(TEST_LEN, gf_const_tbl, buff1, buff2);
+}
+
int main(int argc, char *argv[])
{
- int i;
u8 *buff1, *buff2, gf_const_tbl[64], a = 2;
- struct perf start, stop;
+ struct perf start;
printf("gf_vect_mul_perf:\n");
- gf_vect_mul_init(a, gf_const_tbl);
-
// Allocate large mem region
buff1 = (u8 *) malloc(TEST_LEN);
buff2 = (u8 *) malloc(TEST_LEN);
memset(buff1, 0, TEST_LEN);
memset(buff2, 0, TEST_LEN);
- gf_vect_mul(TEST_LEN, gf_const_tbl, buff1, buff2);
-
printf("Start timed tests\n");
fflush(0);
- gf_vect_mul(TEST_LEN, gf_const_tbl, buff1, buff2);
- perf_start(&start);
- for (i = 0; i < TEST_LOOPS; i++) {
- gf_vect_mul_init(a, gf_const_tbl);
- gf_vect_mul(TEST_LEN, gf_const_tbl, buff1, buff2);
- }
- perf_stop(&stop);
+ BENCHMARK(&start, BENCHMARK_TIME, gf_vect_mul_perf(a, gf_const_tbl, buff1, buff2));
+
printf("gf_vect_mul" TEST_TYPE_STR ": ");
- perf_print(stop, start, (long long)TEST_LEN * i);
+ perf_print(start, (long long)TEST_LEN);
return 0;
}