-
-
Notifications
You must be signed in to change notification settings - Fork 480
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
Improve SAGE_FAT_BINARY for openblas #22179
Comments
comment:1
I guess it is, but we don't offer binaries for other CPUs at this stage do we? |
comment:3
From the readme: Support for multiple targets in a single library OpenBLAS can be built for multiple targets with runtime detection of the target cpu by specifiying DYNAMIC_ARCH=1 in Makefile.rule, on the gmake command line or as -DDYNAMIC_ARCH=TRUE in cmake. For x86_64, the list of targets this activates contains Prescott, Core2, Nehalem, Barcelona, Sandybridge, Bulldozer, Piledriver, Steamroller, Excavator, Haswell, Zen, SkylakeX. For cpu generations not included in this list, the corresponding older model is used. If you also specify DYNAMIC_OLDER=1, specific support for Penryn, Dunnington, Opteron, Opteron/SSE3, Bobcat, Atom and Nano is added. Finally there is an option DYNAMIC_LIST that allows to specify an individual list of targets to include instead of the default. DYNAMIC_ARCH is also supported on x86, where it translates to Katmai, Coppermine, Northwood, Prescott, Banias, Core2, Penryn, Dunnington, Nehalem, Athlon, Opteron, Opteron_SSE3, Barcelona, Bobcat, Atom and Nano. On ARMV8, it enables support for CortexA53, CortexA57, CortexA72, CortexA73, Falkor, ThunderX, ThunderX2T99, TSV110 as well as generic ARMV8 cpus. For POWER, the list encompasses POWER6, POWER8 and POWER9, on ZARCH it comprises Z13 and Z14. The TARGET option can be used in conjunction with DYNAMIC_ARCH=1 to specify which cpu model should be assumed for all the common code in the library, usually you will want to set this to the oldest model you expect to encounter. Please note that it is not possible to combine support for different architectures, so no combined 32 and 64 bit or x86_64 and arm64 in the same library. |
New commits:
|
This comment has been minimized.
This comment has been minimized.
Commit: |
Author: Matthias Koeppe |
Changed reviewer from https://github.com/mkoeppe/sage/actions/runs/458445502 to Jonathan Kliem |
comment:6
LGTM and this is exactly what the README tells us to do. |
comment:7
Thanks! |
Changed branch from u/mkoeppe/improve_sage_fat_binary_for_openblas to |
Changed commit from |
comment:9
Follow up in #29537 |
At the moment it unconditionally passes TARGET=PRESCOTT.
This is unfortunate on non x86 CPUs.
We replace it by
DYNAMIC_ARCH=1
, which will work for non-x86 - and also give better performance for x86_64.CC: @vbraun @jdemeyer @kliem
Component: packages: standard
Author: Matthias Koeppe
Branch:
75c9d68
Reviewer: Jonathan Kliem
Issue created by migration from https://trac.sagemath.org/ticket/22179
The text was updated successfully, but these errors were encountered: