diff options
author | Danny Taller <66029857+dtaller@users.noreply.github.com> | 2020-11-18 11:52:21 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-18 11:52:21 -0800 |
commit | 3b9155239b83cd22074f8db057e9ad28f37f008e (patch) | |
tree | 585d87ef6a2463aab9cf5c5693af1854e8797a5c /var/spack/repos/builtin/packages/chai/package.py | |
parent | 676d68a9792b5bc6cea3ab91e77ed8a9eab10f55 (diff) | |
download | spack-3b9155239b83cd22074f8db057e9ad28f37f008e.tar.gz spack-3b9155239b83cd22074f8db057e9ad28f37f008e.tar.bz2 spack-3b9155239b83cd22074f8db057e9ad28f37f008e.tar.xz spack-3b9155239b83cd22074f8db057e9ad28f37f008e.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/chai/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/chai/package.py | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/chai/package.py b/var/spack/repos/builtin/packages/chai/package.py index c7bdebaac7..d4fa53071d 100644 --- a/var/spack/repos/builtin/packages/chai/package.py +++ b/var/spack/repos/builtin/packages/chai/package.py @@ -6,7 +6,7 @@ from spack import * -class Chai(CMakePackage, CudaPackage): +class Chai(CMakePackage, CudaPackage, HipPackage): """ Copy-hiding array interface for data migration between memory spaces """ @@ -36,6 +36,15 @@ class Chai(CMakePackage, CudaPackage): depends_on('umpire+cuda', when="+cuda") depends_on('raja+cuda', when="+raja+cuda") + # variants +hip and amdgpu_targets are not automatically passed to + # dependencies, so do it manually. + amdgpu_targets = HipPackage.amd_gputargets_list() + depends_on('umpire+hip', when='+hip') + depends_on('raja+hip', when="+raja+hip") + for val in amdgpu_targets: + depends_on('umpire amdgpu_target=%s' % val, when='amdgpu_target=%s' % val) + depends_on('raja amdgpu_target=%s' % val, when='+raja amdgpu_target=%s' % val) + def cmake_args(self): spec = self.spec @@ -54,6 +63,15 @@ class Chai(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') + if '+raja' in spec: options.extend(['-DENABLE_RAJA_PLUGIN=ON', '-DRAJA_DIR=' + spec['raja'].prefix]) @@ -64,6 +82,13 @@ class Chai(CMakePackage, CudaPackage): options.append('-DENABLE_TESTS={0}'.format( 'ON' if self.run_tests else 'OFF')) + # give clear error for conflict between self.run_tests and + # benchmarks variant. + if not self.run_tests and '+benchmarks' in spec: + raise InstallError( + 'ENABLE_BENCHMARKS requires ENABLE_TESTS to be ON' + ) + options.append('-DENABLE_BENCHMARKS={0}'.format( 'ON' if '+benchmarks' in spec else 'OFF')) |