diff options
author | eugeneswalker <38933153+eugeneswalker@users.noreply.github.com> | 2022-04-25 12:48:35 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-25 19:48:35 +0000 |
commit | b41de6d86bdf7bf1907bd0f8999d2ccda3003f8d (patch) | |
tree | 1400c6f19924f5f94c268c133d57a5210c760aba /var/spack/repos/builtin/packages/exago/package.py | |
parent | c72fba7e4c43c61be4367dc2e3f5963d322d855e (diff) | |
download | spack-b41de6d86bdf7bf1907bd0f8999d2ccda3003f8d.tar.gz spack-b41de6d86bdf7bf1907bd0f8999d2ccda3003f8d.tar.bz2 spack-b41de6d86bdf7bf1907bd0f8999d2ccda3003f8d.tar.xz spack-b41de6d86bdf7bf1907bd0f8999d2ccda3003f8d.zip |
exago +cuda, +rocm: pass amdgpu_target, cuda_arch to dependencies, as appropriate (#30259)
* exago +rocm: pass amdgpu_target to raja, hiop dependencies
* +cuda builds: pass cuda_arch to dependencies
* hiop: pass cuda_arch to dependencies
Diffstat (limited to 'var/spack/repos/builtin/packages/exago/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/exago/package.py | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/var/spack/repos/builtin/packages/exago/package.py b/var/spack/repos/builtin/packages/exago/package.py index 209ffa4ec6..b7b8091247 100644 --- a/var/spack/repos/builtin/packages/exago/package.py +++ b/var/spack/repos/builtin/packages/exago/package.py @@ -47,8 +47,6 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage): depends_on('cuda', when='+cuda') depends_on('raja', when='+raja') - depends_on('raja+cuda', when='+raja+cuda') - depends_on('raja+rocm', when='+raja+rocm') depends_on('raja@0.14.0:', when='@1.1.0: +raja') depends_on('umpire', when='+raja') depends_on('umpire@6.0.0:', when='@1.1.0: +raja') @@ -56,11 +54,6 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage): # Some allocator code in Umpire only works with static libs depends_on('umpire+cuda~shared', when='+raja+cuda') - # For some versions of RAJA package, camp cuda variant does not get set - # correctly, so we must explicitly depend on it even though we don't use - # camp - depends_on('camp+cuda', when='+raja+cuda') - depends_on('cmake@3.18:', type='build') # HiOp dependency logic @@ -69,8 +62,6 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage): depends_on('hiop@0.5.1:', when='@1.1.0:+hiop') depends_on('hiop@0.5.3:', when='@1.3.0:+hiop') - depends_on('hiop+cuda', when='+hiop+cuda') - depends_on('hiop+rocm', when='+hiop+rocm') depends_on('hiop~mpi', when='+hiop~mpi') depends_on('hiop+mpi', when='+hiop+mpi') @@ -78,6 +69,21 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage): depends_on('petsc@3.16.0:3.16', when='@1.3.0:') depends_on('petsc~mpi', when='~mpi') + for arch in CudaPackage.cuda_arch_values: + cuda_dep = "+cuda cuda_arch={0}".format(arch) + depends_on("hiop {0}".format(cuda_dep), when=cuda_dep) + depends_on("raja {0}".format(cuda_dep), when="+raja {0}".format(cuda_dep)) + + # For some versions of RAJA package, camp cuda variant does not get set + # correctly, so we must explicitly depend on it even though we don't use + # camp + depends_on("camp {0}".format(cuda_dep), when="+raja {0}".format(cuda_dep)) + + for arch in ROCmPackage.amdgpu_targets: + rocm_dep = "+rocm amdgpu_target={0}".format(arch) + depends_on("hiop {0}".format(rocm_dep), when=rocm_dep) + depends_on("raja {0}".format(rocm_dep), when="+raja {0}".format(rocm_dep)) + depends_on('ipopt', when='+ipopt') depends_on('py-mpi4py', when='@1.3.0:+mpi+python') |