summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSreenivasa Murthy Kolam <67086238+srekolam@users.noreply.github.com>2021-11-23 18:35:16 -0800
committerGitHub <noreply@github.com>2021-11-23 18:35:16 -0800
commitd6d78b84579d3da819e2e1c0abd06a90688ed871 (patch)
tree10433a4c4280b91450d9af7edf9f9756752b2df1
parentc263b64d2ecad12227bb120661ed62298c4b16e1 (diff)
downloadspack-d6d78b84579d3da819e2e1c0abd06a90688ed871.tar.gz
spack-d6d78b84579d3da819e2e1c0abd06a90688ed871.tar.bz2
spack-d6d78b84579d3da819e2e1c0abd06a90688ed871.tar.xz
spack-d6d78b84579d3da819e2e1c0abd06a90688ed871.zip
rocm-tensile: Add new GPUs to tensile-architecture list (#26913)
-rw-r--r--var/spack/repos/builtin/packages/rocm-tensile/package.py29
1 files changed, 21 insertions, 8 deletions
diff --git a/var/spack/repos/builtin/packages/rocm-tensile/package.py b/var/spack/repos/builtin/packages/rocm-tensile/package.py
index 07ff61f007..ca4ce6ade6 100644
--- a/var/spack/repos/builtin/packages/rocm-tensile/package.py
+++ b/var/spack/repos/builtin/packages/rocm-tensile/package.py
@@ -27,12 +27,15 @@ class RocmTensile(CMakePackage):
version('3.7.0', sha256='488a7f76ea42a7601d0557f53068ec4832a2c7c06bb1b511470a4e35599a5a4d')
version('3.5.0', sha256='71eb3eed6625b08a4cedb539dd9b596e3d4cc82a1a8063d37d94c0765b6f8257')
- tensile_architecture = ('all', 'gfx803', 'gfx900', 'gfx906', 'gfx908')
+ tensile_architecture = ('all', 'gfx906', 'gfx908', 'gfx000', 'gfx900',
+ 'gfx906:xnack-', 'gfx908:xnack-', 'gfx90a:xnack-',
+ 'gfx1010', 'gfx1011', 'gfx1012', 'gfx1030')
variant('build_type', default='Release', values=("Release", "Debug", "RelWithDebInfo"), description='CMake build type')
- variant('tensile_architecture', default='all', values=tensile_architecture, multi=False)
+ variant('tensile_architecture', default='all', values=tensile_architecture, multi=True)
variant('openmp', default=True, description='Enable OpenMP')
-
+ conflicts('tensile_architecture=gfx906', when='@4.0.1:')
+ conflicts('tensile_architecture=gfx908', when='@4.0.1:')
depends_on('cmake@3:', type='build')
# This is the default library format since 3.7.0
depends_on('msgpack-c@3:', when='@3.7:')
@@ -62,8 +65,20 @@ class RocmTensile(CMakePackage):
def setup_build_environment(self, env):
env.set('CXX', self.spec['hip'].hipcc)
- def cmake_args(self):
+ def get_gpulist_for_tensile_support(self):
arch = self.spec.variants['tensile_architecture'].value
+ if arch[0] == 'all':
+ if self.spec.satisfies('@:4.0.0'):
+ arch_value = self.tensile_architecture[1:4]
+ elif self.spec.satisfies('@4.1.0:4.2.0'):
+ arch_value = self.tensile_architecture[3:6]
+ elif self.spec.satisfies('@4.3.0:'):
+ arch_value = self.tensile_architecture[3:]
+ return arch_value
+ else:
+ return arch
+
+ def cmake_args(self):
args = [
self.define('amd_comgr_DIR', self.spec['comgr'].prefix),
self.define('Tensile_COMPILER', 'hipcc'),
@@ -80,10 +95,8 @@ class RocmTensile(CMakePackage):
if '@3.7.0:' in self.spec:
args.append(self.define('Tensile_LIBRARY_FORMAT', 'msgpack'))
- if self.spec.satisfies('@4.1.0:'):
- if arch == 'gfx906' or arch == 'gfx908':
- arch = arch + ':xnack-'
- args.append(self.define('Tensile_ARCHITECTURE', arch))
+ args.append(self.define('Tensile_ARCHITECTURE',
+ self.get_gpulist_for_tensile_support()))
if self.spec.satisfies('^cmake@3.21.0:3.21.2'):
args.append(self.define('__skip_rocmclang', 'ON'))