From bb3a663392edebb1f9918393a875dc3b5db2c995 Mon Sep 17 00:00:00 2001 From: Alberto Invernizzi <9337627+albestro@users.noreply.github.com> Date: Tue, 5 Jul 2022 14:33:30 +0200 Subject: ROCmPackage: unify amdgpu_targets (#30582) * unify amdgpu_targets for rocsolver and rocblas * add more archs * adapt all roc packages to unified amdgpu_targets --- lib/spack/spack/build_systems/rocm.py | 7 ++++--- var/spack/repos/builtin/packages/rccl/package.py | 4 +--- var/spack/repos/builtin/packages/rocalution/package.py | 4 +--- var/spack/repos/builtin/packages/rocblas/package.py | 5 +---- var/spack/repos/builtin/packages/rocfft/package.py | 6 +----- var/spack/repos/builtin/packages/rocprim/package.py | 4 +--- var/spack/repos/builtin/packages/rocrand/package.py | 4 +--- var/spack/repos/builtin/packages/rocsolver/package.py | 6 ++---- var/spack/repos/builtin/packages/rocsparse/package.py | 4 +--- 9 files changed, 13 insertions(+), 31 deletions(-) diff --git a/lib/spack/spack/build_systems/rocm.py b/lib/spack/spack/build_systems/rocm.py index 9a31c579fb..3f8f31cfc8 100644 --- a/lib/spack/spack/build_systems/rocm.py +++ b/lib/spack/spack/build_systems/rocm.py @@ -90,9 +90,10 @@ class ROCmPackage(PackageBase): # https://llvm.org/docs/AMDGPUUsage.html # Possible architectures amdgpu_targets = ( - 'gfx701', 'gfx801', 'gfx802', 'gfx803', - 'gfx900', 'gfx906', 'gfx908', 'gfx90a', 'gfx1010', - 'gfx1011', 'gfx1012' + 'gfx701', 'gfx801', 'gfx802', 'gfx803', 'gfx900', 'gfx900:xnack-', + 'gfx906', 'gfx908', 'gfx90a', + 'gfx906:xnack-', 'gfx908:xnack-', 'gfx90a:xnack-', 'gfx90a:xnack+', + 'gfx1010', 'gfx1011', 'gfx1012', 'gfx1030', 'gfx1031', ) variant('rocm', default=False, description='Enable ROCm support') diff --git a/var/spack/repos/builtin/packages/rccl/package.py b/var/spack/repos/builtin/packages/rccl/package.py index 7af920a18a..1acc66fefd 100644 --- a/var/spack/repos/builtin/packages/rccl/package.py +++ b/var/spack/repos/builtin/packages/rccl/package.py @@ -39,9 +39,7 @@ class Rccl(CMakePackage): version('3.7.0', sha256='8273878ff71aac2e7adf5cc8562d2933034c6c6b3652f88fbe3cd4f2691036e3', deprecated=True) version('3.5.0', sha256='290b57a66758dce47d0bfff3f5f8317df24764e858af67f60ddcdcadb9337253', deprecated=True) - amdgpu_targets = ('gfx803', 'gfx900:xnack-', 'gfx906:xnack-', - 'gfx908:xnack-', 'gfx90a:xnack-', 'gfx90a:xnack+', - 'gfx1030') + amdgpu_targets = ROCmPackage.amdgpu_targets variant('amdgpu_target', values=auto_or_any_combination_of(*amdgpu_targets)) variant('build_type', default='Release', values=("Release", "Debug", "RelWithDebInfo"), description='CMake build type') diff --git a/var/spack/repos/builtin/packages/rocalution/package.py b/var/spack/repos/builtin/packages/rocalution/package.py index 850363602c..c1d0d612f7 100644 --- a/var/spack/repos/builtin/packages/rocalution/package.py +++ b/var/spack/repos/builtin/packages/rocalution/package.py @@ -41,9 +41,7 @@ class Rocalution(CMakePackage): version('3.7.0', sha256='4d6b20aaaac3bafb7ec084d684417bf578349203b0f9f54168f669e3ec5699f8', deprecated=True) version('3.5.0', sha256='be2f78c10c100d7fd9df5dd2403a44700219c2cbabaacf2ea50a6e2241df7bfe', deprecated=True) - amdgpu_targets = ('gfx803', 'gfx900:xnack-', 'gfx906:xnack-', - 'gfx908:xnack-', 'gfx90a:xnack-', 'gfx90a:xnack+', - 'gfx1030') + amdgpu_targets = ROCmPackage.amdgpu_targets variant('amdgpu_target', values=auto_or_any_combination_of(*amdgpu_targets)) variant('build_type', default='Release', values=("Release", "Debug", "RelWithDebInfo"), description='CMake build type') diff --git a/var/spack/repos/builtin/packages/rocblas/package.py b/var/spack/repos/builtin/packages/rocblas/package.py index 707b5b9113..62c6e24d4d 100644 --- a/var/spack/repos/builtin/packages/rocblas/package.py +++ b/var/spack/repos/builtin/packages/rocblas/package.py @@ -38,10 +38,7 @@ class Rocblas(CMakePackage): version('3.7.0', sha256='9425db5f8e8b6f7fb172d09e2a360025b63a4e54414607709efc5acb28819642', deprecated=True) version('3.5.0', sha256='8560fabef7f13e8d67da997de2295399f6ec595edfd77e452978c140d5f936f0', deprecated=True) - amdgpu_targets = ('gfx906', 'gfx908', 'gfx803', 'gfx900', - 'gfx906:xnack-', 'gfx908:xnack-', 'gfx90a:xnack+', - 'gfx90a:xnack-', 'gfx1010', 'gfx1011', - 'gfx1012', 'gfx1030') + amdgpu_targets = ROCmPackage.amdgpu_targets variant('amdgpu_target', values=auto_or_any_combination_of(*amdgpu_targets)) variant('tensile', default=True, description='Use Tensile as a backend') diff --git a/var/spack/repos/builtin/packages/rocfft/package.py b/var/spack/repos/builtin/packages/rocfft/package.py index 460673238b..c4d4568681 100644 --- a/var/spack/repos/builtin/packages/rocfft/package.py +++ b/var/spack/repos/builtin/packages/rocfft/package.py @@ -36,11 +36,7 @@ class Rocfft(CMakePackage): version('3.7.0', sha256='94462e4bd19c2c749fcf6903adbee66d4d3bd345c0246861ff8f40b9d08a6ead', deprecated=True) version('3.5.0', sha256='629f02cfecb7de5ad2517b6a8aac6ed4de60d3a9c620413c4d9db46081ac2c88', deprecated=True) - amdgpu_targets = ( - 'gfx701', 'gfx801', 'gfx802', 'gfx803', - 'gfx900', 'gfx906', 'gfx908', 'gfx1010', - 'gfx1011', 'gfx1012' - ) + amdgpu_targets = ROCmPackage.amdgpu_targets variant('build_type', default='Release', values=("Release", "Debug", "RelWithDebInfo"), description='CMake build type') variant('amdgpu_target', values=auto_or_any_combination_of(*amdgpu_targets)) diff --git a/var/spack/repos/builtin/packages/rocprim/package.py b/var/spack/repos/builtin/packages/rocprim/package.py index 913d129faf..2efb98a7d8 100644 --- a/var/spack/repos/builtin/packages/rocprim/package.py +++ b/var/spack/repos/builtin/packages/rocprim/package.py @@ -33,9 +33,7 @@ class Rocprim(CMakePackage): version('3.7.0', sha256='225209a0cbd003c241821c8a9192cec5c07c7f1a6ab7da296305fc69f5f6d365', deprecated=True) version('3.5.0', sha256='29302dbeb27ae88632aa1be43a721f03e7e597c329602f9ca9c9c530c1def40d', deprecated=True) - amdgpu_targets = ('gfx803', 'gfx900:xnack-', 'gfx906:xnack-', - 'gfx908:xnack-', 'gfx90a:xnack-', 'gfx90a:xnack+', - 'gfx1030') + amdgpu_targets = ROCmPackage.amdgpu_targets variant('amdgpu_target', values=auto_or_any_combination_of(*amdgpu_targets)) variant('build_type', default='Release', values=("Release", "Debug", "RelWithDebInfo"), description='CMake build type') diff --git a/var/spack/repos/builtin/packages/rocrand/package.py b/var/spack/repos/builtin/packages/rocrand/package.py index b88be8ba0b..1e2b5892df 100644 --- a/var/spack/repos/builtin/packages/rocrand/package.py +++ b/var/spack/repos/builtin/packages/rocrand/package.py @@ -39,9 +39,7 @@ class Rocrand(CMakePackage): version('3.7.0', sha256='5e43fe07afe2c7327a692b3b580875bae6e6ee790e044c053fffafbfcbc14860', deprecated=True) version('3.5.0', sha256='592865a45e7ef55ad9d7eddc8082df69eacfd2c1f3e9c57810eb336b15cd5732', deprecated=True) - amdgpu_targets = ('gfx803', 'gfx900:xnack-', 'gfx906:xnack-', 'gfx908:xnack-', - 'gfx90a:xnack-', 'gfx90a:xnack+', - 'gfx1030') + amdgpu_targets = ROCmPackage.amdgpu_targets variant('amdgpu_target', values=auto_or_any_combination_of(*amdgpu_targets)) variant('build_type', default='Release', values=("Release", "Debug", "RelWithDebInfo"), description='CMake build type') diff --git a/var/spack/repos/builtin/packages/rocsolver/package.py b/var/spack/repos/builtin/packages/rocsolver/package.py index e0806e9036..c577384546 100644 --- a/var/spack/repos/builtin/packages/rocsolver/package.py +++ b/var/spack/repos/builtin/packages/rocsolver/package.py @@ -21,10 +21,8 @@ class Rocsolver(CMakePackage): maintainers = ['cgmb', 'srekolam', 'arjun-raj-kuppala', 'haampie'] libraries = ['librocsolver'] - amdgpu_targets = ( - 'gfx803', 'gfx900', 'gfx906:xnack-', 'gfx908:xnack-', - 'gfx90a:xnack-', 'gfx90a:xnack+', 'gfx1010', 'gfx1011', 'gfx1012', 'gfx1030' - ) + amdgpu_targets = ROCmPackage.amdgpu_targets + variant('amdgpu_target', values=auto_or_any_combination_of(*amdgpu_targets)) variant('optimal', default=True, description='This option improves performance at the cost of increased binary \ diff --git a/var/spack/repos/builtin/packages/rocsparse/package.py b/var/spack/repos/builtin/packages/rocsparse/package.py index b4a4bf5b36..99674148e9 100644 --- a/var/spack/repos/builtin/packages/rocsparse/package.py +++ b/var/spack/repos/builtin/packages/rocsparse/package.py @@ -24,9 +24,7 @@ class Rocsparse(CMakePackage): maintainers = ['srekolam', 'arjun-raj-kuppala'] libraries = ['librocsparse'] - amdgpu_targets = ('gfx803', 'gfx900:xnack-', 'gfx906:xnack-', 'gfx908:xnack-', - 'gfx90a:xnack-', 'gfx90a:xnack+', - 'gfx1030') + amdgpu_targets = ROCmPackage.amdgpu_targets variant('amdgpu_target', values=auto_or_any_combination_of(*amdgpu_targets)) variant('build_type', default='Release', values=("Release", "Debug", "RelWithDebInfo"), description='CMake build type') -- cgit v1.2.3-70-g09d2