-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: add an asv-based benchmarks on cirun [skip cirrus] #4751
Conversation
The goal here is to run benchmarks on a Graviton arch on AWS Cirun. The demo setup (for x86_64 for now) is https://github.com/ev-br/ob_bench and https://github.com/ev-br/ob-bench-asv with web visualization at https://ev-br.github.io/ob-bench-asv/. In brief:
The nightly wheel is in fact weekly (gets built every Thursday), which matches a weekly cron job what we want on AWS. So how about the following plan @martin-frbg :
|
OK, so this is a somewhat different concept from the codspeed one, not meant to flag changes caused by a particular PR ? In that case, I think we could even consider running it in larger than weekly intervals. Giving it its own home under the OpenMathLib umbrella should also be no problem, I guess. Not sure I understand your comment about deduplicating, are you intending this to replace the codspeed setup that you committed recently ? (Different architecture, different frequency of runs, different purpose as far as I understood ?) |
IIUC the concept was to run it on a cron everywhere, and then codspeed was easy and free to run on each PR? The AWS cirun is trickier and not free. Not exuberantly expensive but nonetheless. Deduplicating comment is about trivial implementation details: the python side of benchmarking is almost but not completely the same. Two reasons: 1) self-built openblas vs the wheel (prefixed names, Merging them completely is not very easy, so I'd consider deduplicating up to a degree when everything runs and we're not on a deadline. No need to worry about right now, I'd say. So the intended endgame is:
|
Now that I remember asking them: not easy, it cannot run on a cron. codspeed only supports pushes and pull requests.
Yeah. Codspeed is nice but only supports x86_64. |
ok, so we keep the codspeed setup as a canary for performance regressions, and this here is basically creating codspeed-like performance-vs-commits graphs on arm64 at larger intervals (?) So far,so good - they could live in their own repository named something like BLAS-benchmarks. I wonder if it would make sense to create graphs of performance vs matrix size as well (like the older OpenBLAS benchmarks do), and - in light of #4744 - perhaps add baseline data for "competing" implementations too ? |
Exactly! Codspeed serving as a canary-in-a-PR, and asv a canary in a week's worth of PRs (or more than a week, whatever the interval will be).
This exists: https://ev-br.github.io/ob-bench-asv/#benchmarks.Nrm2.time_dnrm2?x-axis=size
Certainly doable. Need to sort the same some plumbing akin to what I mentioned under the "deduplicate" rubric above to be able to link to it.
Great! I'll be able to start adapting them to cirun once the repository exists in the org. EDIT: In addition to web graphs, asv produces text output, like this:
This is on a |
good to know that "size" is doable (though having just 100 and 1000 and then doing a line plot is a bit counterproductive) |
Of course. Both benchmark functions and parameter combinations, both here and in codspeed, are proof-of-concept, and are mostly thrown in to have quick iteration turnover. |
That would very much depend on the BLAS function - most show some jitter that probably stems from cache misses at certain sises if one does fine-grained benchmarks (like the ones in the benchmark folder, that default to checking all sizes between 1 and 1000 with a granularity of 1 -probably too expensive to do on AWS all the time)
Ideally yes, as in most cases each precision has its own dedicated kernel (certainly one for real and one for complex numbers). Probably all outside the scope of the milestone though... |
Well, life does not stop on a milestone :-). Let's take these to OpenMathLib/BLAS-Benchmarks#1 and OpenMathLib/BLAS-Benchmarks#2. |
closing in favor of a cron job over at https://github.com/OpenMathLib/BLAS-Benchmarks/ |
No description provided.