-
Notifications
You must be signed in to change notification settings - Fork 13.4k
32x performance regression for AVX2 intrinsics in Rust v1.87 #142603
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
Labels
A-SIMD
Area: SIMD (Single Instruction Multiple Data)
C-bug
Category: This is a bug.
regression-from-stable-to-stable
Performance or correctness regression from one stable version to another.
T-libs
Relevant to the library team, which will review and decide on the PR/issue.
Comments
Does this repro on nightly? |
It is not an issue on the latest nightly:
|
beta:
sorry for the inconvenience, please wait ~10 days for this to be fixed! |
Do we have any idea what caused/fixed this? I initially thought it might be #139029, but that shouldn't affect the avx2 code working on __m256i, right? |
I was thinking the same thing at first - but you are correct, #135408 only touched vector types up to 128 bits. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-SIMD
Area: SIMD (Single Instruction Multiple Data)
C-bug
Category: This is a bug.
regression-from-stable-to-stable
Performance or correctness regression from one stable version to another.
T-libs
Relevant to the library team, which will review and decide on the PR/issue.
Reproduction steps
On AVX2-capable CPUs, on Rust 1.86 you can see the AVX2 codepath is performing well, at or above the SSE3 level.
On Rust 1.87 performance collapses completely, with the AVX2 implementation being the slowest, behind even the scalar implementation.
SSE2, SSE3 and AVX-512 are not affected.
The
simd-adler32
crate uses runtime feature detection and explicit AVX2 intrinsics from std::arch.Version it worked on
1.86
Version with regression
1.87
rustc --version --verbose
:The text was updated successfully, but these errors were encountered: