pyscf-ipu icon indicating copy to clipboard operation
pyscf-ipu copied to clipboard

Add performance benchmark tests

Open hatemhelal opened this issue 1 year ago • 2 comments

As the project evolves and we add more features it will be important to continually check that we aren't regressing on performance metrics. This issue can be used to discuss what we consider important performance metrics, here are a few that have been discussed previously:

  • C20, this seems to be used externally as a benchmark molecule
  • DFT throughput, e.g. number of single point DFT evaluations we can perform per second per chip

Beyond this we may want some microbenchmarks for performance critical steps in the SCF algorithm (e.g. eigensolve, evaluation of ERI)

Ideally we would track this continuously for every PR so we are getting feedback closer to the time when possible regressions are introduced. This may require we run these checks on IPU hardware. Further requirements to be scoped as part of addressing this issue.

hatemhelal avatar Sep 20 '23 07:09 hatemhelal

Write a "--benchmark_tracking True" argparse argument.

Goals:

  • Report cycle count of different molecules (@balancap ).
  • Keep compile time < 30min.

Molecules/hw configuration

  • Do C20 (single IPU) -eri_threshold 1e-9 -dense_ERI false
  • Do C100 (pod16) -eri_threshold 1e-9 -dense_ERI -false
  • SPICE dipeptide w/ N=1024 on 16 IPUs.

AlexanderMath avatar Oct 04 '23 12:10 AlexanderMath

We should look at this action:

https://github.com/benchmark-action/github-action-benchmark

hatemhelal avatar Oct 09 '23 12:10 hatemhelal