Skip to content

Initial step toward continuous benchmarking

Hong Zhang requested to merge hongzh/benchmarks into main

This MR sets a performance evaluation framework for PETSc's SpMV kernels. It can be easily extended to solvers and other components. The workflow follows the Ginkgo project and reuses its web application that facilitates interactive analysis of performance data. This allows us to compare directly with published Ginkgo results.

  1. Set up ARCHIVE_LOCATION in the utility script ssget (used to download SuiteSparse matrices automatically).
  2. Compile the driver PetscSpMV under src/benchmarks and run the benchmark script run_petsc_benchmarks.sh. Performance results as well as the meta data will be saved as json files in a structured folder
results
└── cuda
    └── SuiteSparse
        ├── ACUSIM
        │   └── Pres_Poisson.json
        ├── Alemdar
        │   └── Alemdar.json
        ├── AMD
        │   ├── G2_circuit.json
        │   └── G3_circuit.json
        ├── Andrews
        │   └── Andrews.json
  1. The json files can be parsed and visualized by Ginkgo performance explorer https://ginkgo-project.github.io/gpe/ Scripts and examples can be found at https://github.com/caidao22/petsc-data Screen_Shot_2022-09-15_at_2.23.29_PM The figure generated shows that cuSPARSE's SpMV is significantly faster than the Kokkos' SpMV (configured with TPL turned off).

Merge request reports