-
Notifications
You must be signed in to change notification settings - Fork 531
Make AVX512IFMA opt-in backend #695
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
Make AVX512IFMA opt-in backend #695
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.
Thank you! Left some small nits here and there
Ok this seems good to me, thoughts @tarcieri ? |
Thanks again! |
Can this be reverted considering AVX512 was stabilized in Rust and AVX10/256 is no longer a thing. The impact of this change is very substantial on modern AVX512-capable CPUs. |
@nazar-pc a simple revert won't help, since that just goes back to The code instead needs to actually be updated to support |
Since Requiring Maybe extending feature check to |
Autodetecting nightly is antipattern that has caused massive ecosystem breakages (see e.g. ahash). We had several people from rust-core lecture us that we should not be doing it |
Closes #694 #635 #693
Provides
cfg(curve25519_dalek_backend = "unstable_avx512")
Errors
Note: I avoided whole lot of any(curve25519_dalek_backend = "simd", curve25519_dalek_backend = "unstable_avx512") gating because compilre allows multi-value per cfg-key where we emit "simd" in addition to unstable_avx512 when potential use validated giving AVX2 fallback through simd.
If it's desirable to instead have explicit gating then let me know - but it pollutes a lot of gating.