summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorHarmen Stoppels <harmenstoppels@gmail.com>2020-12-02 15:58:58 +0100
committerTamara Dahlgren <dahlgren1@llnl.gov>2021-02-17 17:07:20 -0800
commit571e36787b96ac1d24824218024954c83dea8c8f (patch)
tree01a2ab34f742757457bafb5ac3434f53ff945dc8 /var
parent63d75cd0891ac8411e3307b0b1ea3e3ea5d3f5bb (diff)
downloadspack-571e36787b96ac1d24824218024954c83dea8c8f.tar.gz
spack-571e36787b96ac1d24824218024954c83dea8c8f.tar.bz2
spack-571e36787b96ac1d24824218024954c83dea8c8f.tar.xz
spack-571e36787b96ac1d24824218024954c83dea8c8f.zip
Fix hipcc once more (#20095)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/camp/package.py15
-rw-r--r--var/spack/repos/builtin/packages/chai/package.py24
-rw-r--r--var/spack/repos/builtin/packages/hip/package.py46
-rw-r--r--var/spack/repos/builtin/packages/raja/package.py16
-rw-r--r--var/spack/repos/builtin/packages/rocblas/package.py8
-rw-r--r--var/spack/repos/builtin/packages/umpire/package.py22
6 files changed, 68 insertions, 63 deletions
diff --git a/var/spack/repos/builtin/packages/camp/package.py b/var/spack/repos/builtin/packages/camp/package.py
index 0d0f26280c..882bfec528 100644
--- a/var/spack/repos/builtin/packages/camp/package.py
+++ b/var/spack/repos/builtin/packages/camp/package.py
@@ -6,7 +6,7 @@
from spack import *
-class Camp(CMakePackage, CudaPackage, HipPackage):
+class Camp(CMakePackage, CudaPackage, ROCmPackage):
"""
Compiler agnostic metaprogramming library providing concepts,
type operations and tuples for C++ and cuda
@@ -40,12 +40,17 @@ class Camp(CMakePackage, CudaPackage, HipPackage):
else:
options.append('-DENABLE_CUDA=OFF')
- if '+hip' in spec:
- arch = self.spec.variants['amdgpu_target'].value
+ if '+rocm' in spec:
options.extend([
'-DENABLE_HIP=ON',
- '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
- '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch)])
+ '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix)
+ ])
+ archs = self.spec.variants['amdgpu_target'].value
+ if archs != 'none':
+ arch_str = ",".join(archs)
+ options.append(
+ '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch_str)
+ )
else:
options.append('-DENABLE_HIP=OFF')
diff --git a/var/spack/repos/builtin/packages/chai/package.py b/var/spack/repos/builtin/packages/chai/package.py
index d4fa53071d..6fd33dea8b 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, HipPackage):
+class Chai(CMakePackage, CudaPackage, ROCmPackage):
"""
Copy-hiding array interface for data migration between memory spaces
"""
@@ -36,12 +36,11 @@ class Chai(CMakePackage, CudaPackage, HipPackage):
depends_on('umpire+cuda', when="+cuda")
depends_on('raja+cuda', when="+raja+cuda")
- # variants +hip and amdgpu_targets are not automatically passed to
+ # variants +rocm 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+rocm', when='+rocm')
+ depends_on('raja+rocm', when="+raja+rocm")
+ for val in ROCmPackage.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)
@@ -63,12 +62,17 @@ class Chai(CMakePackage, CudaPackage, HipPackage):
else:
options.append('-DENABLE_CUDA=OFF')
- if '+hip' in spec:
- arch = self.spec.variants['amdgpu_target'].value
+ if '+rocm' in spec:
options.extend([
'-DENABLE_HIP=ON',
- '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
- '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch)])
+ '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix)
+ ])
+ archs = self.spec.variants['amdgpu_target'].value
+ if archs != 'none':
+ arch_str = ",".join(archs)
+ options.append(
+ '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch_str)
+ )
else:
options.append('-DENABLE_HIP=OFF')
diff --git a/var/spack/repos/builtin/packages/hip/package.py b/var/spack/repos/builtin/packages/hip/package.py
index 261b34e936..d983244a0e 100644
--- a/var/spack/repos/builtin/packages/hip/package.py
+++ b/var/spack/repos/builtin/packages/hip/package.py
@@ -49,30 +49,6 @@ class Hip(CMakePackage):
# See https://github.com/ROCm-Developer-Tools/HIP/pull/2141
patch('0002-Fix-detection-of-HIP_CLANG_ROOT.patch', when='@3.5.0:')
- def setup_run_environment(self, env):
- # NOTE: DO NOT PUT LOGIC LIKE self.spec[name] in this function!!!!!
- # It DOES NOT WORK FOR EXTERNAL PACKAGES!!!! See get_rocm_prefix_info
- rocm_prefixes = self.get_rocm_prefix_info()
-
- env.set('ROCM_PATH', rocm_prefixes['rocm-path'])
- env.set('HIP_COMPILER', 'clang')
- env.set('HIP_PLATFORM', 'hcc')
- env.set('HIP_CLANG_PATH', rocm_prefixes['llvm-amdgpu'].bin)
- env.set('HSA_PATH', rocm_prefixes['hsa-rocr-dev'])
- env.set('ROCMINFO_PATH', rocm_prefixes['rocminfo'])
- env.set('DEVICE_LIB_PATH', rocm_prefixes['rocm-device-libs'].lib)
- env.set('HIP_PATH', rocm_prefixes['rocm-path'])
- env.set('HIPCC_COMPILE_FLAGS_APPEND',
- '--rocm-path={0}'.format(rocm_prefixes['rocm-path']))
-
- if 'amdgpu_target' in self.spec.variants:
- arch = self.spec.variants['amdgpu_target'].value
- if arch != 'none':
- env.set('HCC_AMDGPU_TARGET', arch)
-
- def setup_dependent_run_environment(self, env, dependent_spec):
- self.setup_run_environment(env)
-
def get_rocm_prefix_info(self):
# External packages in Spack do not currently contain dependency
# information. External installations of hip therefore must compute
@@ -98,15 +74,18 @@ class Hip(CMakePackage):
'hsa-rocr-dev': fallback_prefix.hsa,
'rocminfo': fallback_prefix.bin,
'rocm-device-libs': fallback_prefix,
+ 'device_lib_path': fallback_prefix
}
else:
mydict = dict((name, self.spec[name].prefix)
for name in ('llvm-amdgpu', 'hsa-rocr-dev',
'rocminfo', 'rocm-device-libs'))
- mydict['rocm-path'] = os.path.dirname(self.spec.prefix)
+ mydict['rocm-path'] = self.spec.prefix
+ device_lib_path = mydict['rocm-device-libs'].amdgcn.bitcode
+ mydict['device_lib_path'] = device_lib_path
return mydict
- def setup_dependent_build_environment(self, env, dependent_spec):
+ def set_variables(self, env):
# Indirection for dependency paths because hip may be an external in
# Spack. See block comment on get_rocm_prefix_info .
@@ -120,15 +99,24 @@ class Hip(CMakePackage):
env.set('HIP_CLANG_PATH', rocm_prefixes['llvm-amdgpu'].bin)
env.set('HSA_PATH', rocm_prefixes['hsa-rocr-dev'])
env.set('ROCMINFO_PATH', rocm_prefixes['rocminfo'])
- env.set('DEVICE_LIB_PATH', rocm_prefixes['rocm-device-libs'].lib)
+ env.set('DEVICE_LIB_PATH', rocm_prefixes['device_lib_path'])
env.set('HIP_PATH', rocm_prefixes['rocm-path'])
env.set('HIPCC_COMPILE_FLAGS_APPEND',
- '--rocm-path={0}'.format(rocm_prefixes['rocm-path']))
+ '--rocm-path={0}'.format(rocm_prefixes['device_lib_path']))
+
+ def setup_run_environment(self, env):
+ self.set_variables(env)
+
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ self.set_variables(env)
if 'amdgpu_target' in dependent_spec.variants:
arch = dependent_spec.variants['amdgpu_target'].value
if arch != 'none':
- env.set('HCC_AMDGPU_TARGET', arch)
+ env.set('HCC_AMDGPU_TARGET', ','.join(arch))
+
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ self.setup_dependent_build_environment(env, dependent_spec)
def setup_dependent_package(self, module, dependent_spec):
self.spec.hipcc = join_path(self.prefix.bin, 'hipcc')
diff --git a/var/spack/repos/builtin/packages/raja/package.py b/var/spack/repos/builtin/packages/raja/package.py
index 7c139640f7..c2cdf5a607 100644
--- a/var/spack/repos/builtin/packages/raja/package.py
+++ b/var/spack/repos/builtin/packages/raja/package.py
@@ -4,7 +4,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-class Raja(CMakePackage, CudaPackage, HipPackage):
+class Raja(CMakePackage, CudaPackage, ROCmPackage):
"""RAJA Parallel Framework."""
homepage = "http://software.llnl.gov/RAJA/"
@@ -33,7 +33,7 @@ class Raja(CMakePackage, CudaPackage, HipPackage):
variant('examples', default=True, description='Build examples.')
variant('exercises', default=True, description='Build exercises.')
- conflicts('+openmp', when='+hip')
+ conflicts('+openmp', when='+rocm')
depends_on('cmake@3.8:', type='build')
depends_on('cmake@3.9:', when='+cuda', type='build')
@@ -56,12 +56,16 @@ class Raja(CMakePackage, CudaPackage, HipPackage):
else:
options.append('-DENABLE_CUDA=OFF')
- if '+hip' in spec:
- arch = self.spec.variants['amdgpu_target'].value
+ if '+rocm' in spec:
options.extend([
'-DENABLE_HIP=ON',
- '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
- '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch)])
+ '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix)])
+ archs = self.spec.variants['amdgpu_target'].value
+ if archs != 'none':
+ arch_str = ",".join(archs)
+ options.append(
+ '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch_str)
+ )
else:
options.append('-DENABLE_HIP=OFF')
diff --git a/var/spack/repos/builtin/packages/rocblas/package.py b/var/spack/repos/builtin/packages/rocblas/package.py
index 2c6127317a..66c63ce9ab 100644
--- a/var/spack/repos/builtin/packages/rocblas/package.py
+++ b/var/spack/repos/builtin/packages/rocblas/package.py
@@ -20,9 +20,9 @@ class Rocblas(CMakePackage):
version('3.7.0', sha256='9425db5f8e8b6f7fb172d09e2a360025b63a4e54414607709efc5acb28819642')
version('3.5.0', sha256='8560fabef7f13e8d67da997de2295399f6ec595edfd77e452978c140d5f936f0')
- amdgpu_targets = ('all', 'gfx803', 'gfx900', 'gfx906', 'gfx908')
+ tensile_architecture = ('all', 'gfx803', 'gfx900', 'gfx906', 'gfx908')
- variant('amdgpu_target', default='all', multi=True, values=amdgpu_targets)
+ variant('tensile_architecture', default='all', values=tensile_architecture, multi=False)
depends_on('cmake@3:', type='build')
@@ -73,7 +73,7 @@ class Rocblas(CMakePackage):
env.set('CXX', self.spec['hip'].hipcc)
def cmake_args(self):
- archs = ",".join(self.spec.variants['amdgpu_target'].value)
+ arch = self.spec.variants['tensile_architecture'].value
tensile = join_path(self.stage.source_path, 'Tensile')
@@ -86,7 +86,7 @@ class Rocblas(CMakePackage):
'-DBUILD_WITH_TENSILE=ON',
'-DTensile_TEST_LOCAL_PATH={0}'.format(tensile),
'-DTensile_COMPILER=hipcc',
- '-DTensile_ARCHITECTURE={0}'.format(archs),
+ '-DTensile_ARCHITECTURE={0}'.format(arch),
'-DTensile_LOGIC=asm_full',
'-DTensile_CODE_OBJECT_VERSION=V3',
'-DBUILD_WITH_TENSILE_HOST={0}'.format(
diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py
index 14eed00747..8b035e59df 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, HipPackage):
+class Umpire(CMakePackage, CudaPackage, ROCmPackage):
"""An application-focused API for memory management on NUMA & GPU
architectures"""
@@ -62,11 +62,10 @@ class Umpire(CMakePackage, CudaPackage, HipPackage):
depends_on('blt', type='build')
- # variants +hip and amdgpu_targets are not automatically passed to
+ # variants +rocm 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+rocm', when='+rocm')
+ for val in ROCmPackage.amdgpu_targets:
depends_on('camp amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
depends_on('camp')
@@ -97,12 +96,17 @@ class Umpire(CMakePackage, CudaPackage, HipPackage):
else:
options.append('-DENABLE_CUDA=Off')
- if '+hip' in spec:
- arch = self.spec.variants['amdgpu_target'].value
+ if '+rocm' in spec:
options.extend([
'-DENABLE_HIP=ON',
- '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
- '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch)])
+ '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix)
+ ])
+ archs = self.spec.variants['amdgpu_target'].value
+ if archs != 'none':
+ arch_str = ",".join(archs)
+ options.append(
+ '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch_str)
+ )
else:
options.append('-DENABLE_HIP=OFF')