summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Johnson <glenn-johnson@uiowa.edu>2020-09-17 10:04:21 -0500
committerGitHub <noreply@github.com>2020-09-17 10:04:21 -0500
commit2576d8d7677edc5c3473fb5af903591884bf7780 (patch)
tree144fa9cbb39e5d47e3fc11a8a2c76fa523872974
parent0f332c73a6835a2fe978e35d63ae13cc5b5212ff (diff)
downloadspack-2576d8d7677edc5c3473fb5af903591884bf7780.tar.gz
spack-2576d8d7677edc5c3473fb5af903591884bf7780.tar.bz2
spack-2576d8d7677edc5c3473fb5af903591884bf7780.tar.xz
spack-2576d8d7677edc5c3473fb5af903591884bf7780.zip
Update libbeagle (#18703)
This PR fixes a couple of things with the libbeagle package. - libbeagle can only be built for one GPU type. Add a test for that. - version 2 had the arch statement in libhmsbeagle/GPU/kernels/Makefile.am but version 3 has it in configure.ac. Put the variant specified value in configure.ac for consistency.
-rw-r--r--var/spack/repos/builtin/packages/libbeagle/package.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/var/spack/repos/builtin/packages/libbeagle/package.py b/var/spack/repos/builtin/packages/libbeagle/package.py
index 968dcc00e4..a3ad61d363 100644
--- a/var/spack/repos/builtin/packages/libbeagle/package.py
+++ b/var/spack/repos/builtin/packages/libbeagle/package.py
@@ -29,16 +29,24 @@ class Libbeagle(AutotoolsPackage, CudaPackage):
def patch(self):
# update cuda architecture if necessary
if '+cuda' in self.spec:
- arch = self.spec.variants['cuda_arch'].value
+ cuda_arch = self.spec.variants['cuda_arch'].value
archflag = ''
- if arch[0] != 'none':
- archflag = '-arch=%s' % arch[0]
+ if cuda_arch != 'none':
+ if len(cuda_arch) > 1:
+ raise InstallError(
+ 'libbeagle only supports compilation for a single GPU'
+ 'type.'
+ )
+ archflag = '-arch compute_{0}'.format(cuda_arch[0])
- filter_file('-arch compute_13', archflag,
+ filter_file('-arch compute_13', '',
'libhmsbeagle/GPU/kernels/Makefile.am',
string=True)
+ filter_file(r'(NVCCFLAGS="-O3).*(")',
+ r'\1 {0}\2'.format(archflag), 'configure.ac')
+
# point CUDA_LIBS to libcuda.so
filter_file('-L$with_cuda/lib', '-L$with_cuda/lib64/stubs',
'configure.ac', string=True)