dla-future: add v0.2.0 (#39705)
This commit is contained in:
parent
acb02326aa
commit
34e4c62e8c
@ -14,20 +14,36 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
git = "https://github.com/eth-cscs/DLA-Future.git"
|
git = "https://github.com/eth-cscs/DLA-Future.git"
|
||||||
maintainers = ["rasolca", "albestro", "msimberg", "aurianer"]
|
maintainers = ["rasolca", "albestro", "msimberg", "aurianer"]
|
||||||
|
|
||||||
|
version("0.2.0", sha256="da73cbd1b88287c86d84b1045a05406b742be924e65c52588bbff200abd81a10")
|
||||||
version("0.1.0", sha256="f7ffcde22edabb3dc24a624e2888f98829ee526da384cd752b2b271c731ca9b1")
|
version("0.1.0", sha256="f7ffcde22edabb3dc24a624e2888f98829ee526da384cd752b2b271c731ca9b1")
|
||||||
version("master", branch="master")
|
version("master", branch="master")
|
||||||
|
|
||||||
variant("shared", default=True, description="Build shared libraries.")
|
variant("shared", default=True, description="Build shared libraries.")
|
||||||
|
|
||||||
|
variant(
|
||||||
|
"hdf5",
|
||||||
|
default=False,
|
||||||
|
when="@0.2.0:",
|
||||||
|
description="HDF5 support for dealing with matrices on disk.",
|
||||||
|
)
|
||||||
|
|
||||||
variant("doc", default=False, description="Build documentation.")
|
variant("doc", default=False, description="Build documentation.")
|
||||||
|
|
||||||
variant("miniapps", default=False, description="Build miniapps.")
|
variant("miniapps", default=False, description="Build miniapps.")
|
||||||
|
|
||||||
|
variant(
|
||||||
|
"scalapack",
|
||||||
|
default=False,
|
||||||
|
when="@0.2.0:",
|
||||||
|
description="Build C API compatible with ScaLAPACK",
|
||||||
|
)
|
||||||
|
|
||||||
depends_on("cmake@3.22:", type="build")
|
depends_on("cmake@3.22:", type="build")
|
||||||
depends_on("doxygen", type="build", when="+doc")
|
depends_on("doxygen", type="build", when="+doc")
|
||||||
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("scalapack", when="+scalapack")
|
||||||
|
|
||||||
depends_on("umpire~examples")
|
depends_on("umpire~examples")
|
||||||
depends_on("umpire~cuda", when="~cuda")
|
depends_on("umpire~cuda", when="~cuda")
|
||||||
@ -36,7 +52,8 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
depends_on("umpire+rocm~shared", when="+rocm")
|
depends_on("umpire+rocm~shared", when="+rocm")
|
||||||
depends_on("umpire@4.1.0:")
|
depends_on("umpire@4.1.0:")
|
||||||
|
|
||||||
depends_on("pika@0.15.1:")
|
depends_on("pika@0.15.1:", when="@0.1")
|
||||||
|
depends_on("pika@0.16:", when="@0.2.0:")
|
||||||
depends_on("pika-algorithms@0.1:")
|
depends_on("pika-algorithms@0.1:")
|
||||||
depends_on("pika +mpi")
|
depends_on("pika +mpi")
|
||||||
depends_on("pika +cuda", when="+cuda")
|
depends_on("pika +cuda", when="+cuda")
|
||||||
@ -52,6 +69,8 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
depends_on("rocsolver", when="+rocm")
|
depends_on("rocsolver", when="+rocm")
|
||||||
depends_on("rocthrust", when="+rocm")
|
depends_on("rocthrust", when="+rocm")
|
||||||
|
|
||||||
|
depends_on("hdf5 +cxx+mpi+threadsafe+shared", when="+hdf5")
|
||||||
|
|
||||||
conflicts("+cuda", when="+rocm")
|
conflicts("+cuda", when="+rocm")
|
||||||
|
|
||||||
with when("+rocm"):
|
with when("+rocm"):
|
||||||
@ -92,16 +111,29 @@ def cmake_args(self):
|
|||||||
"openmp": "omp",
|
"openmp": "omp",
|
||||||
"tbb": "tbb",
|
"tbb": "tbb",
|
||||||
} # Map MKL variants to LAPACK target name
|
} # Map MKL variants to LAPACK target name
|
||||||
|
mkl_threads = vmap[spec["intel-mkl"].variants["threads"].value]
|
||||||
# TODO: Generalise for intel-oneapi-mkl
|
# TODO: Generalise for intel-oneapi-mkl
|
||||||
args += [
|
args += [
|
||||||
self.define("DLAF_WITH_MKL", True),
|
self.define("DLAF_WITH_MKL", True),
|
||||||
self.define(
|
self.define("MKL_LAPACK_TARGET", f"mkl::mkl_intel_32bit_{mkl_threads}_dyn"),
|
||||||
"MKL_LAPACK_TARGET",
|
|
||||||
"mkl::mkl_intel_32bit_{0}_dyn".format(
|
|
||||||
vmap[spec["intel-mkl"].variants["threads"].value]
|
|
||||||
),
|
|
||||||
),
|
|
||||||
]
|
]
|
||||||
|
if "+scalapack" in spec:
|
||||||
|
if (
|
||||||
|
"^mpich" in spec
|
||||||
|
or "^cray-mpich" in spec
|
||||||
|
or "^intel-mpi" in spec
|
||||||
|
or "^mvapich" in spec
|
||||||
|
or "^mvapich2" in spec
|
||||||
|
):
|
||||||
|
mkl_mpi = "mpich"
|
||||||
|
elif "^openmpi" in spec:
|
||||||
|
mkl_mpi = "ompi"
|
||||||
|
args.append(
|
||||||
|
self.define(
|
||||||
|
"MKL_SCALAPACK_TARGET",
|
||||||
|
f"mkl::scalapack_{mkl_mpi}_intel_32bit_{mkl_threads}_dyn",
|
||||||
|
)
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
args.append(self.define("DLAF_WITH_MKL", False))
|
args.append(self.define("DLAF_WITH_MKL", False))
|
||||||
args.append(
|
args.append(
|
||||||
@ -110,6 +142,11 @@ def cmake_args(self):
|
|||||||
" ".join([spec[dep].libs.ld_flags for dep in ["blas", "lapack"]]),
|
" ".join([spec[dep].libs.ld_flags for dep in ["blas", "lapack"]]),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
if "+scalapack" in spec:
|
||||||
|
args.append(self.define("SCALAPACK_LIBRARY", spec["scalapack"].libs.ld_flags))
|
||||||
|
|
||||||
|
if "+scalapack" in spec:
|
||||||
|
args.append(self.define_from_variant("DLAF_WITH_SCALAPACK", "scalapack"))
|
||||||
|
|
||||||
# CUDA/HIP
|
# CUDA/HIP
|
||||||
args.append(self.define_from_variant("DLAF_WITH_CUDA", "cuda"))
|
args.append(self.define_from_variant("DLAF_WITH_CUDA", "cuda"))
|
||||||
@ -125,6 +162,9 @@ def cmake_args(self):
|
|||||||
arch_str = ";".join(archs)
|
arch_str = ";".join(archs)
|
||||||
args.append(self.define("CMAKE_CUDA_ARCHITECTURES", arch_str))
|
args.append(self.define("CMAKE_CUDA_ARCHITECTURES", arch_str))
|
||||||
|
|
||||||
|
# HDF5 support
|
||||||
|
args.append(self.define_from_variant("DLAF_WITH_HDF5", "hdf5"))
|
||||||
|
|
||||||
# DOC
|
# DOC
|
||||||
args.append(self.define_from_variant("DLAF_BUILD_DOC", "doc"))
|
args.append(self.define_from_variant("DLAF_BUILD_DOC", "doc"))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user