From d61e54b4c7da6ceaee098447f6d1baa5ee4e1668 Mon Sep 17 00:00:00 2001 From: Cody Balos Date: Mon, 4 Apr 2022 01:12:56 -0700 Subject: sundials: add magma variant (#29844) --- var/spack/repos/builtin/packages/sundials/package.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/var/spack/repos/builtin/packages/sundials/package.py b/var/spack/repos/builtin/packages/sundials/package.py index 758edaafdd..4831d85a88 100644 --- a/var/spack/repos/builtin/packages/sundials/package.py +++ b/var/spack/repos/builtin/packages/sundials/package.py @@ -107,6 +107,8 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage): description='Enable KLU sparse, direct solver') variant('petsc', default=False, description='Enable PETSc interfaces') + variant('magma', default=False, when='@5.7.0:', + description='Enable MAGMA interface') variant('superlu-mt', default=False, description='Enable SuperLU_MT sparse, direct solver') variant('superlu-dist', default=False, @@ -206,6 +208,7 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage): depends_on('hypre+mpi+int64', when='@5.7.1: +hypre +int64') depends_on('hypre@:2.22.0+mpi~int64', when='@:5.7.0 +hypre ~int64') depends_on('hypre@:2.22.0+mpi+int64', when='@:5.7.0 +hypre +int64') + depends_on('magma', when='+magma') depends_on('petsc+mpi', when='+petsc') depends_on('suite-sparse', when='+klu') depends_on('superlu-dist@6.1.1:', when='@:5.4.0 +superlu-dist') @@ -350,6 +353,17 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage): args.append(define('LAPACK_LIBRARIES', spec['lapack'].libs + spec['blas'].libs)) + # Building with MAGMA + if '+magma' in spec: + args.extend([ + define('ENABLE_MAGMA', True), + define('MAGMA_DIR', spec['magma'].prefix) + ]) + if '+cuda' in spec: + define('SUNDIALS_MAGMA_BACKENDS', 'CUDA') + if '+rocm' in spec: + define('SUNDIALS_MAGMA_BACKENDS', 'HIP') + # Building with PETSc if '+petsc' in spec: if spec.version >= Version('5'): -- cgit v1.2.3-60-g2f50