 
 int main(int argc, char** argv)
 {
+    printf("# of diagonals vary along rows, # of threads per vector varies along column\n");
+    printf("    ,");
+    for(size_t D = 1; D <= max_diagonals; D++)
+        printf("%4d,", (int) D);
+    std::cout << std::endl;
+
     benchmark_csr_vector<int, float,  2>();
     benchmark_csr_vector<int, float,  4>();
     benchmark_csr_vector<int, float,  8>();


#include <cusp/detail/device/spmv.h>
#include "timer.h"


template <bool UseCache, unsigned int THREADS_PER_VECTOR, typename IndexType, typename ValueType>

        float sec_per_iteration = t.seconds_elapsed() / num_iterations;
        float gflops = (NNZ/sec_per_iteration) / 1e9;

        printf("%4.1f,", gflops);
    }

    std::cout << std::endl;
