summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/umpire/package.py
diff options
context:
space:
mode:
authorDanny Taller <66029857+dtaller@users.noreply.github.com>2020-11-18 11:52:21 -0800
committerTamara Dahlgren <dahlgren1@llnl.gov>2021-02-17 17:07:14 -0800
commitc42ce439e44f5a8261fdd9d5e4374a0dc26fa71e (patch)
tree0027fb5c71ac9fc87c888f7eeb82da0327faef03 /var/spack/repos/builtin/packages/umpire/package.py
parentd6bd95db2ebe932e4db7f36eab26a187a34c415a (diff)
downloadspack-c42ce439e44f5a8261fdd9d5e4374a0dc26fa71e.tar.gz
spack-c42ce439e44f5a8261fdd9d5e4374a0dc26fa71e.tar.bz2
spack-c42ce439e44f5a8261fdd9d5e4374a0dc26fa71e.tar.xz
spack-c42ce439e44f5a8261fdd9d5e4374a0dc26fa71e.zip
hip support for umpire, chai, raja, camp (#19715)
* create HipPackage base class and do some refactoring * comments and added conflict to raja for openmp with hip
Diffstat (limited to 'var/spack/repos/builtin/packages/umpire/package.py')
-rw-r--r--var/spack/repos/builtin/packages/umpire/package.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py
index 6b39aad5f6..14eed00747 100644
--- a/var/spack/repos/builtin/packages/umpire/package.py
+++ b/var/spack/repos/builtin/packages/umpire/package.py
@@ -7,7 +7,7 @@ import llnl.util.lang as lang
import llnl.util.tty as tty
-class Umpire(CMakePackage, CudaPackage):
+class Umpire(CMakePackage, CudaPackage, HipPackage):
"""An application-focused API for memory management on NUMA & GPU
architectures"""
@@ -61,6 +61,14 @@ class Umpire(CMakePackage, CudaPackage):
depends_on('cmake@3.9:', when='+cuda', type='build')
depends_on('blt', type='build')
+
+ # variants +hip and amdgpu_targets are not automatically passed to
+ # dependencies, so do it manually.
+ depends_on('camp+hip', when='+hip')
+ amdgpu_targets = HipPackage.amd_gputargets_list()
+ for val in amdgpu_targets:
+ depends_on('camp amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
+
depends_on('camp')
conflicts('+numa', when='@:0.3.2')
@@ -70,7 +78,6 @@ class Umpire(CMakePackage, CudaPackage):
spec = self.spec
options = []
-
options.append("-DBLT_SOURCE_DIR={0}".format(spec['blt'].prefix))
options.append("-Dcamp_DIR={0}".format(spec['camp'].prefix))
@@ -90,6 +97,15 @@ class Umpire(CMakePackage, CudaPackage):
else:
options.append('-DENABLE_CUDA=Off')
+ if '+hip' in spec:
+ arch = self.spec.variants['amdgpu_target'].value
+ options.extend([
+ '-DENABLE_HIP=ON',
+ '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
+ '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch)])
+ else:
+ options.append('-DENABLE_HIP=OFF')
+
options.append('-DENABLE_C={0}'.format(
'On' if '+c' in spec else 'Off'))