onnx-mlir
onnx-mlir copied to clipboard
Tracking Performance
As our compiler matures, we are tuning for performance and we would like to make sure we have to regressions.
The proposal it so have a "performance" run that works on demand and/or when publishing the changes, so that we may minimally have a record of whether a PR helps or hurts a test.
We could send the results also to a mailing group for folks to be informed.
For the mechanics, some folks indicated that Google Benchmark is a good infrastructure, I have personally no experience with it. If anyone has a tool that they like, they are welcome to chime in.
I am not sure how we would proceed about highlighting the "expected" time for each benchmark and architecture. Suggestions? Maybe something explicit? Obviously perf measurement is potentially noisy, we don't need precise match of time but a general indication of if we make progress or if something breaks an optimization.
Note that we may also track of something else than time, for example it could be the "coverage percentage" of a phase, such as bundling, or the presence of certain instructions (such as SIMD FMAs, for example).