summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/amrex/package.py
diff options
context:
space:
mode:
authormic84 <mrosso@lbl.gov>2021-01-13 18:53:57 -0800
committerGitHub <noreply@github.com>2021-01-13 18:53:57 -0800
commitf6dd85b2b0d80316b9cbcebe7d0e88fc7c0459c3 (patch)
tree7a6ee9eb224f08b02157b2e8a7bea993a5521213 /var/spack/repos/builtin/packages/amrex/package.py
parent4f49b1a9301447a8cf880c99820cad65e5c2d7e3 (diff)
downloadspack-f6dd85b2b0d80316b9cbcebe7d0e88fc7c0459c3.tar.gz
spack-f6dd85b2b0d80316b9cbcebe7d0e88fc7c0459c3.tar.bz2
spack-f6dd85b2b0d80316b9cbcebe7d0e88fc7c0459c3.tar.xz
spack-f6dd85b2b0d80316b9cbcebe7d0e88fc7c0459c3.zip
amrex: fix handling of CUDA arch (#20786)
* amrex: fix handling of CUDA arch * amrex: fix style * amrex: fix bug * Update var/spack/repos/builtin/packages/amrex/package.py * Update var/spack/repos/builtin/packages/amrex/package.py Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Diffstat (limited to 'var/spack/repos/builtin/packages/amrex/package.py')
-rw-r--r--var/spack/repos/builtin/packages/amrex/package.py23
1 files changed, 12 insertions, 11 deletions
diff --git a/var/spack/repos/builtin/packages/amrex/package.py b/var/spack/repos/builtin/packages/amrex/package.py
index c0f75af44a..d3414e575e 100644
--- a/var/spack/repos/builtin/packages/amrex/package.py
+++ b/var/spack/repos/builtin/packages/amrex/package.py
@@ -121,6 +121,14 @@ class Amrex(CMakePackage, CudaPackage):
url = "https://github.com/AMReX-Codes/amrex/archive/{0}.tar.gz"
return url.format(version.dotted)
+ def get_cuda_arch_string(self, values):
+ if 'none' in values:
+ return 'Auto'
+ else:
+ # Use format x.y instead of CudaPackage xy format
+ vf = tuple(float(x) / 10.0 for x in values)
+ return ';'.join(str(x) for x in vf)
+
#
# For versions <= 20.11
#
@@ -152,11 +160,8 @@ class Amrex(CMakePackage, CudaPackage):
args.append('-DCMAKE_Fortran_MODDIR_FLAG=-M')
if '+cuda' in self.spec:
- cuda_arch = spec.variants['cuda_arch'].value
- if cuda_arch == 'none':
- args.append('-DCUDA_ARCH=Auto')
- else:
- args.append('-DCUDA_ARCH={0}'.format(cuda_arch[0]))
+ cuda_arch = self.spec.variants['cuda_arch'].value
+ args.append('-DCUDA_ARCH=' + self.get_cuda_arch_string(cuda_arch))
return args
@@ -192,11 +197,7 @@ class Amrex(CMakePackage, CudaPackage):
args.append('-DAMReX_GPU_BACKEND=CUDA')
args.append('-DAMReX_CUDA_ERROR_CAPTURE_THIS=ON')
args.append('-DAMReX_CUDA_ERROR_CROSS_EXECUTION_SPACE_CALL=ON')
-
- cuda_arch = spec.variants['cuda_arch'].value
- if cuda_arch == 'none':
- args.append('-DAMReX_CUDA_ARCH=Auto')
- else:
- args.append('-DAMReX_CUDA_ARCH={0}'.format(cuda_arch[0]))
+ cuda_arch = self.spec.variants['cuda_arch'].value
+ args.append('-DCUDA_ARCH=' + self.get_cuda_arch_string(cuda_arch))
return args