Disable py-numpy AVX512 instructions when compiled with Intel (#47941)
* Disable numpy AVX512 when compiled with Intel classic * Add py-numpy v1.26.5 * Add patch to handle AVX512 conversions * Remove unneeded patch. * Remove unnecessary tag * Move blas_config_settings to config_settings * Cleaned up blas settings
This commit is contained in:
parent
690a6045a9
commit
ec286e857f
@ -316,7 +316,8 @@ def blas_lapack_pkg_config(self) -> Tuple[str, str]:
|
|||||||
@when("@1.26:")
|
@when("@1.26:")
|
||||||
def config_settings(self, spec, prefix):
|
def config_settings(self, spec, prefix):
|
||||||
blas, lapack = self.blas_lapack_pkg_config()
|
blas, lapack = self.blas_lapack_pkg_config()
|
||||||
return {
|
|
||||||
|
settings = {
|
||||||
"builddir": "build",
|
"builddir": "build",
|
||||||
"compile-args": f"-j{make_jobs}",
|
"compile-args": f"-j{make_jobs}",
|
||||||
"setup-args": {
|
"setup-args": {
|
||||||
@ -330,6 +331,22 @@ def config_settings(self, spec, prefix):
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Disable AVX512 features for Intel Classic compilers
|
||||||
|
# https://numpy.org/doc/stable/reference/simd/build-options.html
|
||||||
|
# https://github.com/numpy/numpy/issues/27840
|
||||||
|
# https://github.com/matplotlib/matplotlib/issues/28762
|
||||||
|
archs = ("x86_64_v4:", "cannonlake:", "mic_knl")
|
||||||
|
if any([self.spec.satisfies(f"target={arch} %intel") for arch in archs]):
|
||||||
|
intel_setup_args = {
|
||||||
|
"-Dcpu-dispatch": (
|
||||||
|
"MAX -AVX512F -AVX512CD -AVX512_KNL -AVX512_KNM -AVX512_SKX "
|
||||||
|
+ "-AVX512_CLX -AVX512_CNL -AVX512_ICL -AVX512_SPR"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
settings["setup-args"].update(intel_setup_args)
|
||||||
|
|
||||||
|
return settings
|
||||||
|
|
||||||
def blas_lapack_site_cfg(self) -> None:
|
def blas_lapack_site_cfg(self) -> None:
|
||||||
"""Write a site.cfg file to configure BLAS/LAPACK."""
|
"""Write a site.cfg file to configure BLAS/LAPACK."""
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
|
Loading…
Reference in New Issue
Block a user