-
Notifications
You must be signed in to change notification settings - Fork 555
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
Improve lagrange retrieval performance & remove unsafes #16272
Improve lagrange retrieval performance & remove unsafes #16272
Conversation
!ci-build-me |
da94561
to
d9dbb02
Compare
!ci-build-me |
1 similar comment
!ci-build-me |
d9dbb02
to
f5c89f3
Compare
!ci-build-me |
Do you mean we are paying ~100ms less but now we have a new race condition because a thread becomes too fast and accesses a resource? Then I am not sure we should merge this before we solve the other problem first 🤔 |
|
t | ||
-> int | ||
-> Pasta_bindings.Fq.t Kimchi_types.or_infinity Kimchi_types.poly_comm | ||
array = "caml_fp_srs_lagrange_commitments_whole_domain" |
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.
I find it a bit confusing that the one using Pasta_bindings.Fq.t
is called caml_fp_srs_lagrange...
, but I see this is the format being followed across this file so I suppose that notation is expected.
!ci-run-nightly |
!ci-nightly-me |
I will check if nightlies pass first, and merge if they do. I'm fairly confident it's OK but I'm also not in a hurry. |
Nightlies seem to pass (I did it twice) except for "Publish Mina for Bullseye" which fails due to some unrelated debian thing. Merging. |
_lagrange_commitments_whole_domain
that is to be used instead of calling_lagrange_commitment
(that retrieves a single base)domain_size
times._build/default/src/app/cli/src/mina.exe transaction-snark-profiler --zkapps --k 1 --max-num-updates 4 --min-num-updates 2
:unsafe
s that are not anymore necessary since SRS is now wrapped in aMutex
(which should beRWLock
really).Caveat: this change plus some amount of debug printing invokes a completely different deadlocking bug with me where the verifier process no longer starts. This seems to be triggered by the code becoming faster, so some race condition is triggered.I managed to reproduce the deadlock over
compatible
too: o1-labs/proof-systems#2728