-
Notifications
You must be signed in to change notification settings - Fork 254
Implement PoT proving and verification optimized for AES (aarch64) #3561
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
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.
Looks good, the locations of constants aren't a blocker
use core::slice; | ||
use subspace_core_primitives::pot::{PotCheckpoints, PotOutput}; | ||
|
||
const NUM_ROUND_KEYS: usize = 11; |
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.
Can we put this constant in the containing module, rather than repeating it in each module?
(Same question for other constants in this file.)
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 was a little less comfortable because this is a platform-specific file, so extracting it somewhere would require annoying cfg()
conditions. The rest of constants are specific to aarch64 and not shared with x86-64, intrinsics behave slightly differently here, which also confused me at first.
Two tests hanged on macOS:
Would be nice for someone to dedicate time to fix these flaky tests, they fail way too often for my liking. |
Same macOS test issue as #3535 (comment) Seems like the 2025-05-31 nightly compiler or 2024 edition caused some instability in the macOS tests. We don't know which because they were combined into a single PR. |
Well, if it reproduces more reliably we can kind of call it a good thing, easier to debug that way |
Running on M4 Max:
|
Surprisingly good proving time with a solid improvement for both, nice! |
This is a backport of nazar-pc/abundance#270 and follow-up to #3552
Curious what difference it makes on Apple Silicon.
Code contributor checklist: