Conversation
|
Note the CI failure is unrelated |
|
I've added a helper script like @alextmagro had suggested, as well as corresponding documentation to the |
| EOF | ||
| )" | ||
|
|
||
| - name: Restore previous ASV results |
There was a problem hiding this comment.
I think benchmarks should go separate workflow from CI. I.e. these microbenchmarks and ones that are already run with CI
There was a problem hiding this comment.
Will doing so require a separate TE build and setup? I added it here so that we'd piggy-back off of already running CI.
| @@ -0,0 +1,16 @@ | |||
| { | |||
There was a problem hiding this comment.
Does it need to be in root of TE?
There was a problem hiding this comment.
No, I've updated it
|
|
||
| # Derive a stable machine name from the runner label | ||
| case "${RUNNER_NAME}" in | ||
| linux-te-mi325*) MACHINE_NAME="mi325" ;; |
There was a problem hiding this comment.
Why do we need it if results are uploaded with just matrix.runner name?
There was a problem hiding this comment.
So, my understanding is that the matrix.runner name is not 1-1 with the underlying system, i.e. different systems with different machine names can be part of a pool with the same runner name. ASV by default stores results by machine name. Here, we are manually specifying a generic machine name indexed by gpu arch so that each e.g. mi325 runner will store its results in a compatible way.
Ideally, we have dedicated machines for benchmarking (since this would likely be every commit or nightly even), but that's a constraint we'll need to discuss.
| set -ex | ||
| pip install asv | ||
| cd /workspace | ||
| asv machine --yes --machine "$MACHINE_NAME" |
There was a problem hiding this comment.
Will it re-register machine if it exists already?
There was a problem hiding this comment.
Yes, but it's registered in the container so it's transient
Description
This PR is a port of #478 to ASV.
Benefits:
current commit on an update to
dev.asv publishto generate an HTML dashboard showing performance trends across the full commit history. This can be done statically via github pages in a separate repo for a permanent benchmark/regression dashboard.Downsides:
Considerations
This PR comes with a helper script, and an adapter script to allow for direct same-process benchmarking (to avoid the subprocess TE import overhead) resulting in fast and efficient benchmarks. We could, if we wanted to, utilize that script for CI as well. This would greatly decrease the cost of benchmarking, but would be less robust and require more careful maintenance. For the most part, this maintenance cost isn't that great, since ASV only has a couple releases a year, and is a stable project, meaning we can pin our version and not need to worry about API/format changes.
Type of change
Changes
Please list the changes introduced in this PR:
Checklist: