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

sync devel #9

Merged
merged 99 commits into from
Mar 4, 2024
Merged

sync devel #9

merged 99 commits into from
Mar 4, 2024

Conversation

k-dominik
Copy link

No description provided.

Sven Peter and others added 30 commits June 20, 2016 17:13
…etests does not exactly do the right thing though...
…ctory for the test step, as required by newer versions of conda
Make building with -ofast non-default option
added USE_SIMDE_ON_ARM variable, that activates SIMDE headers if set
* conditional execution of compilation flags for non-simde builds
* only include the most "advanced" instruction variants on arm
  (so exclude anything avx if avx2 or avx+fma is there.
* cpu.c variants for intel (arm will be added later) copied dynamically
with "fake" functions that all return true if queried for cpu features.
With SIMDE we want to use the most "advanced" versions always, so all
features are enabled at runtime.
for arm we can omit all the magic that compiles for different kinds of
simd instruction sets like avx, avx2 is done for intel. For arm we use
simde with the avx2 instruction set versions.

Hence, this commit adds two switches to the cmake interface:
* `USE_SIMDE_ON_ARM`: to activate using SIMDE to translate to whatever
  target architecture (that is supported)
* `APPLE_ARM64`: for explicit clang targeting m1/m2 compilation flags
  foreseeing that it might be slightly different for arch64

Then, throughout the code, there are now splattered `_USE_SIMDE_ON_ARM_`
conditionals. E.g., the various `*_init` functions that would check for
certain processor capabilities at runtime to activate the most effective
code path. These all point to the avx2 versions when SIMDE is active.

All in all not very pretty - might want to clean this up a bit in the
future...
@k-dominik k-dominik merged commit 064d0e6 into main Mar 4, 2024
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants