dealii: disable tpetra when +cuda; check for '' in cuda_arch (#7958)
* dealii: disable tpetra when +cuda; check for '' in cuda_arch * trilinos: fix Kokkos CUDA * Revert "trilinos: fix Kokkos CUDA" This reverts commit 6aae894bc7d49c9e736c06f65b81b8c219443920. * update according to @aprokop comments * minor * fix flake8
This commit is contained in:
parent
206e61bafd
commit
28bebe13a8
@ -146,8 +146,12 @@ class Dealii(CMakePackage, CudaPackage):
|
|||||||
depends_on('slepc@:3.6.3', when='@:8.4.1+slepc+petsc+mpi')
|
depends_on('slepc@:3.6.3', when='@:8.4.1+slepc+petsc+mpi')
|
||||||
depends_on('slepc~arpack', when='+slepc+petsc+mpi+int64')
|
depends_on('slepc~arpack', when='+slepc+petsc+mpi+int64')
|
||||||
depends_on('sundials~pthread', when='@9.0:+sundials')
|
depends_on('sundials~pthread', when='@9.0:+sundials')
|
||||||
depends_on('trilinos+amesos+aztec+epetra+ifpack+ml+muelu+rol+sacado+teuchos', when='+trilinos+mpi~int64')
|
depends_on('trilinos+amesos+aztec+epetra+ifpack+ml+muelu+rol+sacado+teuchos', when='+trilinos+mpi~int64~cuda')
|
||||||
depends_on('trilinos+amesos+aztec+epetra+ifpack+ml+muelu+rol+sacado+teuchos~hypre', when='+trilinos+mpi+int64')
|
depends_on('trilinos+amesos+aztec+epetra+ifpack+ml+muelu+rol+sacado+teuchos~hypre', when='+trilinos+mpi+int64~cuda')
|
||||||
|
# FIXME: temporary disable Tpetra when using CUDA due to
|
||||||
|
# namespace "Kokkos::Impl" has no member "cuda_abort"
|
||||||
|
depends_on('trilinos@master+amesos+aztec+epetra+ifpack+ml+muelu+rol+sacado+teuchos~amesos2~ifpack2~intrepid2~kokkos~tpetra~zoltan2', when='+trilinos+mpi~int64+cuda')
|
||||||
|
depends_on('trilinos@master+amesos+aztec+epetra+ifpack+ml+muelu+rol+sacado+teuchos~hypre~amesos2~ifpack2~intrepid2~kokkos~tpetra~zoltan2', when='+trilinos+mpi+int64+cuda')
|
||||||
|
|
||||||
# check that the combination of variants makes sense
|
# check that the combination of variants makes sense
|
||||||
conflicts('^openblas+ilp64', when='@:8.5.1')
|
conflicts('^openblas+ilp64', when='@:8.5.1')
|
||||||
@ -252,15 +256,15 @@ def cmake_args(self):
|
|||||||
if not spec.satisfies('^cuda@9:'):
|
if not spec.satisfies('^cuda@9:'):
|
||||||
options.append('-DDEAL_II_WITH_CXX14=OFF')
|
options.append('-DDEAL_II_WITH_CXX14=OFF')
|
||||||
cuda_arch = spec.variants['cuda_arch'].value
|
cuda_arch = spec.variants['cuda_arch'].value
|
||||||
if cuda_arch is not None:
|
if cuda_arch is not None and cuda_arch[0] is not '':
|
||||||
if len(cuda_arch) > 1:
|
if len(cuda_arch) > 1:
|
||||||
raise InstallError(
|
raise InstallError(
|
||||||
'deal.II only supports compilation for a single GPU!'
|
'deal.II only supports compilation for a single GPU!'
|
||||||
)
|
)
|
||||||
flags = '-arch=sm_{0}'.format(cuda_arch[0])
|
flags = '-arch=sm_{0}'.format(cuda_arch[0])
|
||||||
# FIXME: there are some compiler errors in dealii
|
# FIXME: there are some compiler errors in dealii
|
||||||
# with flags below. Stick with -arch=sm_xy for now.
|
# with: flags = ' '.join(self.cuda_flags(cuda_arch))
|
||||||
# flags = ' '.join(self.cuda_flags(cuda_arch))
|
# Stick with -arch=sm_xy for now.
|
||||||
options.append(
|
options.append(
|
||||||
'-DDEAL_II_CUDA_FLAGS={0}'.format(flags)
|
'-DDEAL_II_CUDA_FLAGS={0}'.format(flags)
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user