Skip to content
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

Add AVX 512 support #3

Open
hkratz opened this issue Apr 21, 2021 · 3 comments
Open

Add AVX 512 support #3

hkratz opened this issue Apr 21, 2021 · 3 comments
Labels
enhancement New feature or request

Comments

@hkratz
Copy link
Contributor

hkratz commented Apr 21, 2021

  • Use 256-bit registers.
  • Use masked load if possible
@hkratz hkratz added the enhancement New feature or request label Apr 21, 2021
@hkratz
Copy link
Contributor Author

hkratz commented Apr 26, 2021

AVX-512 intrinsics are currently nightly only and the speedup potential is unclear. Furthermore AVX throttling needs be taken into consideration.

@lemire
Copy link
Contributor

lemire commented Apr 27, 2021

Throttling is a concern but presumably only on wide (512-bit) registers as @travisdowns explained well in his answer. Stick with 256-bit and you'll be fine (in this instance, there are no heavy instructions involved).

@travisdowns
Copy link

Newer client chips (e.g. Ice, Tiger and Rocket Lakes) work a bit differently (heavy vs light distinction disappears, only width seems to matter) but regardless Daniel's advice still applies: you shouldn't see license-based throttling with 256-bit ops.

@hkratz hkratz changed the title Add x86-64 avx512 support Add AVX 512 support May 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants