-
Notifications
You must be signed in to change notification settings - Fork 800
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
disable XXH64 autovectorization #924
Conversation
using a compiler fence (like XXH32). XXH64 has been reported to be auto-vectorized on AVX512 architecture. Like XXH32, it's generally a bad idea to vectorize XXH64. However, in order to test, or if the result differ for newer cpus, it's possible to disable the fence by using XXH_ENABLE_AUTOVECTORIZE build variable.
@TocarIP : if you have the time,
It's difficult for me to access cpus with |
I've patched this into zstd, and can confirm that everything is WAI. I haven't run benchmarks, just looked at the asm, but that should be enough, thanks for the fix! |
I could get access to some systems with AVX512 enabled : a Tiger Lake mini laptop, and a Zen4 NUC.
So the only disappointing part was the inability to get |
backport fix Cyan4973/xxHash#924 from libxxhash
backport fix Cyan4973/xxHash#924 from libxxhash
backport fix Cyan4973/xxHash#924 from libxxhash
using a compiler fence (like
XXH32
).XXH64
has been reported to be auto-vectorized onAVX512
architecture (with recentclang
compilers).Like
XXH32
, it's generally a bad idea to vectorizeXXH64
. So disable it, using the same technique.However, in order to test, or if the results differ for newer cpus, it's also possible to disable the fence by using
XXH_ENABLE_AUTOVECTORIZE
build variable.fix #897