Commit 2c0a8123 authored by Tomáš Oberhuber's avatar Tomáš Oberhuber Committed by Jakub Klinkovský
Browse files

Improved logging of SpMV benchmark.

parent 7f3e53bd
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -47,7 +47,12 @@ struct BenchmarkResult

   virtual HeaderElements getTableHeader() const
   {
      return HeaderElements({ "time", "stddev", "stddev/time", "bandwidth", "speedup" });
      return HeaderElements( {
         std::pair< String, int >( "time", 8 ),
         std::pair< String, int >( "stddev", 8 ),
         std::pair< String, int >( "stddev/time", 8 ),
         std::pair< String, int >( "bandwidth", 8 ),
         std::pair< String, int >( "speedup", 8 ) } );
   }

   virtual RowElements getRowElements() const
+11 −10
Original line number Diff line number Diff line
@@ -83,9 +83,9 @@ public:
   using MetadataColumns = std::vector<MetadataElement>;

   using CommonLogs = std::vector< std::pair< const char*, String > >;
   using LogsMetadata = std::vector< String >;
   using LogsMetadata = std::vector< std::pair< String, int > >;

   using HeaderElements = std::vector< String >;
   using HeaderElements = std::vector< std::pair< String, int > >;
   using RowElements = JsonLoggingRowElements;

   JsonLogging( int verbose = true,
@@ -103,16 +103,18 @@ public:
   void addCommonLogs( const CommonLogs& logs )
   {
      this->commonLogs = logs;
      for( auto lg : logs )
      {
      if( verbose )
            std::cout << lg.first << " = " << lg.second << std::endl;
      {
         std::cout << std::endl << "Benchmark setup:" << std::endl;
         for( auto lg : logs )
            std::cout << "   " << lg.first << " = " << lg.second << std::endl;
         std::cout << std::endl;
      }
   };

   void resetLogsMetada() { this->logsMetadata.clear(); };

   void addLogsMetadata( const std::vector< String >& md )
   void addLogsMetadata( const std::vector< std::pair< String, int > >& md )
   {
      this->logsMetadata.insert( this->logsMetadata.end(), md.begin(), md.end() );
   }
@@ -122,7 +124,7 @@ public:
      if( verbose )
      {
         for( auto md : this->logsMetadata )
            std::cout << md << "\t";
            std::cout << std::setw( md.second ) << md.first;
         std::cout << std::endl;
      }
   }
@@ -148,10 +150,10 @@ public:
      for( auto el : rowEls )
      {
         if( verbose )
            std::cout << el << "\t";
            std::cout << std::setw( md->second ) << el;
         if( idx++ > 0 )
            log << "," << std::endl;
         log << "         \"" << *md++ << "\" : \"" << el << "\"";
         log << "         \"" << md++->first << "\" : \"" << el << "\"";
      }
      log << std::endl << "      }";
      this->lineStarted = true;
@@ -178,7 +180,6 @@ public:
      if( verbose )
         std::cout << "properties:" << std::endl;

      int idx( this->lineStarted );
      for( auto & it : metadata ) {
         if( verbose )
            std::cout << "   " << it.first << " = " << it.second << std::endl;
+9 −1
Original line number Diff line number Diff line
@@ -145,7 +145,15 @@ benchmarkSolver( Benchmark<>& benchmark,

      virtual HeaderElements getTableHeader() const override
      {
         return HeaderElements({"time", "stddev", "stddev/time", "speedup", "converged", "iterations", "residue_precond", "residue_true"});
         return HeaderElements( {
            std::pair< String, int >( "time", 8 ),
            std::pair< String, int >( "stddev", 8 ),
            std::pair< String, int >( "stddev/time", 8 ),
            std::pair< String, int >( "speedup", 8 ),
            std::pair< String, int >( "converged", 8 ),
            std::pair< String, int >( "iterations", 8 ),
            std::pair< String, int >( "residue_precond", 8 ),
            std::pair< String, int >( "residue_true", 8 ) } );
      }

      virtual RowElements getRowElements() const override
+3 −3
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ public:

   using CommonLogs = std::vector< std::pair< const char*, String > >;

   using HeaderElements = std::vector< String >;
   using HeaderElements = std::vector< std::pair< String, int > >;
   using RowElements = LoggingRowElements;

   Logging( int verbose = true,
@@ -148,7 +148,7 @@ public:
         std::cout << std::setw( 15 ) << "";

         for( auto & it : subElements ) {
            std::cout << std::setw( 15 ) << it;
            std::cout << std::setw( 15 ) << it.first;
         }
         std::cout << std::endl;

@@ -177,7 +177,7 @@ public:

      log << header_indent << " " << spanningElement << std::endl;
      for( auto & it : subElements ) {
         log << header_indent << "! " << it << std::endl;
         log << header_indent << "! " << it.first << std::endl;
      }

      if( horizontalGroups.size() > 0 ) {
+11 −1
Original line number Diff line number Diff line
@@ -44,7 +44,17 @@ struct SpmvBenchmarkResult

   virtual HeaderElements getTableHeader() const override
   {
      return HeaderElements( {"format", "device", "non-zeros", "time", "stddev", "stddev/time", "bandwidth", "speedup", "CSR Diff.Max", "CSR Diff.L2"} );
      return HeaderElements( {
         std::pair< String, int >( "format", 30 ),
         std::pair< String, int >( "device", 12 ),
         std::pair< String, int >( "non-zeros", 12 ),
         std::pair< String, int >( "time", 12 ),
         std::pair< String, int >( "stddev", 12 ),
         std::pair< String, int >( "stddev/time", 14 ),
         std::pair< String, int >( "bandwidth", 12 ),
         std::pair< String, int >( "speedup", 12 ),
         std::pair< String, int >( "CSR Diff.Max", 14 ),
         std::pair< String, int >( "CSR Diff.L2", 14 ) } );
   }

   void setFormat( const String& format ) { this->format = format; };
Loading