diff options
author | Harmen Stoppels <harmenstoppels@gmail.com> | 2020-08-11 17:01:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-11 17:01:49 +0200 |
commit | 313511bf1dfa302d22c9e3492d2ae1e003784230 (patch) | |
tree | edf5bcf755197afd1ed4cc592e6269fb43a30450 | |
parent | 09cc89a4498b58f2bd199ea486e0cc6757a911f6 (diff) | |
download | spack-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)
-rw-r--r-- | var/spack/repos/builtin/packages/elpa/package.py | 23 |
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 |