-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Criterion benchmarks hang with target-cpu=znver1 #65618
Comments
Unable to reproduce on my 1st gen Ryzen 1700 with nightly:
|
Unable to reproduce with stable compiler on 2400G or 2700 either. |
I'm on a Threadripper 1950X. Could the number of threads (32 in this case) affect it? Another thought, does any part of Criterion rely on atomic values? Could be something odd with how code is generated and interacts with the multi-chip Threadripper. |
Cannot reproduce on 2700X using nightly linux-gnu and windows-gnu with the command |
Ah, I should have specified I'm on the MSVC toolchain ( I can confirm this does not appear on GNU toolchains, only MSVC. |
Same here with an AMD R7 1800X and
I took a quick look at llvm changes since 9.0.0, but nothing seems related. llvm/llvm-project@llvmorg-9.0.0...release/9.x At some point the producer variable is broken in rayon helper method (iter/plumbing/mod.rs). producer value is : Things are working fine with Here are the generated set of instructions of iter/plumbing/mod.rs I hope I didn't focus on the wrong method. |
Couldn't this be related to #64609 ? |
I just run cargo bench on the beta and nightly channel and it works fine. |
I think it's different because this one unlike #64609 doesn't appear with |
@mati865 I think you are right, and the part where I think there is a misscompilation is inlined. How can we validate beta/nightly actually fixes this and it's not pure luck due to some minor change in how rust output things? |
Probably I don't know to move forward. cc @eddyb |
Well I already reduced the incriminated code to the helper function which use a set of both xmm and ymm. |
This appears to have been caused by #63959, so it's fixed for me now. This could probably be closed now. |
On my system, a Zen 1 AMD CPU, attempting to run Criterion benchmarks with
RUSTFLAGS = "-C target-cpu=znver1"
results in the benchmark hanging at theAnalyzing
stage for a few minutes before I killed the program.Without the flags, it doesn't hang at all, as expected.
This affects stable, beta and nightly, and is probably related to LLVM 9.
Code that can hang on stable:
using
cargo +stable bench
No special flags are present in the
Cargo.toml
The text was updated successfully, but these errors were encountered: