From 71330800b89cb4c6ae8716a7e78bdcf574fe04ab Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Thu, 6 Feb 2014 01:36:26 -0800 Subject: Clean up benchmarks; support uarch-specific counters --- benchmarks/spmv/bmark.mk | 3 ++- benchmarks/spmv/spmv_main.c | 64 +-------------------------------------------- 2 files changed, 3 insertions(+), 64 deletions(-) (limited to 'benchmarks/spmv') diff --git a/benchmarks/spmv/bmark.mk b/benchmarks/spmv/bmark.mk index 5ab9cc0..dcfdb19 100644 --- a/benchmarks/spmv/bmark.mk +++ b/benchmarks/spmv/bmark.mk @@ -10,6 +10,7 @@ spmv_c_src = \ spmv_main.c \ + syscalls.c \ spmv_riscv_src = \ crt.S \ @@ -23,7 +24,7 @@ $(spmv_host_bin) : $(spmv_c_src) spmv_riscv_bin = spmv.riscv $(spmv_riscv_bin) : $(spmv_c_objs) $(spmv_riscv_objs) - $(RISCV_LINK) $(spmv_c_objs) $(spmv_riscv_objs) -o $(spmv_riscv_bin) + $(RISCV_LINK) $(spmv_c_objs) $(spmv_riscv_objs) -o $(spmv_riscv_bin) $(RISCV_LINK_OPTS) junk += $(spmv_c_objs) $(spmv_riscv_objs) \ $(spmv_host_bin) $(spmv_riscv_bin) diff --git a/benchmarks/spmv/spmv_main.c b/benchmarks/spmv/spmv_main.c index d765ca2..44cdc99 100644 --- a/benchmarks/spmv/spmv_main.c +++ b/benchmarks/spmv/spmv_main.c @@ -2,75 +2,13 @@ // Double-precision general matrix multiplication benchmark //-------------------------------------------------------------------------- -int ncores = 1; #include "util.h" //-------------------------------------------------------------------------- -// Macros - -// Set HOST_DEBUG to 1 if you are going to compile this for a host -// machine (ie Athena/Linux) for debug purposes and set HOST_DEBUG -// to 0 if you are compiling with the smips-gcc toolchain. - -#ifndef HOST_DEBUG -#define HOST_DEBUG 0 -#endif - -// Set PREALLOCATE to 1 if you want to preallocate the benchmark -// function before starting stats. If you have instruction/data -// caches and you don't want to count the overhead of misses, then -// you will need to use preallocation. - -#ifndef PREALLOCATE -#define PREALLOCATE 0 -#endif - -// Set SET_STATS to 1 if you want to carve out the piece that actually -// does the computation. - -#ifndef SET_STATS -#define SET_STATS 0 -#endif - -//-------------------------------------------------------------------------- // Input/Reference Data #include "dataset1.h" -//-------------------------------------------------------------------------- -// Helper functions - -int verify( long n, const double test[], const double correct[] ) -{ - int i; - for ( i = 0; i < n; i++ ) { - if ( test[i] != correct[i] ) { - return 2; - } - } - return 1; -} - -#if HOST_DEBUG -#include -#include -void printArray( char name[], long n, const double arr[] ) -{ - int i; - printf( " %10s :", name ); - for ( i = 0; i < n; i++ ) - printf( " %8.1f ", arr[i] ); - printf( "\n" ); -} -#endif - -void setStats( int enable ) -{ -#if ( !HOST_DEBUG && SET_STATS ) - asm( "mtpcr %0, cr10" : : "r" (enable) ); -#endif -} - void spmv(int r, const double* val, const int* idx, const double* x, const int* ptr, double* y) { @@ -108,5 +46,5 @@ int main( int argc, char* argv[] ) spmv(R, val, idx, x, ptr, y); setStats(0); - finishTest(verify(R, y, verify_data)); + return verifyDouble(R, y, verify_data); } -- cgit v1.1