summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorHarmen Stoppels <harmenstoppels@gmail.com>2020-08-11 17:01:49 +0200
committerGitHub <noreply@github.com>2020-08-11 17:01:49 +0200
commit313511bf1dfa302d22c9e3492d2ae1e003784230 (patch)
treeedf5bcf755197afd1ed4cc592e6269fb43a30450 /var
parent09cc89a4498b58f2bd199ea486e0cc6757a911f6 (diff)
downloadspack-313511bf1dfa302d22c9e3492d2ae1e003784230.tar.gz
spack-313511bf1dfa302d22c9e3492d2ae1e003784230.tar.bz2
spack-313511bf1dfa302d22c9e3492d2ae1e003784230.tar.xz
spack-313511bf1dfa302d22c9e3492d2ae1e003784230.zip
elpa: add cuda support, add libtool dep, fix parallel build failure (#17969)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/elpa/package.py23
1 files changed, 20 insertions, 3 deletions
diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py
index 182432d12b..66054e434f 100644
--- a/var/spack/repos/builtin/packages/elpa/package.py
+++ b/var/spack/repos/builtin/packages/elpa/package.py
@@ -8,7 +8,7 @@ import os
from spack import *
-class Elpa(AutotoolsPackage):
+class Elpa(AutotoolsPackage, CudaPackage):
"""Eigenvalue solvers for Petaflop-Applications (ELPA)"""
homepage = 'http://elpa.mpcdf.mpg.de/'
@@ -34,6 +34,7 @@ class Elpa(AutotoolsPackage):
depends_on('blas')
depends_on('lapack')
depends_on('scalapack')
+ depends_on('libtool', type='build')
def url_for_version(self, version):
t = 'http://elpa.mpcdf.mpg.de/html/Releases/{0}/elpa-{0}.tar.gz'
@@ -62,13 +63,13 @@ class Elpa(AutotoolsPackage):
return hlist
build_directory = 'spack-build'
+ parallel = False
def configure_args(self):
spec = self.spec
options = []
- # TODO: add --enable-gpu, --disable-sse-assembly, --enable-sparc64
- # and --enable-neon-arch64
+ # TODO: --disable-sse-assembly, --enable-sparc64, --enable-neon-arch64
simd_features = ['vsx', 'sse', 'avx', 'avx2', 'avx512']
for feature in simd_features:
@@ -85,6 +86,20 @@ class Elpa(AutotoolsPackage):
'CFLAGS=-O2'
])
+ if '+cuda' in spec:
+ prefix = spec['cuda'].prefix
+ options.append('--enable-gpu')
+ options.append('--with-cuda-path={0}'.format(prefix))
+ options.append('--with-cuda-sdk-path={0}'.format(prefix))
+
+ cuda_arch = spec.variants['cuda_arch'].value[0]
+
+ if cuda_arch != 'none':
+ options.append('--with-GPU-compute-capability=sm_{0}'.
+ format(cuda_arch))
+ else:
+ options.append('--disable-gpu')
+
if '+openmp' in spec:
options.append('--enable-openmp')
else:
@@ -99,4 +114,6 @@ class Elpa(AutotoolsPackage):
'SCALAPACK_LDFLAGS={0}'.format(spec['scalapack'].libs.joined())
])
+ options.append('--disable-silent-rules')
+
return options