diff options
-rw-r--r-- | var/spack/repos/builtin/packages/amgx/package.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/amgx/package.py b/var/spack/repos/builtin/packages/amgx/package.py new file mode 100644 index 0000000000..ece1d67ee2 --- /dev/null +++ b/var/spack/repos/builtin/packages/amgx/package.py @@ -0,0 +1,58 @@ +# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +class Amgx(CMakePackage, CudaPackage): + """AmgX provides a simple path to accelerated core solver technology on + NVIDIA GPUs. AmgX provides up to 10x acceleration to the computationally + intense linear solver portion of simulations, and is especially well + suited for implicit unstructured methods. It is a high performance, + state-of-the-art library and includes a flexible solver composition + system that allows a user to easily construct complex nested solvers and + preconditioners.""" + + homepage = "https://developer.nvidia.com/amgx" + url = "https://github.com/nvidia/amgx/archive/v2.1.0.tar.gz" + + maintainers = ['js947'] + + version('2.1.0', sha256='6245112b768a1dc3486b2b3c049342e232eb6281a6021fffa8b20c11631f63cc') + version('2.0.1', sha256='6f9991f1836fbf4ba2114ce9f49febd0edc069a24f533bd94fd9aa9be72435a7') + version('2.0.0', sha256='8ec7ea8412be3de216fcf7243c4e2a8bcf76878e6865468e4238630a082a431b') + + variant('cuda', default=True, description='Build with CUDA') + variant('mpi', default=True, description='Enable MPI support') + variant('mkl', default=False, description='Enable MKL support') + variant('magma', default=False, description='Enable Magma support') + + depends_on('mpi', when='+mpi') + depends_on('mkl', when='+mkl') + depends_on('magma', when='+magma') + + def cmake_args(self): + args = [] + args.append("-DCMAKE_NO_MPI={0}".format( + '1' if '+mpi' not in self.spec else '0')) + + if '+cuda' in self.spec: + args.append('-DWITH_CUDA=ON') + cuda_arch = self.spec.variants['cuda_arch'].value + if cuda_arch is not None: + args.append('-DCUDA_ARCH={0}'.format(cuda_arch[0])) + else: + args.append('-DWITH_CUDA=OFF') + + if '+mkl' in self.spec: + args.append('-DMKL_ROOT_DIR={0}'.format( + self.spec['mkl'].prefix)) + + if '+magma' in self.spec: + args.append('-DMAGMA_ROOT_DIR={0}'.format( + self.spec['magma'].prefix)) + + return args |