rocm: make amdgpu_target sticky (#34591)

The sticky property will prevent clingo from changing the amdgpu_target
to work around conflicts. This is the same behaviour as was adopted for
cuda_arch in 055c9d125d.
This commit is contained in:
Cory Bloor 2022-12-21 12:21:20 -07:00 committed by GitHub
parent 2ef026b8c6
commit e60e74694f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 14 additions and 11 deletions

View File

@ -132,6 +132,7 @@ class ROCmPackage(PackageBase):
"amdgpu_target",
description="AMD GPU architecture",
values=spack.variant.any_combination_of(*amdgpu_targets),
sticky=True,
when="+rocm",
)

View File

@ -101,7 +101,7 @@ class Rccl(CMakePackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets))
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"build_type",
default="Release",

View File

@ -103,7 +103,7 @@ class Rocalution(CMakePackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets))
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"build_type",
default="Release",

View File

@ -101,7 +101,7 @@ class Rocblas(CMakePackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets))
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant("tensile", default=True, description="Use Tensile as a backend")
variant(
"build_type",

View File

@ -104,8 +104,10 @@ class Rocfft(CMakePackage):
values=("Release", "Debug", "RelWithDebInfo"),
description="CMake build type",
)
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets))
variant("amdgpu_target_sram_ecc", values=auto_or_any_combination_of(*amdgpu_targets))
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"amdgpu_target_sram_ecc", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True
)
depends_on("cmake@3.16:", type="build", when="@4.5.0:")
depends_on("cmake@3.5:", type="build")

View File

@ -95,7 +95,7 @@ class Rocprim(CMakePackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets))
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"build_type",
default="Release",

View File

@ -101,7 +101,7 @@ class Rocrand(CMakePackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets))
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"build_type",
default="Release",

View File

@ -23,7 +23,7 @@ class Rocsolver(CMakePackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets))
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"optimal",
default=True,

View File

@ -25,7 +25,7 @@ class Rocsparse(CMakePackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets))
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"build_type",
default="Release",

View File

@ -100,7 +100,7 @@ class Rocthrust(CMakePackage):
# the rocthrust library itself is header-only, but the build_type and amdgpu_target
# are relevant to the test client
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets))
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"build_type",
default="Release",

View File

@ -35,7 +35,7 @@ class Rocwmma(CMakePackage):
# releases
amdgpu_targets = ("gfx908:xnack-", "gfx90a", "gfx90a:xnack-", "gfx90a:xnack+")
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets))
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"build_type",
default="Release",