-
Notifications
You must be signed in to change notification settings - Fork 58
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
Allow building without -march=native
. Consider supporting builds for systems without SSE4.1.
#189
Comments
Snippet of
Error when building without
Looking at workarounds for Homebrew in Homebrew/homebrew-core#117835 |
commit 2883ced adds an option to disable SSE build ( |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Currently, BEAGLE will always build with
-march=native
when the compiler supports it:beagle-lib/CMakeLists.txt
Line 14 in 2af9116
beagle-lib/CMakeLists.txt
Lines 119 to 123 in 2af9116
This makes it trickier to distribute binaries as users' systems may need to minimally match SIMD support of host.
In Homebrew, this may be the reason why we are occasionally hitting segfaults when testing packages that use BEAGLE (e.g. BEAST and MrBayes).
When experimenting with disabling
BEAGLE_OPTIMIZE_FOR_NATIVE_ARCH
, I saw the compilation would fail on_mm_dp_pd
:beagle-lib/libhmsbeagle/CPU/BeagleCPU4StateSSEImpl.hpp
Line 62 in 2af9116
This appears to be a SSE4.1 intrinsic. So, when I removed
-march=native
, build was missing-msse4.1
needed to use the intrinsic.In older BEAGLE releases, there was support for disabling SSE2:
beagle-lib/configure.ac
Line 315 in 35bbe78
It would be nice to allow compiling without SSE4.1.
Specifically, in Homebrew, we want to build Linux binaries for Core2 (up to SSSE3) and macOS binaries for Nehalem (up to SSE4.2).
The text was updated successfully, but these errors were encountered: