builtin.repo: fix ^mkl pattern in minor packages (#41003)

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
This commit is contained in:
Massimiliano Culpo 2023-11-10 17:18:24 +01:00 committed by Todd Gamblin
parent 74172fb9d2
commit f6dc557764
15 changed files with 22 additions and 16 deletions

View file

@ -79,7 +79,7 @@ def cmake_args(self):
] ]
args.append(self.define("CUDA_architecture_build_targets", arch_list)) args.append(self.define("CUDA_architecture_build_targets", arch_list))
if "^mkl" in self.spec: if self.spec["blas"].name in INTEL_MATH_LIBRARIES:
if self.version >= Version("3.8.0"): if self.version >= Version("3.8.0"):
args.append(self.define("AF_COMPUTE_LIBRARY", "Intel-MKL")) args.append(self.define("AF_COMPUTE_LIBRARY", "Intel-MKL"))
else: else:

View file

@ -48,7 +48,7 @@ def edit(self, spec, prefix):
if spec["blas"].name == "openblas": if spec["blas"].name == "openblas":
env["OPENBLAS"] = "1" env["OPENBLAS"] = "1"
if "^mkl" in spec: elif spec["blas"].name in INTEL_MATH_LIBRARIES:
env["MKL"] = "1" env["MKL"] = "1"
env["MKL_BASE"] = spec["mkl"].prefix.mkl env["MKL_BASE"] = spec["mkl"].prefix.mkl
else: else:

View file

@ -23,7 +23,7 @@ class Batchedblas(MakefilePackage):
def edit(self, spec, prefix): def edit(self, spec, prefix):
CCFLAGS = [self.compiler.openmp_flag, "-I./", "-O3"] CCFLAGS = [self.compiler.openmp_flag, "-I./", "-O3"]
BLAS = ["-lm", spec["blas"].libs.ld_flags] BLAS = ["-lm", spec["blas"].libs.ld_flags]
if not spec.satisfies("^mkl"): if spec["blas"].name not in INTEL_MATH_LIBRARIES:
CCFLAGS.append("-D_CBLAS_") CCFLAGS.append("-D_CBLAS_")
if spec.satisfies("%intel"): if spec.satisfies("%intel"):
CCFLAGS.extend(["-Os"]) CCFLAGS.extend(["-Os"])

View file

@ -40,7 +40,7 @@ def url_for_version(self, version):
def configure_args(self): def configure_args(self):
config_args = [] config_args = []
if "^mkl" in self.spec: if self.spec["fftw-api"].name in INTEL_MATH_LIBRARIES:
config_args.extend( config_args.extend(
[ [
"--enable-mkl", "--enable-mkl",

View file

@ -44,6 +44,9 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
depends_on("mpi") depends_on("mpi")
depends_on("blaspp@2022.05.00:") depends_on("blaspp@2022.05.00:")
depends_on("lapackpp@2022.05.00:") depends_on("lapackpp@2022.05.00:")
depends_on("blas")
depends_on("lapack")
depends_on("scalapack", when="+scalapack") depends_on("scalapack", when="+scalapack")
depends_on("umpire~examples") depends_on("umpire~examples")
@ -107,7 +110,7 @@ def cmake_args(self):
args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared")) args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared"))
# BLAS/LAPACK # BLAS/LAPACK
if "^mkl" in spec: if self.spec["lapack"].name in INTEL_MATH_LIBRARIES:
vmap = { vmap = {
"none": "seq", "none": "seq",
"openmp": "omp", "openmp": "omp",

View file

@ -83,7 +83,7 @@ def edit(self, spec, prefix):
filter_file(r"^\s*F90\s*=.*", "F90=" + spack_fc, *files) filter_file(r"^\s*F90\s*=.*", "F90=" + spack_fc, *files)
# patch for 64 bit integers # patch for 64 bit integers
if "^mkl+ilp64" in spec: if spec["mkl"].satisfies("+ilp64"):
setuphelper = FileFilter(join_path(self.build_directory, "PYTHON", "setuphelper.py")) setuphelper = FileFilter(join_path(self.build_directory, "PYTHON", "setuphelper.py"))
setuphelper.filter("mkl 64bit integer 32bit", "mkl 64bit integer 64bit") setuphelper.filter("mkl 64bit integer 32bit", "mkl 64bit integer 64bit")

View file

@ -118,7 +118,10 @@ def edit(self, spec, prefix):
lin_alg_libs.append(join_path(spec["fftw-api"].prefix.lib, "libsfftw_mpi.so")) lin_alg_libs.append(join_path(spec["fftw-api"].prefix.lib, "libsfftw_mpi.so"))
lin_alg_libs.append(join_path(spec["fftw-api"].prefix.lib, "libsfftw.so")) lin_alg_libs.append(join_path(spec["fftw-api"].prefix.lib, "libsfftw.so"))
elif self.spec.variants["fft"].value == "mkl" and "^mkl" in spec: elif (
self.spec.variants["fft"].value == "mkl"
and spec["fftw-api"].name in INTEL_MATH_LIBRARIES
):
mklroot = env["MKLROOT"] mklroot = env["MKLROOT"]
self.config["@LAINC@"] += " -I{0}".format(join_path(mklroot, "include/fftw")) self.config["@LAINC@"] += " -I{0}".format(join_path(mklroot, "include/fftw"))
libfftw2x_cdft = join_path( libfftw2x_cdft = join_path(

View file

@ -71,7 +71,7 @@ class Itk(CMakePackage):
) )
def cmake_args(self): def cmake_args(self):
use_mkl = "^mkl" in self.spec use_mkl = self.spec["fftw-api"].name in INTEL_MATH_LIBRARIES
args = [ args = [
self.define("BUILD_SHARED_LIBS", True), self.define("BUILD_SHARED_LIBS", True),
self.define("ITK_USE_SYSTEM_LIBRARIES", True), self.define("ITK_USE_SYSTEM_LIBRARIES", True),

View file

@ -33,8 +33,8 @@ class Ldak(Package):
requires("target=x86_64:", when="~glpk", msg="bundled qsopt is only for x86_64") requires("target=x86_64:", when="~glpk", msg="bundled qsopt is only for x86_64")
requires( requires(
"^mkl",
"^openblas", "^openblas",
*[f"^{intel_pkg}" for intel_pkg in INTEL_MATH_LIBRARIES],
policy="one_of", policy="one_of",
msg="Only mkl or openblas are supported for blas/lapack with ldak", msg="Only mkl or openblas are supported for blas/lapack with ldak",
) )

View file

@ -78,7 +78,7 @@ def edit(self, spec, prefix):
flags["PREFIX"] = prefix flags["PREFIX"] = prefix
# Set LAPACK and SCALAPACK # Set LAPACK and SCALAPACK
if "^mkl" in spec: if spec["lapack"].name not in INTEL_MATH_LIBRARIES:
flags["LAPACK"] = self._get_mkl_ld_flags(spec) flags["LAPACK"] = self._get_mkl_ld_flags(spec)
else: else:
flags["LAPACK"] = spec["lapack"].libs.ld_flags + " " + spec["blas"].libs.ld_flags flags["LAPACK"] = spec["lapack"].libs.ld_flags + " " + spec["blas"].libs.ld_flags
@ -105,7 +105,7 @@ def edit(self, spec, prefix):
if "+scalapack" in spec: if "+scalapack" in spec:
flags["CPPFLAGS"] = flags.get("CPPFLAGS", "") + " -DHAVE_SCALAPACK -DHAVE_MPI " flags["CPPFLAGS"] = flags.get("CPPFLAGS", "") + " -DHAVE_SCALAPACK -DHAVE_MPI "
if "^mkl" in spec: if spec["lapack"].name in INTEL_MATH_LIBRARIES:
flags["CPPFLAGS"] = flags.get("CPPFLAGS", "") + " -DHAVE_MKL " flags["CPPFLAGS"] = flags.get("CPPFLAGS", "") + " -DHAVE_MKL "
# Write configuration file # Write configuration file

View file

@ -223,7 +223,7 @@ def write_makefile_inc(self):
# As of version 5.2.0, MUMPS is able to take advantage # As of version 5.2.0, MUMPS is able to take advantage
# of the GEMMT BLAS extension. MKL and amdblis are the only # of the GEMMT BLAS extension. MKL and amdblis are the only
# known BLAS implementation supported. # known BLAS implementation supported.
if "@5.2.0: ^mkl" in self.spec: if self.spec["blas"].name in INTEL_MATH_LIBRARIES and self.spec.satifies("@5.2.0:"):
optf.append("-DGEMMT_AVAILABLE") optf.append("-DGEMMT_AVAILABLE")
if "@5.2.0: ^amdblis@3.0:" in self.spec: if "@5.2.0: ^amdblis@3.0:" in self.spec:

View file

@ -167,7 +167,7 @@ def configure_args(self):
config_args = [] config_args = []
# Required dependencies # Required dependencies
if "^mkl" in spec and "gfortran" in self.compiler.fc: if spec["lapack"].name in INTEL_MATH_LIBRARIES and "gfortran" in self.compiler.fc:
mkl_re = re.compile(r"(mkl_)intel(_i?lp64\b)") mkl_re = re.compile(r"(mkl_)intel(_i?lp64\b)")
config_args.extend( config_args.extend(
[ [

View file

@ -159,7 +159,7 @@ def configure_args(self):
if "^fftw" in spec: if "^fftw" in spec:
args.append("--with-fftw-prefix=%s" % spec["fftw"].prefix) args.append("--with-fftw-prefix=%s" % spec["fftw"].prefix)
elif "^mkl" in spec: elif spec["fftw-api"].name in INTEL_MATH_LIBRARIES:
# As of version 10.0, Octopus depends on fftw-api instead # As of version 10.0, Octopus depends on fftw-api instead
# of FFTW. If FFTW is not in the dependency tree, then # of FFTW. If FFTW is not in the dependency tree, then
# it ought to be MKL as it is currently the only providers # it ought to be MKL as it is currently the only providers

View file

@ -93,7 +93,7 @@ def cmake_args(self):
# Work around spack issue #19970 where spack sets # Work around spack issue #19970 where spack sets
# rpaths for MKL just during make, but cmake removes # rpaths for MKL just during make, but cmake removes
# them during make install. # them during make install.
if "^mkl" in self.spec: if self.spec["lapack"].name in INTEL_MATH_LIBRARIES:
args.append("-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON") args.append("-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON")
spec = self.spec spec = self.spec
args.append(self.define("BLAS_LIBRARIES", spec["blas"].libs.joined(";"))) args.append(self.define("BLAS_LIBRARIES", spec["blas"].libs.joined(";")))

View file

@ -376,7 +376,7 @@ def cmake_args(self):
# Next two environment variables were introduced in QMCPACK 3.5.0 # Next two environment variables were introduced in QMCPACK 3.5.0
# Prior to v3.5.0, these lines should be benign but CMake # Prior to v3.5.0, these lines should be benign but CMake
# may issue a warning. # may issue a warning.
if "^mkl" in spec: if spec["lapack"].name in INTEL_MATH_LIBRARIES:
args.append("-DENABLE_MKL=1") args.append("-DENABLE_MKL=1")
args.append("-DMKL_ROOT=%s" % env["MKLROOT"]) args.append("-DMKL_ROOT=%s" % env["MKLROOT"])
else: else: