From 909f185f02dbcbb7bbe201eec4d64f7265bd4493 Mon Sep 17 00:00:00 2001 From: Taillefumier Mathieu <29380261+mtaillefumier@users.noreply.github.com> Date: Tue, 18 Jul 2023 11:48:42 +0200 Subject: Update dbcsr and cp2k to latest version (#38939) Co-authored-by: Mikael Simberg --- var/spack/repos/builtin/packages/cp2k/package.py | 1 + var/spack/repos/builtin/packages/dbcsr/package.py | 32 +++++++++++++++-------- 2 files changed, 22 insertions(+), 11 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py index 6f012bdf4c..20d8d45323 100644 --- a/var/spack/repos/builtin/packages/cp2k/package.py +++ b/var/spack/repos/builtin/packages/cp2k/package.py @@ -252,6 +252,7 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage): with when("build_system=cmake"): depends_on("dbcsr") + depends_on("dbcsr@2.6:", when="@2023.2:") depends_on("dbcsr+openmp", when="+openmp") depends_on("dbcsr+cuda", when="+cuda") depends_on("dbcsr+rocm", when="+rocm") diff --git a/var/spack/repos/builtin/packages/dbcsr/package.py b/var/spack/repos/builtin/packages/dbcsr/package.py index df0a6035e9..57ff0b5a40 100644 --- a/var/spack/repos/builtin/packages/dbcsr/package.py +++ b/var/spack/repos/builtin/packages/dbcsr/package.py @@ -14,9 +14,10 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage): url = "https://github.com/cp2k/dbcsr/releases/download/v2.2.0/dbcsr-2.2.0.tar.gz" list_url = "https://github.com/cp2k/dbcsr/releases" - maintainers("dev-zero") + maintainers("dev-zero", "mtaillefumier") version("develop", branch="develop") + version("2.6.0", sha256="c67b02ff9abc7c1f529af446a9f01f3ef9e5b0574f220259128da8d5ca7e9dc6") version("2.5.0", sha256="91fda9b2502e5d0a2a6cdd5a73ef096253cc7e75bd01ba5189a4726ad86aef08") version("2.4.1", sha256="b3d5ae62ca582b72707a2c932e8074a4f2f61d61085d97bd374213c70b8dbdcf") version("2.4.0", sha256="cf2b774328c9a30677501f49b79955841bd08915a7ca53c8533bfdf14a8f9bd4") @@ -45,15 +46,20 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage): ) variant("opencl", default=False, description="Enable OpenCL backend") + variant("mpi_f08", default=False, when="@2.6:", description="Use mpi F08 module") depends_on("blas") depends_on("lapack") depends_on("mpi", when="+mpi") depends_on("libxsmm@1.11:~header-only", when="smm=libxsmm") - depends_on("cmake@3.17:", type="build", when="@2.1:") depends_on("cmake@3.10:", type="build") + depends_on("cmake@3.12:", type="build", when="@2.1:") + depends_on("cmake@3.17:", type="build", when="@2.2:") + depends_on("cmake@3.22:", type="build", when="@2.3:") + depends_on("py-fypp", type="build") + depends_on("py-fypp@3.1:", type="build", when="@2.6:") depends_on("pkgconfig", type="build") depends_on("python@3.6:", type="build", when="+cuda") @@ -65,7 +71,7 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage): # for optimal kernels. Note that we don't override the parent class arch # properties, since the parent class defines constraints for different archs # Instead just mark all unsupported cuda archs as conflicting. - dbcsr_cuda_archs = ("35", "37", "60", "70") + dbcsr_cuda_archs = ("35", "37", "60", "70", "80") cuda_msg = "dbcsr only supports cuda_arch {0}".format(dbcsr_cuda_archs) for arch in CudaPackage.cuda_arch_values: @@ -74,7 +80,7 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage): conflicts("+cuda", when="cuda_arch=none", msg=cuda_msg) - dbcsr_amdgpu_targets = "gfx906" + dbcsr_amdgpu_targets = {"gfx906", "gfx910", "gfx90a", "gfx90a:xnack-", "gfx90a:xnack+"} amd_msg = "DBCSR only supports amdgpu_target {0}".format(dbcsr_amdgpu_targets) for arch in ROCmPackage.amdgpu_targets: @@ -124,13 +130,9 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage): if self.spec.satisfies("+cuda"): cuda_arch = self.spec.variants["cuda_arch"].value[0] - gpu_map = {"35": "K40", "37": "K80", "60": "P100", "70": "V100"} - - if "@2.3:" in spec: - gpu_map["80"] = "A100" + gpu_map = {"35": "K40", "37": "K80", "60": "P100", "70": "V100", "80": "A100"} gpuver = gpu_map[cuda_arch] - if cuda_arch == "35" and self.spec.satisfies("+cuda_arch_35_k20x"): gpuver = "K20X" @@ -138,14 +140,22 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage): if self.spec.satisfies("+rocm"): amd_arch = self.spec.variants["amdgpu_target"].value[0] - - gpuver = {"gfx906": "Mi50"}[amd_arch] + gpuver = { + "gfx906": "Mi50", + "gfx908": "Mi100", + "gfx90a": "Mi250", + "gfx90a:xnack-": "Mi250", + "gfx90a:xnack+": "Mi250", + }[amd_arch] args += ["-DWITH_GPU={0}".format(gpuver), "-DUSE_ACCEL=hip"] if self.spec.satisfies("+opencl"): args += ["-DUSE_ACCEL=opencl"] + if self.spec.satisfies("+mpi_f08"): + args += ["-DUSE_MPI_F08=ON"] + return args def check(self): -- cgit v1.2.3-60-g2f50