From 645faad37977708bad97c7337e9625a93898ce94 Mon Sep 17 00:00:00 2001 From: Glenn Johnson Date: Mon, 16 Jan 2023 07:13:40 -0600 Subject: cp2k: add v2022.2, update CUDA settings (#34757) --- var/spack/repos/builtin/packages/cp2k/package.py | 29 ++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 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 452fd8c552..11d6daad5e 100644 --- a/var/spack/repos/builtin/packages/cp2k/package.py +++ b/var/spack/repos/builtin/packages/cp2k/package.py @@ -23,6 +23,7 @@ class Cp2k(MakefilePackage, CudaPackage): maintainers = ["dev-zero"] + version("2022.2", sha256="1a473dea512fe264bb45419f83de432d441f90404f829d89cbc3a03f723b8354") version("2022.1", sha256="2c34f1a7972973c62d471cd35856f444f11ab22f2ff930f6ead20f3454fd228b") version("9.1", sha256="fedb4c684a98ad857cd49b69a3ae51a73f85a9c36e9cb63e3b02320c74454ce6") version("8.2", sha256="2e24768720efed1a5a4a58e83e2aca502cd8b95544c21695eb0de71ed652f20a") @@ -242,6 +243,10 @@ class Cp2k(MakefilePackage, CudaPackage): when="@8.2", ) + def url_for_version(self, version): + url = "https://github.com/cp2k/cp2k/releases/download/v{0}/cp2k-{0}.tar.bz2" + return url.format(version) + @property def makefile_architecture(self): return "{0.architecture}-{0.compiler.name}".format(self.spec) @@ -569,6 +574,9 @@ class Cp2k(MakefilePackage, CudaPackage): ] if spec.satisfies("@9:"): + if spec.satisfies("@2022:"): + cppflags += ["-D__OFFLOAD_CUDA"] + acc_compiler_var = "OFFLOAD_CC" acc_flags_var = "OFFLOAD_FLAGS" cppflags += [ @@ -577,6 +585,15 @@ class Cp2k(MakefilePackage, CudaPackage): "-DOFFLOAD_TARGET=cuda", ] libs += ["-lcublas"] + + if spec.satisfies("+cuda_fft"): + if spec.satisfies("@:9"): + cppflags += ["-D__PW_CUDA"] + + libs += ["-lcufft"] + else: + if spec.satisfies("@2022:"): + cppflags += ["-D__NO_OFFLOAD_PW"] else: acc_compiler_var = "NVCC" acc_flags_var = "NVFLAGS" @@ -587,9 +604,9 @@ class Cp2k(MakefilePackage, CudaPackage): else: cppflags += ["-D__DBCSR_ACC"] - if spec.satisfies("+cuda_fft"): - cppflags += ["-D__PW_CUDA"] - libs += ["-lcufft", "-lcublas"] + if spec.satisfies("+cuda_fft"): + cppflags += ["-D__PW_CUDA"] + libs += ["-lcufft", "-lcublas"] cuda_arch = spec.variants["cuda_arch"].value[0] if cuda_arch: @@ -762,7 +779,11 @@ class Cp2k(MakefilePackage, CudaPackage): to generate and override entire libcp2k.pc. """ if self.spec.satisfies("@9.1:"): - with open(join_path(self.prefix.lib.pkgconfig, "libcp2k.pc"), "r+") as handle: + pkgconfig_file = join_path(self.prefix.lib.pkgconfig, "libcp2k.pc") + filter_file(r"(^includedir=).*", r"\1{0}".format(self.prefix.include), pkgconfig_file) + filter_file(r"(^libdir=).*", r"\1{0}".format(self.prefix.lib), pkgconfig_file) + + with open(pkgconfig_file, "r+") as handle: content = handle.read().rstrip() content += " " + self.spec["blas"].libs.ld_flags -- cgit v1.2.3-70-g09d2