summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorG-Ragghianti <33492707+G-Ragghianti@users.noreply.github.com>2021-05-13 04:32:31 -0400
committerGitHub <noreply@github.com>2021-05-13 10:32:31 +0200
commit8a40a3a70f734045154c1c71f53fc679c8bfa404 (patch)
tree0e92988e87519cf569c7200b14ac49627b4c74ed /var
parentf8740c8c759ac8e8d4b7749628273254ea83894e (diff)
downloadspack-8a40a3a70f734045154c1c71f53fc679c8bfa404.tar.gz
spack-8a40a3a70f734045154c1c71f53fc679c8bfa404.tar.bz2
spack-8a40a3a70f734045154c1c71f53fc679c8bfa404.tar.xz
spack-8a40a3a70f734045154c1c71f53fc679c8bfa404.zip
slate: add v2021.05.01 (#23612)
Adds a new release version for SLATE and includes HIP/ROCm backend support. Now can build with either CUDA or ROCm support.
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/slate/package.py27
1 files changed, 20 insertions, 7 deletions
diff --git a/var/spack/repos/builtin/packages/slate/package.py b/var/spack/repos/builtin/packages/slate/package.py
index 9e7b5b3c7e..711a145af8 100644
--- a/var/spack/repos/builtin/packages/slate/package.py
+++ b/var/spack/repos/builtin/packages/slate/package.py
@@ -6,7 +6,7 @@
from spack import *
-class Slate(CMakePackage):
+class Slate(CMakePackage, CudaPackage, ROCmPackage):
"""The Software for Linear Algebra Targeting Exascale (SLATE) project is
to provide fundamental dense linear algebra capabilities to the US
Department of Energy and to the high-performance computing (HPC) community
@@ -21,20 +21,22 @@ class Slate(CMakePackage):
maintainers = ['G-Ragghianti', 'mgates3']
version('master', branch='master')
+ version('2021.05.01', sha256='d9db2595f305eb5b1b49a77cc8e8c8e43c3faab94ed910d8387c221183654218')
version('2020.10.00', sha256='ff58840cdbae2991d100dfbaf3ef2f133fc2f43fc05f207dc5e38a41137882ab')
- variant('cuda', default=False, description='Build with CUDA support.')
- variant('mpi', default=True, description='Build with MPI support.')
+ variant('mpi', default=True, description='Build with MPI support (without MPI is experimental).')
variant('openmp', default=True, description='Build with OpenMP support.')
variant('shared', default=True, description='Build shared library')
- depends_on('cuda', when='+cuda')
depends_on('mpi', when='+mpi')
depends_on('blas')
depends_on('blaspp ~cuda', when='~cuda')
depends_on('blaspp +cuda', when='+cuda')
- depends_on('lapackpp')
- depends_on('lapackpp@2020.10.02:', when='@2020.10.00')
+ depends_on('blaspp ~rocm', when='~rocm')
+ for val in ROCmPackage.amdgpu_targets:
+ depends_on('blaspp +rocm amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
+ depends_on('lapackpp@2021.04.00:', when='@2021.05.01:')
+ depends_on('lapackpp@2020.10.02', when='@2020.10.00')
depends_on('lapackpp@master', when='@master')
depends_on('scalapack')
@@ -43,14 +45,25 @@ class Slate(CMakePackage):
conflicts('%xl', msg=cpp_17_msg)
conflicts('%xl_r', msg=cpp_17_msg)
conflicts('%intel@19:', msg='Does not currently build with icpc >= 2019')
+ conflicts('+rocm', when='@:2020.10.00', msg='ROCm support requires SLATE 2021.05.01 or greater')
+ conflicts('+rocm', when='+cuda', msg='SLATE only supports one GPU backend at a time')
def cmake_args(self):
spec = self.spec
+ backend_config = '-Duse_cuda=%s' % ('+cuda' in spec)
+ if self.version >= Version('2021.05.01'):
+ backend = 'none'
+ if '+cuda' in spec:
+ backend = 'cuda'
+ if '+rocm' in spec:
+ backend = 'hip'
+ backend_config = '-Dgpu_backend=%s' % backend
+
return [
'-Dbuild_tests=%s' % self.run_tests,
'-Duse_openmp=%s' % ('+openmp' in spec),
'-DBUILD_SHARED_LIBS=%s' % ('+shared' in spec),
- '-Duse_cuda=%s' % ('+cuda' in spec),
+ backend_config,
'-Duse_mpi=%s' % ('+mpi' in spec),
'-DSCALAPACK_LIBRARIES=%s' % spec['scalapack'].libs.joined(';')
]