diff options
Diffstat (limited to 'benchmarks/vec-sgemm/vec-sgemm_main.c')
-rw-r--r-- | benchmarks/vec-sgemm/vec-sgemm_main.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/benchmarks/vec-sgemm/vec-sgemm_main.c b/benchmarks/vec-sgemm/vec-sgemm_main.c new file mode 100644 index 0000000..b0a3939 --- /dev/null +++ b/benchmarks/vec-sgemm/vec-sgemm_main.c @@ -0,0 +1,39 @@ +// See LICENSE for license details. + +//************************************************************************** +// SGEMM benchmark +//-------------------------------------------------------------------------- +// +// This benchmark tests a vectorized sgemm implementation. + +#include <string.h> +#include "util.h" + +//-------------------------------------------------------------------------- +// Input/Reference Data + +#include "dataset1.h" + +//-------------------------------------------------------------------------- +// Main + +void *vec_sgemm_nn (size_t, size_t, size_t, const float*, size_t, const float*, size_t, float*, size_t); + +int main( int argc, char* argv[] ) +{ + float results_data[ARRAY_SIZE] = {0}; + +#if PREALLOCATE + // If needed we preallocate everything in the caches + vec_sgemm_nn(DIM_SIZE, DIM_SIZE, DIM_SIZE, input1_data, DIM_SIZE, input2_data, DIM_SIZE, results_data, DIM_SIZE); + memset(results_data, 0, sizeof(results_data)); +#endif + + // Do the sgemm + setStats(1); + vec_sgemm_nn(DIM_SIZE, DIM_SIZE, DIM_SIZE, input1_data, DIM_SIZE, input2_data, DIM_SIZE, results_data, DIM_SIZE); + setStats(0); + + // Check the results + return verifyFloat( ARRAY_SIZE, results_data, verify_data ); +} |