-
Notifications
You must be signed in to change notification settings - Fork 278
chore(ci): check for performance regression and create report #2814
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
Conversation
e54afab
to
8fb8911
Compare
8fb8911
to
01f34e3
Compare
01f34e3
to
3003061
Compare
No performance regression detected. 🎉
View All Benchmarks
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@IceTDrinker reviewed 4 of 7 files at r1, 13 of 13 files at r2, all commit messages.
Reviewable status: all files reviewed, 8 unresolved discussions (waiting on @tmontaigu)
ci/perf_regression.py
line 524 at r2 (raw file):
# Between +/- MINOR_CHANGE_SCALE_FACTOR * Std_dev we consider there is no change self.change_type = PerfChange.NoChange if self.head_branch_value < self.baseline_mean - minor_threshold:
elif ?
ci/perf_regression.py
line 548 at r2 (raw file):
def convert_value_to_readable_text(value: float, max_digits=3):
value_nanos
.github/workflows/benchmark_perf_regression.yml
line 51 at r2 (raw file):
issues: write # Needed to react to a comment in a pull-request pull-requests: write
do you need both ? when you say react it's to comment/answer ?
.github/workflows/benchmark_perf_regression.yml
line 73 at r2 (raw file):
- name: Install Python requirements run: | python3 -m pip install -r ci/perf_regression_requirements.txt
maybe even creat a dedicated subdir ?
.github/workflows/benchmark_perf_regression.yml
line 307 at r2 (raw file):
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: fetch-depth: 0
to be checked elsewhere : we may not need the full depth
.github/workflows/benchmark_perf_regression.yml
line 326 at r2 (raw file):
--hardware "${HARDWARE_NAME}" \ --branch "${REF_NAME}" \ --time-span 60
--time-span-days ? to make it clear those are days
.github/workflows/benchmark_perf_regression.yml
line 351 at r2 (raw file):
name: benchmark_perf_regression/comment-on-failure runs-on: ubuntu-latest if: ${{ failure() && github.event_name == 'issue_comment' }}
you probably need a "needs" directive to be able to check the previous status
ci/data_extractor/src/connector.py
line 62 at r2 (raw file):
def _override_with_env(self): self.host = os.environ.get("DATABASE_HOST", self.host)
maybe make the env var a bit more specific to your code
3003061
to
eefd1ce
Compare
No performance regression detected. 🎉
View All Benchmarks
|
eefd1ce
to
cafe49a
Compare
f6f0768
to
0e755a0
Compare
0e755a0
to
27fe6d8
Compare
27fe6d8
to
ffc55b0
Compare
ffc55b0
to
1a232a2
Compare
No performance regression detected. 🎉
View All Benchmarks
|
1a232a2
to
129977c
Compare
3dd2a9e
to
3bc6052
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One tiny thing
@IceTDrinker reviewed 3 of 8 files at r3, 3 of 4 files at r4, 2 of 2 files at r6, 2 of 2 files at r7, all commit messages.
Reviewable status: all files reviewed, 2 unresolved discussions (waiting on @tmontaigu)
ci/data_extractor/src/benchmark_specs.py
line 100 at r7 (raw file):
case "ks_pbs": return CoreCryptoOperation.KeyswitchPBS case "multi_bit_ks_pbs" | "multi_bit_deterministic_ks_pbs":
to be checked with a newer PR that gets rid of it
.github/workflows/benchmark_perf_regression.yml
line 49 at r7 (raw file):
permissions: # # Needed to react to benchmark command in issue comment # issues: write
comment to remove then ?
After running performances regression benchmarks, a performance changes checking is executed. It will fetch results data with an external tool then it will look for anomaly in changes. Finally it will produce a report as an issue comment with any anomaly display in a Markdown array. A folded section of the report message contains all the results from the benchmark. Note that a fully custom benchmark triggered from an issue comment would not generate a report. In addition HPU performance regression benchmark is not supported yet.
3bc6052
to
0976b1a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewable status: all files reviewed, 1 unresolved discussion (waiting on @IceTDrinker and @tmontaigu)
.github/workflows/benchmark_perf_regression.yml
line 51 at r2 (raw file):
Previously, IceTDrinker (Arthur Meyre) wrote…
do you need both ? when you say react it's to comment/answer ?
I removed the pull-requests
permission since it's just to react to an existing issue comment.
To test that, this code needs to be in main
. We'll see how it unfolds.
ci/data_extractor/src/benchmark_specs.py
line 100 at r7 (raw file):
Previously, IceTDrinker (Arthur Meyre) wrote…
to be checked with a newer PR that gets rid of it
The PR you're referring to is not concerned by this change.
This is intended to cover all cases from data_extractor point of view.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Huge achievement, thanks a lot !!!
@IceTDrinker reviewed 1 of 1 files at r8, all commit messages.
Reviewable status:complete! all files reviewed, all discussions resolved (waiting on @IceTDrinker and @tmontaigu)
go for mege! |
After running performances regression benchmarks, a performance changes checking is executed. It will fetch results data with an external tool then it will look for anomaly in changes. Finally it will produce a report as an issue comment with any anomaly display in a Markdown array. A folded section of the report message contains all the results from the benchmark.
Note that a fully custom benchmark triggered from an issue comment would not generate a report. In addition HPU performance regression benchmark is not supported yet.
closes: please link all relevant issues
PR content/description
Check-list:
This change is