Implement PoT proving and verification optimized for AES (aarch64)#3561
Implement PoT proving and verification optimized for AES (aarch64)#3561
Conversation
teor2345
left a comment
There was a problem hiding this comment.
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.
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.
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: