dbcsr: add v2.7.0 and +g2g variant (#45501)
Co-authored-by: RMeli <RMeli@users.noreply.github.com>
This commit is contained in:
parent
fa38dd9386
commit
5650d4d419
@ -19,6 +19,7 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
license("GPL-2.0-or-later")
|
license("GPL-2.0-or-later")
|
||||||
|
|
||||||
version("develop", branch="develop")
|
version("develop", branch="develop")
|
||||||
|
version("2.7.0", sha256="25c367b49fb108c5230bcfb127f05fc16deff2bb467f437023dfa6045aff66f6")
|
||||||
version("2.6.0", sha256="c67b02ff9abc7c1f529af446a9f01f3ef9e5b0574f220259128da8d5ca7e9dc6")
|
version("2.6.0", sha256="c67b02ff9abc7c1f529af446a9f01f3ef9e5b0574f220259128da8d5ca7e9dc6")
|
||||||
version("2.5.0", sha256="91fda9b2502e5d0a2a6cdd5a73ef096253cc7e75bd01ba5189a4726ad86aef08")
|
version("2.5.0", sha256="91fda9b2502e5d0a2a6cdd5a73ef096253cc7e75bd01ba5189a4726ad86aef08")
|
||||||
version("2.4.1", sha256="b3d5ae62ca582b72707a2c932e8074a4f2f61d61085d97bd374213c70b8dbdcf")
|
version("2.4.1", sha256="b3d5ae62ca582b72707a2c932e8074a4f2f61d61085d97bd374213c70b8dbdcf")
|
||||||
@ -55,6 +56,9 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
variant("opencl", default=False, description="Enable OpenCL backend")
|
variant("opencl", default=False, description="Enable OpenCL backend")
|
||||||
variant("mpi_f08", default=False, when="@2.6:", description="Use mpi F08 module")
|
variant("mpi_f08", default=False, when="@2.6:", description="Use mpi F08 module")
|
||||||
|
|
||||||
|
variant("g2g", default=False, description="GPU-aware MPI with CUDA/HIP")
|
||||||
|
conflicts("+g2g", when="~cuda ~rocm", msg="GPU-aware MPI requires +cuda or +rocm")
|
||||||
|
|
||||||
depends_on("blas")
|
depends_on("blas")
|
||||||
depends_on("lapack")
|
depends_on("lapack")
|
||||||
depends_on("mpi", when="+mpi")
|
depends_on("mpi", when="+mpi")
|
||||||
@ -84,7 +88,7 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
# for optimal kernels. Note that we don't override the parent class arch
|
# for optimal kernels. Note that we don't override the parent class arch
|
||||||
# properties, since the parent class defines constraints for different archs
|
# properties, since the parent class defines constraints for different archs
|
||||||
# Instead just mark all unsupported cuda archs as conflicting.
|
# Instead just mark all unsupported cuda archs as conflicting.
|
||||||
dbcsr_cuda_archs = ("35", "37", "60", "70", "80")
|
dbcsr_cuda_archs = ("35", "37", "60", "70", "80", "90")
|
||||||
cuda_msg = "dbcsr only supports cuda_arch {0}".format(dbcsr_cuda_archs)
|
cuda_msg = "dbcsr only supports cuda_arch {0}".format(dbcsr_cuda_archs)
|
||||||
|
|
||||||
for arch in CudaPackage.cuda_arch_values:
|
for arch in CudaPackage.cuda_arch_values:
|
||||||
@ -152,7 +156,14 @@ def cmake_args(self):
|
|||||||
if self.spec.satisfies("+cuda"):
|
if self.spec.satisfies("+cuda"):
|
||||||
cuda_arch = self.spec.variants["cuda_arch"].value[0]
|
cuda_arch = self.spec.variants["cuda_arch"].value[0]
|
||||||
|
|
||||||
gpu_map = {"35": "K40", "37": "K80", "60": "P100", "70": "V100", "80": "A100"}
|
gpu_map = {
|
||||||
|
"35": "K40",
|
||||||
|
"37": "K80",
|
||||||
|
"60": "P100",
|
||||||
|
"70": "V100",
|
||||||
|
"80": "A100",
|
||||||
|
"90": "H100",
|
||||||
|
}
|
||||||
|
|
||||||
gpuver = gpu_map[cuda_arch]
|
gpuver = gpu_map[cuda_arch]
|
||||||
if cuda_arch == "35" and self.spec.satisfies("+cuda_arch_35_k20x"):
|
if cuda_arch == "35" and self.spec.satisfies("+cuda_arch_35_k20x"):
|
||||||
|
Loading…
Reference in New Issue
Block a user