diff --git a/src/Benchmarks/SpMV/spmv.h b/src/Benchmarks/SpMV/spmv.h index 408bcae2976bfd8b84233c22a93153d3ba22d1ac..6bfee5ffef7702219493d124d72da5d15fc8c54b 100644 --- a/src/Benchmarks/SpMV/spmv.h +++ b/src/Benchmarks/SpMV/spmv.h @@ -59,6 +59,18 @@ std::string getMatrixFormat( const Matrix& matrix ) return format; } +template< typename Matrix > +std::string getFormatShort( const Matrix& matrix ) +{ + std::string mtrxFullType = getType( matrix ); + std::string mtrxType = mtrxFullType.substr( 0, mtrxFullType.find( "<" ) ); + std::string format = mtrxType.substr( mtrxType.find( ':' ) + 2 ); + format = format.substr( format.find(':') + 2); + format = format.substr( 0, 3 ); + + return format; +} + // Print information about the matrix. template< typename Matrix > void printMatrixInfo( const Matrix& matrix, @@ -202,17 +214,6 @@ benchmarkSpMV( Benchmark& benchmark, // Copy the values resultHostVector2 = hostVector2; - // Setup cuSPARSE MetaData, since it has the same header as CSR, - // and therefore will not get its own headers (rows, cols, speedup etc.) in log. - // * Not setting this up causes (among other undiscovered errors) the speedup from CPU to GPU on the input format to be overwritten. - benchmark.setMetadataColumns( Benchmark::MetadataColumns({ - { "matrix name", convertToString( getMatrixFileName( inputFileName ) ) }, - { "non-zeros", convertToString( hostMatrix.getNumberOfNonzeroMatrixElements() ) }, - { "rows", convertToString( hostMatrix.getRows() ) }, - { "columns", convertToString( hostMatrix.getColumns() ) }, - { "matrix format", convertToString( "CSR-cuSPARSE" ) } - } )); - #ifdef HAVE_CUDA benchmark.time< Devices::Cuda >( reset, "GPU", spmvCuda ); @@ -223,6 +224,17 @@ benchmarkSpMV( Benchmark& benchmark, resultDeviceVector2.setValue( 0.0 ); resultDeviceVector2 = deviceVector2; + + // Setup cuSPARSE MetaData, since it has the same header as CSR, + // and therefore will not get its own headers (rows, cols, speedup etc.) in log. + // * Not setting this up causes (among other undiscovered errors) the speedup from CPU to GPU on the input format to be overwritten. + benchmark.setMetadataColumns( Benchmark::MetadataColumns({ + { "matrix name", convertToString( getMatrixFileName( inputFileName ) ) }, + { "non-zeros", convertToString( hostMatrix.getNumberOfNonzeroMatrixElements() ) }, + { "rows", convertToString( hostMatrix.getRows() ) }, + { "columns", convertToString( hostMatrix.getColumns() ) }, + { "matrix format", convertToString( "CSR-cuSPARSE-" + getFormatShort( hostMatrix ) ) } + } )); benchmark.time< Devices::Cuda >( reset, "GPU", spmvCusparse ); diff --git a/src/Benchmarks/scripts/florida-matrix-market b/src/Benchmarks/scripts/florida-matrix-market index aedaad5b4d2010093ad5ce417720846771f34630..77e0892adf8d3108de4a787a2d6927533bb3e7f7 100644 --- a/src/Benchmarks/scripts/florida-matrix-market +++ b/src/Benchmarks/scripts/florida-matrix-market @@ -232,7 +232,6 @@ http://www.cise.ufl.edu/research/sparse/MM/FIDAP/ex7.tar.gz \ http://www.cise.ufl.edu/research/sparse/MM/FIDAP/ex8.tar.gz \ http://www.cise.ufl.edu/research/sparse/MM/FIDAP/ex9.tar.gz \ http://www.cise.ufl.edu/research/sparse/MM/Freescale/circuit5M_dc.tar.gz \ -http://www.cise.ufl.edu/research/sparse/MM/Freescale/circuit5M.tar.gz \ http://www.cise.ufl.edu/research/sparse/MM/Freescale/Freescale1.tar.gz \ http://www.cise.ufl.edu/research/sparse/MM/Freescale/memchip.tar.gz \ http://www.cise.ufl.edu/research/sparse/MM/Freescale/transient.tar.gz \