diff options
author | Pieter Ghysels <pghysels@lbl.gov> | 2020-11-12 06:57:44 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-12 08:57:44 -0600 |
commit | d1493fb3d86653d8b11aeacd3e24af94f50ec03c (patch) | |
tree | 7953054c2eff777e1943e028688c97e09114278c /var | |
parent | 821b195ba4f6893002b569036f5bdb29369bd727 (diff) | |
download | spack-d1493fb3d86653d8b11aeacd3e24af94f50ec03c.tar.gz spack-d1493fb3d86653d8b11aeacd3e24af94f50ec03c.tar.bz2 spack-d1493fb3d86653d8b11aeacd3e24af94f50ec03c.tar.xz spack-d1493fb3d86653d8b11aeacd3e24af94f50ec03c.zip |
SuperLU-Dist: Add CUDA variant (#19847)
* Add CUDA support to superlu-dist
* Use spec['cuda'].libs.directories[0] iso spec['cuda'].prefix.lib
so it works for both lib and lib64
The suggested:
args.append('-DTPL_CUDA_LIBRARIES=' +
spec['cuda'].libs.ld_flags)
did not work because it does not link with cuBLAS.
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/superlu-dist/package.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/var/spack/repos/builtin/packages/superlu-dist/package.py b/var/spack/repos/builtin/packages/superlu-dist/package.py index 476890944b..0450347301 100644 --- a/var/spack/repos/builtin/packages/superlu-dist/package.py +++ b/var/spack/repos/builtin/packages/superlu-dist/package.py @@ -6,7 +6,7 @@ from spack import * -class SuperluDist(CMakePackage): +class SuperluDist(CMakePackage, CudaPackage): """A general purpose library for the direct solution of large, sparse, nonsymmetric systems of linear equations on high performance machines.""" @@ -14,7 +14,7 @@ class SuperluDist(CMakePackage): url = "https://github.com/xiaoyeli/superlu_dist/archive/v6.0.0.tar.gz" git = "https://github.com/xiaoyeli/superlu_dist.git" - maintainers = ['xiaoye', 'gchavez2', 'balay'] + maintainers = ['xiaoye', 'gchavez2', 'balay', 'pghysels'] version('develop', branch='master') version('xsdk-0.2.0', tag='xsdk-0.2.0') @@ -44,6 +44,8 @@ class SuperluDist(CMakePackage): depends_on('parmetis') depends_on('metis@5:') + conflicts('+cuda', when='@:6.3.999') + patch('xl-611.patch', when='@:6.1.1 %xl') patch('xl-611.patch', when='@:6.1.1 %xl_r') @@ -78,6 +80,15 @@ class SuperluDist(CMakePackage): args.append('-Denable_openmp=OFF') args.append('-DCMAKE_DISABLE_FIND_PACKAGE_OpenMP=ON') + if '+cuda' in spec: + args.append('-DTPL_ENABLE_CUDALIB=TRUE') + args.append('-DTPL_CUDA_LIBRARIES=-L%s -lcublas -lcudart' + % spec['cuda'].libs.directories[0]) + cuda_arch = spec.variants['cuda_arch'].value + if cuda_arch[0] != 'none': + args.append( + '-DCMAKE_CUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0])) + if '+shared' in spec: args.append('-DBUILD_SHARED_LIBS:BOOL=ON') else: |