summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/superlu-dist/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/superlu-dist/package.py')
-rw-r--r--var/spack/repos/builtin/packages/superlu-dist/package.py18
1 files changed, 16 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 9d5704ac12..943cfb5d8e 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, CudaPackage):
+class SuperluDist(CMakePackage, CudaPackage, ROCmPackage):
"""A general purpose library for the direct solution of large, sparse,
nonsymmetric systems of linear equations on high performance machines."""
@@ -16,9 +16,10 @@ class SuperluDist(CMakePackage, CudaPackage):
tags = ['e4s']
- maintainers = ['xiaoye', 'gchavez2', 'balay', 'pghysels']
+ maintainers = ['xiaoye', 'gchavez2', 'balay', 'pghysels', 'liuyangzhuan']
version('develop', branch='master')
+ version('amd', branch='amd')
version('7.1.1', sha256='558053b3d4a56eb661c4f04d4fcab6604018ce5db97115394c161b56c9c278ff')
version('7.1.0', sha256='edbea877562be95fb22c7de1ff484f18685bec4baa8e4f703c414d3c035d4a66')
version('6.4.0', sha256='cb9c0b2ba4c28e5ed5817718ba19ae1dd63ccd30bc44c8b8252b54f5f04a44cc')
@@ -47,7 +48,10 @@ class SuperluDist(CMakePackage, CudaPackage):
depends_on('parmetis')
depends_on('metis@5:')
depends_on('cmake@3.18.1:', type='build', when='@7.1.0:')
+ depends_on('hipblas', when='+rocm')
+ depends_on('rocsolver', when='+rocm')
+ conflicts('+rocm', when='+cuda')
conflicts('+cuda', when='@:6.3')
conflicts('^cuda@11.5.0:', when='@7.1.0:')
@@ -61,6 +65,7 @@ class SuperluDist(CMakePackage, CudaPackage):
'-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
'-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
'-DCMAKE_INSTALL_LIBDIR:STRING=%s' % self.prefix.lib,
+ '-DCMAKE_INSTALL_BINDIR:STRING=%s' % self.prefix.bin,
'-DTPL_BLAS_LIBRARIES=%s' % spec['blas'].libs.joined(";"),
'-DTPL_LAPACK_LIBRARIES=%s' % spec['lapack'].libs.joined(";"),
'-DUSE_XSDK_DEFAULTS=YES',
@@ -95,6 +100,15 @@ class SuperluDist(CMakePackage, CudaPackage):
args.append(
'-DCMAKE_CUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0]))
+ if '+rocm' in spec and spec.satisfies('@amd'):
+ args.append('-DTPL_ENABLE_HIPLIB=TRUE')
+ args.append(
+ '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix))
+ rocm_archs = spec.variants['amdgpu_target'].value
+ if 'none' not in rocm_archs:
+ args.append('-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.
+ format(",".join(rocm_archs)))
+
if '+shared' in spec:
args.append('-DBUILD_SHARED_LIBS:BOOL=ON')
else: