-
Notifications
You must be signed in to change notification settings - Fork 238
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
feat(ssa): More aggressive Brillig loop unrolling #7236
base: master
Are you sure you want to change the base?
Conversation
Changes to number of Brillig opcodes executed
🧾 Summary (10% most significant diffs)
Full diff report 👇
|
Changes to Brillig bytecode sizes
🧾 Summary (10% most significant diffs)
Full diff report 👇
|
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.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Execution Memory'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20
.
Benchmark suite | Current: 259b2ee | Previous: 0c6c637 | Ratio |
---|---|---|---|
rollup-block-root |
4910 MB |
1230 MB |
3.99 |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
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.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Test Suite Duration'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20
.
Benchmark suite | Current: 259b2ee | Previous: 0c6c637 | Ratio |
---|---|---|---|
noir-lang_schnorr_ |
1 s |
0 s |
+∞ |
noir-lang_noir_string_search_ |
1 s |
0 s |
+∞ |
noir-lang_mimc_ |
1 s |
0 s |
+∞ |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
Just a small improvement in execution speed then 😆 |
tooling/nargo_cli/build.rs
Outdated
@@ -198,8 +198,8 @@ fn test_{test_name}(force_brillig: ForceBrillig, inliner_aggressiveness: Inliner | |||
nargo.arg("--force-brillig"); | |||
|
|||
// Set the maximum increase so that part of the optimization is exercised (it might fail). | |||
nargo.arg("--max-bytecode-increase-percent"); | |||
nargo.arg("50"); | |||
// nargo.arg("--max-bytecode-increase-percent"); |
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.
Noting that as we unroll more loops, this is potentially going to lead to panics. When we have a non-aggressive inliner the compiler is not going to have yet resolved certain intrinsics which we expect to be entirely known at compile-time (e.g. DerivePedersenGenerators).
This'll still be configurable via |
Do you mean Yes this will still be configurable. We will have to experiment a bit with what a good default target, as the changes definitely result in too-large of bytecode increases in some cases in my opinion. Right now we default to this flag not being set, although we do test for it in |
Description
Problem*
Resolves #7099
Summary*
Still a draft, needs lots of cleanup and tests, but I want to see the reports on CI.
Additional Context
Documentation*
Check one:
PR Checklist*
cargo fmt
on default settings.