From 9cf3a16c51b2adf224028f6645582009735c2395 Mon Sep 17 00:00:00 2001 From: Renjith Ravindran Date: Tue, 16 Sep 2025 00:46:48 -0700 Subject: [PATCH 01/40] Revert "Adding softlink with MajorVersion number for pciutils" This reverts commit f0b5ab3fad08bdbc250a895fd2151c4c63abe512. --- .../builtin/packages/rocm_validation_suite/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/rocm_validation_suite/package.py b/repos/spack_repo/builtin/packages/rocm_validation_suite/package.py index e179dbec188..5aa23fed544 100644 --- a/repos/spack_repo/builtin/packages/rocm_validation_suite/package.py +++ b/repos/spack_repo/builtin/packages/rocm_validation_suite/package.py @@ -76,7 +76,7 @@ class RocmValidationSuite(CMakePackage): depends_on("googletest") depends_on("doxygen", type="build") depends_on("libdrm", when="@6.4:") - depends_on("pciutils+shared", when="@6.4:") + depends_on("pciutils+shared", type="build", when="@6.4:") def setup_build_environment(self, env: EnvironmentModifications) -> None: spec = self.spec From ab3064626e70b8cc793557efe864f627b31defd4 Mon Sep 17 00:00:00 2001 From: Renjith Ravindran Date: Mon, 2 Mar 2026 15:28:02 -0800 Subject: [PATCH 02/40] Enabling py-torch 2.9, 2.10 and ci build on rocm --- .ci/gitlab/configs/linux/ci.yaml | 2 ++ .../PR152569-Update-spack-includes-2.5.patch | 5 ++-- .../PR152569-Update-spack-includes-2.7.patch | 14 ++++++++--- .../builtin/packages/py_torch/package.py | 24 +++++++++++++++---- 4 files changed, 35 insertions(+), 10 deletions(-) diff --git a/.ci/gitlab/configs/linux/ci.yaml b/.ci/gitlab/configs/linux/ci.yaml index 9add0f89153..67d2b921d5c 100644 --- a/.ci/gitlab/configs/linux/ci.yaml +++ b/.ci/gitlab/configs/linux/ci.yaml @@ -13,6 +13,8 @@ ci: - wrf build-job: tags: [ "spack", "huge" ] + # 24h for long ROCm/ML rebuilds; GitLab project/runner max must allow this + timeout: 1440 minutes variables: CI_JOB_SIZE: huge SPACK_BUILD_JOBS: "12" diff --git a/repos/spack_repo/builtin/packages/py_torch/PR152569-Update-spack-includes-2.5.patch b/repos/spack_repo/builtin/packages/py_torch/PR152569-Update-spack-includes-2.5.patch index 2e7a80bcbe8..2c35aafac2f 100644 --- a/repos/spack_repo/builtin/packages/py_torch/PR152569-Update-spack-includes-2.5.patch +++ b/repos/spack_repo/builtin/packages/py_torch/PR152569-Update-spack-includes-2.5.patch @@ -25,10 +25,10 @@ index 9be7f37..39d0f24 100644 endif() diff --git a/cmake/public/LoadHIP.cmake b/cmake/public/LoadHIP.cmake -index 1c0d3a2..e0de4b1 100644 +index 1c0d3a2..83f9f9d 100644 --- a/cmake/public/LoadHIP.cmake +++ b/cmake/public/LoadHIP.cmake -@@ -167,6 +167,10 @@ if(HIP_FOUND) +@@ -167,6 +167,11 @@ if(HIP_FOUND) find_package_and_print_version(hipsolver REQUIRED) find_package_and_print_version(hiprtc REQUIRED) @@ -36,6 +36,7 @@ index 1c0d3a2..e0de4b1 100644 + list(APPEND ROCM_INCLUDE ${rocprim_INCLUDE_DIR}) + list(APPEND ROCM_INCLUDE ${hipcub_INCLUDE_DIR}) + list(APPEND ROCM_INCLUDE ${rocRAND_INCLUDE_DIR}) ++ list(APPEND ROCM_INCLUDE $ENV{AOTRITON_INSTALLED_PREFIX}/include) find_library(PYTORCH_HIP_LIBRARIES amdhip64 HINTS ${ROCM_PATH}/lib) # TODO: miopen_LIBRARIES should return fullpath to the library file, diff --git a/repos/spack_repo/builtin/packages/py_torch/PR152569-Update-spack-includes-2.7.patch b/repos/spack_repo/builtin/packages/py_torch/PR152569-Update-spack-includes-2.7.patch index 4392e00d76a..173aabc12aa 100644 --- a/repos/spack_repo/builtin/packages/py_torch/PR152569-Update-spack-includes-2.7.patch +++ b/repos/spack_repo/builtin/packages/py_torch/PR152569-Update-spack-includes-2.7.patch @@ -1,5 +1,5 @@ diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt -index d2d23b7..620a89f 100644 +index d2d23b7ab65..620a89f65cb 100644 --- a/caffe2/CMakeLists.txt +++ b/caffe2/CMakeLists.txt @@ -1379,13 +1379,6 @@ if(USE_ROCM) @@ -26,7 +26,7 @@ index d2d23b7..620a89f 100644 endif() diff --git a/cmake/public/LoadHIP.cmake b/cmake/public/LoadHIP.cmake -index 58c74dd..d3e1ad4 100644 +index 58c74ddda35..54f96871372 100644 --- a/cmake/public/LoadHIP.cmake +++ b/cmake/public/LoadHIP.cmake @@ -26,12 +26,6 @@ else() @@ -78,7 +78,15 @@ index 58c74dd..d3e1ad4 100644 find_package_and_print_version(amd_comgr REQUIRED) find_package_and_print_version(rocrand REQUIRED) find_package_and_print_version(hiprand REQUIRED) -@@ -171,7 +168,11 @@ if(HIP_FOUND) +@@ -157,6 +154,7 @@ if(HIP_FOUND) + find_package_and_print_version(hipcub REQUIRED) + find_package_and_print_version(rocthrust REQUIRED) + find_package_and_print_version(hipsolver REQUIRED) ++ list(APPEND ROCM_INCLUDE_DIRS $ENV{AOTRITON_INSTALLED_PREFIX}/include) + # workaround cmake 4 build issue + if(CMAKE_VERSION VERSION_GREATER_EQUAL "4.0.0") + message(WARNING "Work around hiprtc cmake failure for cmake >= 4") +@@ -171,7 +169,11 @@ if(HIP_FOUND) if(UNIX) find_package_and_print_version(rccl) find_package_and_print_version(hsa-runtime64 REQUIRED) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index 6fcc346ee45..effab8148d1 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -141,6 +141,7 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): conflicts("+gloo+rocm") conflicts("+rocm", when="@2.3", msg="Rocm doesn't support py-torch 2.3 release") conflicts("+rocm", when="@2.4", msg="Rocm doesn't support py-torch 2.4 release") + conflicts("+rocm", when="@2.8", msg="Rocm doesn't support py-torch 2.8 release") conflicts("+tensorpipe", when="+rocm ^hip@:5.1", msg="TensorPipe not supported until ROCm 5.2") conflicts("+breakpad", when="target=ppc64:") conflicts("+breakpad", when="target=ppc64le:") @@ -328,7 +329,8 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): depends_on("valgrind", when="+valgrind") with when("+rocm"): depends_on("hsa-rocr-dev") - depends_on("hip") + depends_on("hip@7.0:", when="@2.9:") + depends_on("hip@:6.4", when="@:2.7") depends_on("rccl", when="+nccl") depends_on("rocprim") depends_on("hipcub") @@ -343,11 +345,15 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): depends_on("rocfft") depends_on("rocblas") depends_on("miopen-hip") + depends_on("composable-kernel") + depends_on("hipblaslt") + # Ensure hipblaslt version for 2.9+ + depends_on("hipblaslt@7.0:", when="@2.9:") depends_on("rocminfo") - depends_on("aotriton@0.8.1b", when="@2.5:2.6") - depends_on("aotriton@0.9.1b", when="@2.7:") - depends_on("composable-kernel@:6.3.2", when="@2.5") - depends_on("composable-kernel@6.3.2:", when="@2.6:") + depends_on("hipsparselt@7.0:", when="@2.9:") + depends_on("aotriton@0.8b", when="@2.5:2.6") + depends_on("aotriton@0.9.2b", when="@2.7") + depends_on("aotriton@0.10b", when="@2.8:") depends_on("mpi", when="+mpi") depends_on("ucc", when="+ucc") depends_on("ucx", when="+ucc") @@ -591,6 +597,14 @@ def patch(self): "torch_global_deps PROPERTIES LINKER_LANGUAGE CXX", "caffe2/CMakeLists.txt", ) + if self.spec.satisfies("@2.5:+rocm"): + filter_file( + "find_library(ROCM_ROCTX_LIB roctx64 HINTS ${ROCM_PATH}/lib)", + "find_library(ROCM_ROCTX_LIB roctx64 HINTS ${ROCM_PATH}/lib)\n" + "set(ROCTRACER_INCLUDE_DIR $ENV{ROCTRACER_INCLUDE_DIR})", + "cmake/public/LoadHIP.cmake", + string=True, + ) if self.spec.satisfies("@2.1:2.7+rocm"): filter_file( "${ROCM_INCLUDE_DIRS}/rocm-core/rocm_version.h", From ceb999161544357f09ccfbc627ac4333162b8e3a Mon Sep 17 00:00:00 2001 From: Renjith Ravindran Date: Mon, 2 Mar 2026 15:59:43 -0800 Subject: [PATCH 03/40] Update spack.yaml for py-torch +rocm ci --- stacks/ml-linux-x86_64/spack.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/stacks/ml-linux-x86_64/spack.yaml b/stacks/ml-linux-x86_64/spack.yaml index 50a030f9d9f..d8c48704015 100644 --- a/stacks/ml-linux-x86_64/spack.yaml +++ b/stacks/ml-linux-x86_64/spack.yaml @@ -139,6 +139,7 @@ spack: - target=x86_64_v3 - ~cuda - +rocm + - ~distributed - amdgpu_target=gfx90a - ~flash_attention - "%c,cxx=gcc" From d4a5286c2930782e038575569bd217e914b6d585 Mon Sep 17 00:00:00 2001 From: Renjith Ravindran Date: Mon, 2 Mar 2026 18:06:45 -0800 Subject: [PATCH 04/40] Add torch_specs in ci --- stacks/ml-linux-x86_64/spack.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/stacks/ml-linux-x86_64/spack.yaml b/stacks/ml-linux-x86_64/spack.yaml index d8c48704015..23d0e6abe68 100644 --- a/stacks/ml-linux-x86_64/spack.yaml +++ b/stacks/ml-linux-x86_64/spack.yaml @@ -115,13 +115,11 @@ spack: - [$keras_specs] exclude: - py-keras backend=torch - # Does not yet support Spack-installed ROCm - # - $torch_specs + - $torch_specs - $scikit_learn_specs - $tensorboard_specs - $tensorflow_specs - # Does not yet support Spack-installed ROCm - # - $xgboost_specs + - $xgboost_specs override: packages: all: From c9f43ffa650db49afe2daf311fad08b2dcc55e95 Mon Sep 17 00:00:00 2001 From: Renjith Ravindran Date: Mon, 2 Mar 2026 22:27:06 -0800 Subject: [PATCH 05/40] Removing exclude --- stacks/ml-linux-x86_64/spack.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/stacks/ml-linux-x86_64/spack.yaml b/stacks/ml-linux-x86_64/spack.yaml index 23d0e6abe68..efed59e10f6 100644 --- a/stacks/ml-linux-x86_64/spack.yaml +++ b/stacks/ml-linux-x86_64/spack.yaml @@ -113,7 +113,6 @@ spack: - $jax_specs - matrix: - [$keras_specs] - exclude: - py-keras backend=torch - $torch_specs - $scikit_learn_specs From 2b9f046e7fc7ed0a2173ec4634cfc0e5d787795e Mon Sep 17 00:00:00 2001 From: Renjith Ravindran Date: Mon, 2 Mar 2026 22:46:04 -0800 Subject: [PATCH 06/40] Removing py-keras backend=torch from exclution --- stacks/ml-linux-x86_64/spack.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/stacks/ml-linux-x86_64/spack.yaml b/stacks/ml-linux-x86_64/spack.yaml index efed59e10f6..c33ce21a3e9 100644 --- a/stacks/ml-linux-x86_64/spack.yaml +++ b/stacks/ml-linux-x86_64/spack.yaml @@ -113,7 +113,6 @@ spack: - $jax_specs - matrix: - [$keras_specs] - - py-keras backend=torch - $torch_specs - $scikit_learn_specs - $tensorboard_specs From 7de3afa0a721f53872288f20efe13891d0692b90 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Wed, 4 Mar 2026 14:29:31 -0500 Subject: [PATCH 07/40] require llvm-amdgpu@7.0: or above when the spec has both llvm@20 and hwloc+rocm --- repos/spack_repo/builtin/packages/py_llvmlite/package.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/repos/spack_repo/builtin/packages/py_llvmlite/package.py b/repos/spack_repo/builtin/packages/py_llvmlite/package.py index a7c26e39c73..4f611c7a5e1 100644 --- a/repos/spack_repo/builtin/packages/py_llvmlite/package.py +++ b/repos/spack_repo/builtin/packages/py_llvmlite/package.py @@ -61,6 +61,10 @@ class PyLlvmlite(PythonPackage): depends_on("llvm@14", when="@0.41:0.43") depends_on("llvm@11:14", when="@0.40") depends_on("llvm@11", when="@0.37:0.39") + # When the spec has both llvm@20 and hwloc+rocm (e.g. llvm build-depends on hwloc), + # require llvm-amdgpu@7.0: so that any hwloc+opencl uses libllvm@20 and linking + # does not conflict with older llvm-amdgpu (e.g. 6.4 providing libllvm@19). + depends_on("llvm-amdgpu@7.0:", when="^llvm@20: ^hwloc +rocm") for t in [ "arm:", "ppc:", From 879f26ccc9aca78693ffb54bdd5b1fc73f23eaf8 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Fri, 6 Mar 2026 14:47:15 -0500 Subject: [PATCH 08/40] Updating dependency since llvm@20: is used for @0.45: --- repos/spack_repo/builtin/packages/py_llvmlite/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/py_llvmlite/package.py b/repos/spack_repo/builtin/packages/py_llvmlite/package.py index 4f611c7a5e1..5fe8026ec0b 100644 --- a/repos/spack_repo/builtin/packages/py_llvmlite/package.py +++ b/repos/spack_repo/builtin/packages/py_llvmlite/package.py @@ -64,7 +64,7 @@ class PyLlvmlite(PythonPackage): # When the spec has both llvm@20 and hwloc+rocm (e.g. llvm build-depends on hwloc), # require llvm-amdgpu@7.0: so that any hwloc+opencl uses libllvm@20 and linking # does not conflict with older llvm-amdgpu (e.g. 6.4 providing libllvm@19). - depends_on("llvm-amdgpu@7.0:", when="^llvm@20: ^hwloc +rocm") + depends_on("llvm-amdgpu@7.0:", when="@0.45: ^hwloc +rocm") for t in [ "arm:", "ppc:", From 41abbed40f5429c3c29c817647dcb6917938b2e1 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Mon, 9 Mar 2026 17:49:03 -0400 Subject: [PATCH 09/40] Adding hwloc~rocm dependency for llvmlite@0.45: --- repos/spack_repo/builtin/packages/py_llvmlite/package.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_llvmlite/package.py b/repos/spack_repo/builtin/packages/py_llvmlite/package.py index 5fe8026ec0b..20453e596f3 100644 --- a/repos/spack_repo/builtin/packages/py_llvmlite/package.py +++ b/repos/spack_repo/builtin/packages/py_llvmlite/package.py @@ -62,9 +62,9 @@ class PyLlvmlite(PythonPackage): depends_on("llvm@11:14", when="@0.40") depends_on("llvm@11", when="@0.37:0.39") # When the spec has both llvm@20 and hwloc+rocm (e.g. llvm build-depends on hwloc), - # require llvm-amdgpu@7.0: so that any hwloc+opencl uses libllvm@20 and linking - # does not conflict with older llvm-amdgpu (e.g. 6.4 providing libllvm@19). - depends_on("llvm-amdgpu@7.0:", when="@0.45: ^hwloc +rocm") + # hwloc with older rocm versions conflicts with llvm@20 while linking. + # Hence adding hwloc~rocm dependency for llvmlite@0.45:. + depends_on("hwloc ~rocm", when="@0.45:") for t in [ "arm:", "ppc:", From 5437d05be7742263f3c3be3ea8b4335b5463f545 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Tue, 10 Mar 2026 02:50:40 -0400 Subject: [PATCH 10/40] Dependents can find libamdhip64.so when importing torch or running code that uses ROCm --- .../builtin/packages/py_torch/package.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index effab8148d1..89d471e8c30 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -838,6 +838,22 @@ def enable_or_disable(variant, keyword="USE", var=None): def setup_run_environment(self, env: EnvironmentModifications) -> None: self.torch_cuda_arch_list(env) + if "+rocm" in self.spec: + env.prepend_path("LD_LIBRARY_PATH", self.spec["hip"].prefix.lib) + + def setup_dependent_build_environment(self, env, dependent_spec): + if "+rocm" in self.spec: + env.prepend_path("LD_LIBRARY_PATH", self.spec["hip"].prefix.lib) + # PyTorch headers (e.g. c10/util/complex.h) include ; + # dependents need rocthrust include so HIP device builds can find it. + env.set("THRUST_PATH", self.spec["rocthrust"].prefix) + env.prepend_path("CPATH", self.spec["rocthrust"].prefix.include) + + def setup_dependent_run_environment(self, env, dependent_spec): + """So dependents (e.g. py-torch-nvidia-apex, py-torchaudio) can find + libamdhip64.so when importing torch or running code that uses ROCm.""" + if "+rocm" in self.spec: + env.prepend_path("LD_LIBRARY_PATH", self.spec["hip"].prefix.lib) @run_before("install") def build_amd(self): From 2674f5224f7d95d98b7bd59376b7d5e33e4d915a Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Tue, 10 Mar 2026 22:17:19 -0400 Subject: [PATCH 11/40] Limiting ci build to py-torch temporarily --- stacks/ml-linux-x86_64/spack.yaml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/stacks/ml-linux-x86_64/spack.yaml b/stacks/ml-linux-x86_64/spack.yaml index c33ce21a3e9..05e0ff9049b 100644 --- a/stacks/ml-linux-x86_64/spack.yaml +++ b/stacks/ml-linux-x86_64/spack.yaml @@ -28,21 +28,21 @@ spack: - py-keras backend=jax - py-keras backend=torch - torch_specs: - - py-botorch - - py-gpytorch - - py-kornia - - py-lightning - - py-pytorch-lightning - - py-segmentation-models-pytorch - - py-timm + #- py-botorch + #- py-gpytorch + #- py-kornia + #- py-lightning + #- py-pytorch-lightning + #- py-segmentation-models-pytorch + #- py-timm - py-torch - - py-torch-geometric - - py-torch-nvidia-apex - - py-torchaudio - - py-torchgeo - - py-torchmetrics - - py-torchvision - - py-vector-quantize-pytorch + #- py-torch-geometric + #- py-torch-nvidia-apex + #- py-torchaudio + #- py-torchgeo + #- py-torchmetrics + #- py-torchvision + #- py-vector-quantize-pytorch - scikit_learn_specs: - py-scikit-learn - tensorboard_specs: From 211b910775f06abe7b37cdda30e5de58149b7ee1 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Wed, 11 Mar 2026 12:22:56 -0400 Subject: [PATCH 12/40] Enabling part of the torch_specs --- stacks/ml-linux-x86_64/spack.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/stacks/ml-linux-x86_64/spack.yaml b/stacks/ml-linux-x86_64/spack.yaml index 05e0ff9049b..8d863226b7c 100644 --- a/stacks/ml-linux-x86_64/spack.yaml +++ b/stacks/ml-linux-x86_64/spack.yaml @@ -28,13 +28,13 @@ spack: - py-keras backend=jax - py-keras backend=torch - torch_specs: - #- py-botorch - #- py-gpytorch - #- py-kornia - #- py-lightning - #- py-pytorch-lightning - #- py-segmentation-models-pytorch - #- py-timm + - py-botorch + - py-gpytorch + - py-kornia + - py-lightning + - py-pytorch-lightning + - py-segmentation-models-pytorch + - py-timm - py-torch #- py-torch-geometric #- py-torch-nvidia-apex From f77cfba9eb341f0ebc510a0a0b70bc0c00b5c56e Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Wed, 11 Mar 2026 13:13:54 -0400 Subject: [PATCH 13/40] Temporarily disabling py-kornia --- stacks/ml-linux-x86_64/spack.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stacks/ml-linux-x86_64/spack.yaml b/stacks/ml-linux-x86_64/spack.yaml index 8d863226b7c..c13ce185a9b 100644 --- a/stacks/ml-linux-x86_64/spack.yaml +++ b/stacks/ml-linux-x86_64/spack.yaml @@ -30,7 +30,7 @@ spack: - torch_specs: - py-botorch - py-gpytorch - - py-kornia + #- py-kornia - py-lightning - py-pytorch-lightning - py-segmentation-models-pytorch From 2a541498c9e59097ac9936e674887585f8d858c6 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Wed, 11 Mar 2026 16:39:41 -0400 Subject: [PATCH 14/40] Temporarily disabling py-gpytorch, py-lightning, py-pytorch-lightning, py-segmentation-models-pytorch and py-timm --- stacks/ml-linux-x86_64/spack.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/stacks/ml-linux-x86_64/spack.yaml b/stacks/ml-linux-x86_64/spack.yaml index c13ce185a9b..da3d4dca11f 100644 --- a/stacks/ml-linux-x86_64/spack.yaml +++ b/stacks/ml-linux-x86_64/spack.yaml @@ -29,12 +29,12 @@ spack: - py-keras backend=torch - torch_specs: - py-botorch - - py-gpytorch + #- py-gpytorch #- py-kornia - - py-lightning - - py-pytorch-lightning - - py-segmentation-models-pytorch - - py-timm + #- py-lightning + #- py-pytorch-lightning + #- py-segmentation-models-pytorch + #- py-timm - py-torch #- py-torch-geometric #- py-torch-nvidia-apex From ae2fa59b2c488e4c17dec95fd6268d458131ffd8 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Thu, 12 Mar 2026 11:43:04 -0400 Subject: [PATCH 15/40] Disabling ci for py-botorch and enabling for py-gpytorch --- stacks/ml-linux-x86_64/spack.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stacks/ml-linux-x86_64/spack.yaml b/stacks/ml-linux-x86_64/spack.yaml index da3d4dca11f..26dcbbc9a63 100644 --- a/stacks/ml-linux-x86_64/spack.yaml +++ b/stacks/ml-linux-x86_64/spack.yaml @@ -28,8 +28,8 @@ spack: - py-keras backend=jax - py-keras backend=torch - torch_specs: - - py-botorch - #- py-gpytorch + #- py-botorch + - py-gpytorch #- py-kornia #- py-lightning #- py-pytorch-lightning From 50520295ff2faf71936724e48396bb04a7e627e0 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Tue, 10 Mar 2026 22:17:19 -0400 Subject: [PATCH 16/40] Limiting ci build to py-torch temporarily --- stacks/ml-linux-x86_64/spack.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stacks/ml-linux-x86_64/spack.yaml b/stacks/ml-linux-x86_64/spack.yaml index 26dcbbc9a63..05e0ff9049b 100644 --- a/stacks/ml-linux-x86_64/spack.yaml +++ b/stacks/ml-linux-x86_64/spack.yaml @@ -29,7 +29,7 @@ spack: - py-keras backend=torch - torch_specs: #- py-botorch - - py-gpytorch + #- py-gpytorch #- py-kornia #- py-lightning #- py-pytorch-lightning From 29b180c0d78ca835f421ac17e68b2fcaabb2b387 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Fri, 13 Mar 2026 14:09:56 -0400 Subject: [PATCH 17/40] Resolving concretization failure --- repos/spack_repo/builtin/packages/hipblaslt/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/hipblaslt/package.py b/repos/spack_repo/builtin/packages/hipblaslt/package.py index f680d8f8973..24d3a81a7cd 100644 --- a/repos/spack_repo/builtin/packages/hipblaslt/package.py +++ b/repos/spack_repo/builtin/packages/hipblaslt/package.py @@ -70,7 +70,7 @@ def url_for_version(self, version): depends_on("cmake@3.25.2:", type="build", when="@6.2.0:") depends_on("python@3.7:") - depends_on("python@3.8:3.13.2", when="@6.4:") + depends_on("python@3.8:3.13", when="@6.4:") for ver in [ "6.0.0", From f6e2b9506e215e3fc3770f1d36a4b080bfbff8c0 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Mon, 16 Mar 2026 15:59:22 -0400 Subject: [PATCH 18/40] To find libamdhip64.so at runtime --- repos/spack_repo/builtin/packages/aotriton/package.py | 4 ++++ repos/spack_repo/builtin/packages/py_torch/package.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/repos/spack_repo/builtin/packages/aotriton/package.py b/repos/spack_repo/builtin/packages/aotriton/package.py index c23aaf7c94a..f8a7bdf96d2 100644 --- a/repos/spack_repo/builtin/packages/aotriton/package.py +++ b/repos/spack_repo/builtin/packages/aotriton/package.py @@ -134,4 +134,8 @@ def cmake_args(self): args = [] args.append(self.define("AOTRITON_GPU_BUILD_TIMEOUT", 0)) args.append(self.define("AOTRITON_NOIMAGE_MODE", "ON")) + # So libaotriton_v2.so and extensions find libamdhip64.so at runtime and + # during binary cache relocation (avoids "libamdhip64.so.6 => not found"). + args.append(self.define("CMAKE_INSTALL_RPATH", self.spec["hip"].prefix.lib)) + args.append(self.define("CMAKE_INSTALL_RPATH_USE_LINK_PATH", True)) return args diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index 89d471e8c30..82c890c3d2b 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -354,6 +354,7 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): depends_on("aotriton@0.8b", when="@2.5:2.6") depends_on("aotriton@0.9.2b", when="@2.7") depends_on("aotriton@0.10b", when="@2.8:") + depends_on("mpi", when="+mpi") depends_on("ucc", when="+ucc") depends_on("ucx", when="+ucc") @@ -702,6 +703,9 @@ def enable_or_disable(variant, keyword="USE", var=None): enable_or_disable("rocm") if "+rocm" in self.spec: + # So libtorch_hip.so and aotriton libs find libamdhip64.so at runtime and + # during binary cache relocation (avoids "libamdhip64.so.6 => not found"). + env.append_flags("LDFLAGS", "-Wl,-rpath," + self.spec["hip"].prefix.lib) env.set("PYTORCH_ROCM_ARCH", ";".join(self.spec.variants["amdgpu_target"].value)) env.set("HSA_PATH", self.spec["hsa-rocr-dev"].prefix) env.set("ROCBLAS_PATH", self.spec["rocblas"].prefix) From 5f07872c6b180f39f075c29d75a6f65211bf2271 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Mon, 16 Mar 2026 19:26:57 -0400 Subject: [PATCH 19/40] To fix aotriton/dtypes.h' file not found failure --- .../spack_repo/builtin/packages/aotriton/package.py | 11 +++++++++++ .../spack_repo/builtin/packages/py_torch/package.py | 12 +++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/repos/spack_repo/builtin/packages/aotriton/package.py b/repos/spack_repo/builtin/packages/aotriton/package.py index f8a7bdf96d2..60ac2625996 100644 --- a/repos/spack_repo/builtin/packages/aotriton/package.py +++ b/repos/spack_repo/builtin/packages/aotriton/package.py @@ -138,4 +138,15 @@ def cmake_args(self): # during binary cache relocation (avoids "libamdhip64.so.6 => not found"). args.append(self.define("CMAKE_INSTALL_RPATH", self.spec["hip"].prefix.lib)) args.append(self.define("CMAKE_INSTALL_RPATH_USE_LINK_PATH", True)) + # So libaotriton_v2.so and extensions find shared libs at runtime and + # during binary cache relocation (avoids "=> not found" for e.g. + # libamdhip64.so.6, libz.so.1, libhsa-runtime64.so.1, libc++abi.so.1, + # libunwind.so.1). + rpath_dirs = [ + self.spec["hip"].prefix.lib, + self.spec["hsa-rocr-dev"].prefix.lib, + self.spec["zlib-api"].prefix.lib, + self.spec["aotriton-llvm"].prefix.lib, + ] + args.append(self.define("CMAKE_INSTALL_RPATH", rpath_dirs)) return args diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index 82c890c3d2b..705ffce469b 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -703,9 +703,14 @@ def enable_or_disable(variant, keyword="USE", var=None): enable_or_disable("rocm") if "+rocm" in self.spec: - # So libtorch_hip.so and aotriton libs find libamdhip64.so at runtime and - # during binary cache relocation (avoids "libamdhip64.so.6 => not found"). - env.append_flags("LDFLAGS", "-Wl,-rpath," + self.spec["hip"].prefix.lib) + # So libtorch_hip.so and dependents find ROCm/runtime libs at runtime and + # during binary cache relocation (avoids "=> not found" for e.g. + # libamdhip64.so.6, libhsa-runtime64.so.1). + for lib_dir in [ + self.spec["hip"].prefix.lib, + self.spec["hsa-rocr-dev"].prefix.lib, + ]: + env.append_flags("LDFLAGS", "-Wl,-rpath," + lib_dir) env.set("PYTORCH_ROCM_ARCH", ";".join(self.spec.variants["amdgpu_target"].value)) env.set("HSA_PATH", self.spec["hsa-rocr-dev"].prefix) env.set("ROCBLAS_PATH", self.spec["rocblas"].prefix) @@ -726,6 +731,7 @@ def enable_or_disable(variant, keyword="USE", var=None): if self.spec.satisfies("@2.5:"): env.set("TORCHINDUCTOR_CK_DIR", self.spec["composable-kernel"].prefix) env.set("AOTRITON_INSTALLED_PREFIX", self.spec["aotriton"].prefix) + env.prepend_path("CPATH", self.spec["aotriton"].prefix.include) if self.spec.satisfies("^hip@5.2.0:"): env.set("CMAKE_MODULE_PATH", self.spec["hip"].prefix.lib.cmake.hip) From 16ff315ba5809e923c75429d4f2b455b32903863 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Mon, 16 Mar 2026 19:36:48 -0400 Subject: [PATCH 20/40] indented block after 'for' statement --- repos/spack_repo/builtin/packages/py_torch/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index 705ffce469b..9489c7fcdd1 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -710,7 +710,7 @@ def enable_or_disable(variant, keyword="USE", var=None): self.spec["hip"].prefix.lib, self.spec["hsa-rocr-dev"].prefix.lib, ]: - env.append_flags("LDFLAGS", "-Wl,-rpath," + lib_dir) + env.append_flags("LDFLAGS", "-Wl,-rpath," + lib_dir) env.set("PYTORCH_ROCM_ARCH", ";".join(self.spec.variants["amdgpu_target"].value)) env.set("HSA_PATH", self.spec["hsa-rocr-dev"].prefix) env.set("ROCBLAS_PATH", self.spec["rocblas"].prefix) From 5c3badfc13a17c96264d0deb7fdb7e9b50829a4a Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Mon, 16 Mar 2026 19:41:10 -0400 Subject: [PATCH 21/40] Style error fix --- repos/spack_repo/builtin/packages/py_torch/package.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index 9489c7fcdd1..7d7b6772b46 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -706,10 +706,7 @@ def enable_or_disable(variant, keyword="USE", var=None): # So libtorch_hip.so and dependents find ROCm/runtime libs at runtime and # during binary cache relocation (avoids "=> not found" for e.g. # libamdhip64.so.6, libhsa-runtime64.so.1). - for lib_dir in [ - self.spec["hip"].prefix.lib, - self.spec["hsa-rocr-dev"].prefix.lib, - ]: + for lib_dir in [self.spec["hip"].prefix.lib, self.spec["hsa-rocr-dev"].prefix.lib]: env.append_flags("LDFLAGS", "-Wl,-rpath," + lib_dir) env.set("PYTORCH_ROCM_ARCH", ";".join(self.spec.variants["amdgpu_target"].value)) env.set("HSA_PATH", self.spec["hsa-rocr-dev"].prefix) From 20905b26c0f1956e143099bab56951aad6cb8cb2 Mon Sep 17 00:00:00 2001 From: Renjith Ravindran Date: Tue, 17 Mar 2026 11:31:22 -0700 Subject: [PATCH 22/40] Avoids undeclared identifier errors in attention.hip --- .../builtin/packages/py_torch/package.py | 4 ++ .../rocm-attention-hip-2.9-2.10.patch | 43 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index 7d7b6772b46..e3c05b191d3 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -449,6 +449,10 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): patch("PR152569-Update-spack-includes-2.5.patch", when="@2.5+rocm") patch("PR152569-Update-spack-includes-2.6.patch", when="@2.6+rocm") patch("PR152569-Update-spack-includes-2.7.patch", when="@2.7+rocm") + # Fix ROCm HIP build: define CHECK_NOSPARSE_* for HIP and guard mha_fwd_aot + # when DISABLE_AOTRITON is set (avoids undeclared identifier errors in + # attention.hip). See https://github.com/spack/spack-packages/pull/3630 + patch("rocm-attention-hip-2.9-2.10.patch", when="@2.9:+rocm") # https://github.com/pytorch/pytorch/pull/147993 # prevents pytorch from potentially using system version of config.h diff --git a/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch b/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch new file mode 100644 index 00000000000..53f59ba091b --- /dev/null +++ b/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch @@ -0,0 +1,43 @@ +--- a/aten/src/ATen/native/transformers/cuda/attention.cu ++++ b/aten/src/ATen/native/transformers/cuda/attention.cu +@@ -95,6 +95,19 @@ + #endif + #endif + ++#ifdef __HIP_PLATFORM_AMD__ ++#ifndef CHECK_NOSPARSE_CONTIGUOUS_CUDA ++#define CHECK_NOSPARSE_CONTIGUOUS_CUDA(t) \ ++ TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \ ++ TORCH_CHECK((t).is_contiguous(), "Expected contiguous tensor") ++#endif ++#ifndef CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA ++#define CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA(t) \ ++ TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \ ++ TORCH_CHECK((t).is_contiguous(), "Expected last-dim contiguous tensor") ++#endif ++#endif ++ + #if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) || defined(USE_MEM_EFF_ATTENTION)) + namespace pytorch_flash + { +@@ -143,7 +156,17 @@ mha_fwd( + dummy_attn_bias); // Not used in flash attention + } + #endif ++#ifndef DISABLE_AOTRITON + return mha_fwd_aot( + q, + k, +@@ -157,6 +180,13 @@ mha_fwd( + return_softmax, + gen_); ++#else ++ TORCH_CHECK(false, ++ "ROCm flash/mem_eff attention requires AOTriton. Rebuild without DISABLE_AOTRITON."); ++ return std::make_tuple( ++ at::Tensor(), at::Tensor(), at::Tensor(), at::Tensor(), ++ at::Tensor(), at::Tensor(), at::Tensor(), at::Tensor()); ++#endif + } + } + #endif From 99e7a9019e11888f0bf133f1bcff3c6e330ad577 Mon Sep 17 00:00:00 2001 From: Renjith Ravindran Date: Tue, 17 Mar 2026 12:24:12 -0700 Subject: [PATCH 23/40] Correcting patch --- .../rocm-attention-hip-2.9-2.10.patch | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch b/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch index 53f59ba091b..574539fc3b5 100644 --- a/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch +++ b/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch @@ -1,3 +1,5 @@ +diff --git a/aten/src/ATen/native/transformers/cuda/attention.cu b/aten/src/ATen/native/transformers/cuda/attention.cu +index c2193f2..dc1ee16 100644 --- a/aten/src/ATen/native/transformers/cuda/attention.cu +++ b/aten/src/ATen/native/transformers/cuda/attention.cu @@ -95,6 +95,19 @@ @@ -20,17 +22,18 @@ #if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) || defined(USE_MEM_EFF_ATTENTION)) namespace pytorch_flash { -@@ -143,7 +156,17 @@ mha_fwd( - dummy_attn_bias); // Not used in flash attention - } +@@ -144,6 +157,7 @@ mha_fwd( + dummy_attn_bias); // Not used in flash attention + } #endif +#ifndef DISABLE_AOTRITON - return mha_fwd_aot( - q, - k, -@@ -157,6 +180,13 @@ mha_fwd( - return_softmax, - gen_); + return mha_fwd_aot( + q, + k, +@@ -157,6 +171,13 @@ mha_fwd( + window_size_right, + return_softmax, + gen_); +#else + TORCH_CHECK(false, + "ROCm flash/mem_eff attention requires AOTriton. Rebuild without DISABLE_AOTRITON."); From 327b497e24007c62dfc54be43799c907fb7a7590 Mon Sep 17 00:00:00 2001 From: Renjith Ravindran Date: Tue, 17 Mar 2026 16:44:44 -0700 Subject: [PATCH 24/40] flash/mem_eff attention requires AOTriton USE_MEM_EFF_ATTENTION and not DISABLE_AOTRITON --- repos/spack_repo/builtin/packages/py_torch/package.py | 10 +++++++--- .../py_torch/rocm-attention-hip-2.9-2.10.patch | 6 +++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index e3c05b191d3..944d4a1b22f 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -450,8 +450,9 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): patch("PR152569-Update-spack-includes-2.6.patch", when="@2.6+rocm") patch("PR152569-Update-spack-includes-2.7.patch", when="@2.7+rocm") # Fix ROCm HIP build: define CHECK_NOSPARSE_* for HIP and guard mha_fwd_aot - # when DISABLE_AOTRITON is set (avoids undeclared identifier errors in - # attention.hip). See https://github.com/spack/spack-packages/pull/3630 + # so it is only called when USE_MEM_EFF_ATTENTION is set and DISABLE_AOTRITON + # is not (avoids undeclared identifier errors when aotriton headers are not + # included). See https://github.com/spack/spack-packages/pull/3630 patch("rocm-attention-hip-2.9-2.10.patch", when="@2.9:+rocm") # https://github.com/pytorch/pytorch/pull/147993 @@ -606,7 +607,10 @@ def patch(self): filter_file( "find_library(ROCM_ROCTX_LIB roctx64 HINTS ${ROCM_PATH}/lib)", "find_library(ROCM_ROCTX_LIB roctx64 HINTS ${ROCM_PATH}/lib)\n" - "set(ROCTRACER_INCLUDE_DIR $ENV{ROCTRACER_INCLUDE_DIR})", + "if(DEFINED ENV{ROCTRACER_INCLUDE_DIR})\n" + " set(ROCTRACER_INCLUDE_DIR $ENV{ROCTRACER_INCLUDE_DIR} CACHE PATH " + '"Roctracer include directory" FORCE)\n' + "endif()", "cmake/public/LoadHIP.cmake", string=True, ) diff --git a/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch b/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch index 574539fc3b5..ce0282a581d 100644 --- a/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch +++ b/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch @@ -1,5 +1,5 @@ diff --git a/aten/src/ATen/native/transformers/cuda/attention.cu b/aten/src/ATen/native/transformers/cuda/attention.cu -index c2193f2..dc1ee16 100644 +index c2193f2..675eed5 100644 --- a/aten/src/ATen/native/transformers/cuda/attention.cu +++ b/aten/src/ATen/native/transformers/cuda/attention.cu @@ -95,6 +95,19 @@ @@ -26,7 +26,7 @@ index c2193f2..dc1ee16 100644 dummy_attn_bias); // Not used in flash attention } #endif -+#ifndef DISABLE_AOTRITON ++#if defined(USE_MEM_EFF_ATTENTION) && !defined(DISABLE_AOTRITON) return mha_fwd_aot( q, k, @@ -36,7 +36,7 @@ index c2193f2..dc1ee16 100644 gen_); +#else + TORCH_CHECK(false, -+ "ROCm flash/mem_eff attention requires AOTriton. Rebuild without DISABLE_AOTRITON."); ++ "ROCm flash/mem_eff attention requires AOTriton (USE_MEM_EFF_ATTENTION and not DISABLE_AOTRITON)."); + return std::make_tuple( + at::Tensor(), at::Tensor(), at::Tensor(), at::Tensor(), + at::Tensor(), at::Tensor(), at::Tensor(), at::Tensor()); From 944b58b20cdaf855d3c0d98eb39f8c65cb0c53ba Mon Sep 17 00:00:00 2001 From: Renjith Ravindran Date: Tue, 17 Mar 2026 20:53:15 -0700 Subject: [PATCH 25/40] Updating patch to make compatible for 2.9 and 2.10 --- .../rocm-attention-hip-2.9-2.10.patch | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch b/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch index ce0282a581d..2906ac93b18 100644 --- a/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch +++ b/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch @@ -1,11 +1,8 @@ -diff --git a/aten/src/ATen/native/transformers/cuda/attention.cu b/aten/src/ATen/native/transformers/cuda/attention.cu -index c2193f2..675eed5 100644 --- a/aten/src/ATen/native/transformers/cuda/attention.cu +++ b/aten/src/ATen/native/transformers/cuda/attention.cu -@@ -95,6 +95,19 @@ - #endif - #endif +@@ -97,2 +97,15 @@ + #if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) || defined(USE_MEM_EFF_ATTENTION)) +#ifdef __HIP_PLATFORM_AMD__ +#ifndef CHECK_NOSPARSE_CONTIGUOUS_CUDA +#define CHECK_NOSPARSE_CONTIGUOUS_CUDA(t) \ @@ -22,18 +19,17 @@ index c2193f2..675eed5 100644 #if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) || defined(USE_MEM_EFF_ATTENTION)) namespace pytorch_flash { -@@ -144,6 +157,7 @@ mha_fwd( - dummy_attn_bias); // Not used in flash attention - } +@@ -143,7 +156,17 @@ mha_fwd( + dummy_attn_bias); // Not used in flash attention + } #endif +#if defined(USE_MEM_EFF_ATTENTION) && !defined(DISABLE_AOTRITON) - return mha_fwd_aot( - q, - k, -@@ -157,6 +171,13 @@ mha_fwd( - window_size_right, - return_softmax, - gen_); + return mha_fwd_aot( + q, + k, +@@ -157,6 +180,13 @@ mha_fwd( + return_softmax, + gen_); +#else + TORCH_CHECK(false, + "ROCm flash/mem_eff attention requires AOTriton (USE_MEM_EFF_ATTENTION and not DISABLE_AOTRITON)."); From 0ef34f9ef074b2a3d9f4117232f3fccc5d29768f Mon Sep 17 00:00:00 2001 From: Renjith Ravindran Date: Wed, 18 Mar 2026 11:57:19 -0700 Subject: [PATCH 26/40] Removing patch and adding changed in recipe using filter_file --- .../builtin/packages/py_torch/package.py | 50 +++++++++++++++++-- .../rocm-attention-hip-2.9-2.10.patch | 42 ---------------- 2 files changed, 45 insertions(+), 47 deletions(-) delete mode 100644 repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index 944d4a1b22f..b7b96ec4550 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -449,11 +449,6 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): patch("PR152569-Update-spack-includes-2.5.patch", when="@2.5+rocm") patch("PR152569-Update-spack-includes-2.6.patch", when="@2.6+rocm") patch("PR152569-Update-spack-includes-2.7.patch", when="@2.7+rocm") - # Fix ROCm HIP build: define CHECK_NOSPARSE_* for HIP and guard mha_fwd_aot - # so it is only called when USE_MEM_EFF_ATTENTION is set and DISABLE_AOTRITON - # is not (avoids undeclared identifier errors when aotriton headers are not - # included). See https://github.com/spack/spack-packages/pull/3630 - patch("rocm-attention-hip-2.9-2.10.patch", when="@2.9:+rocm") # https://github.com/pytorch/pytorch/pull/147993 # prevents pytorch from potentially using system version of config.h @@ -645,6 +640,51 @@ def patch(self): string=True, ) + # Fix ROCm HIP build for 2.9+: define CHECK_NOSPARSE_* for HIP and guard + # mha_fwd_aot so it is only called when USE_MEM_EFF_ATTENTION and not + # DISABLE_AOTRITON (avoids undeclared identifier in attention.hip). + if self.spec.satisfies("@2.9:+rocm"): + attention_cu = "aten/src/ATen/native/transformers/cuda/attention.cu" + # Add CHECK_NOSPARSE_* macros for HIP after the ROCm flash/mem_eff block + filter_file( + "#if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) || defined(USE_MEM_EFF_ATTENTION))\nnamespace pytorch_flash", + "#if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) || defined(USE_MEM_EFF_ATTENTION))\n" + "#ifdef __HIP_PLATFORM_AMD__\n" + "#ifndef CHECK_NOSPARSE_CONTIGUOUS_CUDA\n" + "#define CHECK_NOSPARSE_CONTIGUOUS_CUDA(t) \\\n" + " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" + " TORCH_CHECK((t).is_contiguous(), \"Expected contiguous tensor\")\n" + "#endif\n" + "#ifndef CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA\n" + "#define CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA(t) \\\n" + " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" + " TORCH_CHECK((t).is_contiguous(), \"Expected last-dim contiguous tensor\")\n" + "#endif\n" + "#endif\n\n" + "namespace pytorch_flash", + attention_cu, + string=True, + ) + # Guard mha_fwd_aot so it is only used when AOTriton is enabled + filter_file( + " return mha_fwd_aot(", + "#if defined(USE_MEM_EFF_ATTENTION) && !defined(DISABLE_AOTRITON)\n return mha_fwd_aot(", + attention_cu, + string=True, + ) + filter_file( + " gen_);\n }", + " gen_);\n#else\n" + " TORCH_CHECK(false,\n" + ' "ROCm flash/mem_eff attention requires AOTriton (USE_MEM_EFF_ATTENTION and not DISABLE_AOTRITON).");\n' + " return std::make_tuple(\n" + " at::Tensor(), at::Tensor(), at::Tensor(), at::Tensor(),\n" + " at::Tensor(), at::Tensor(), at::Tensor(), at::Tensor());\n" + "#endif\n }", + attention_cu, + string=True, + ) + def torch_cuda_arch_list(self, env): if "+cuda" in self.spec: torch_cuda_arch = CudaPackage.compute_capabilities( diff --git a/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch b/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch deleted file mode 100644 index 2906ac93b18..00000000000 --- a/repos/spack_repo/builtin/packages/py_torch/rocm-attention-hip-2.9-2.10.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- a/aten/src/ATen/native/transformers/cuda/attention.cu -+++ b/aten/src/ATen/native/transformers/cuda/attention.cu -@@ -97,2 +97,15 @@ - - #if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) || defined(USE_MEM_EFF_ATTENTION)) -+#ifdef __HIP_PLATFORM_AMD__ -+#ifndef CHECK_NOSPARSE_CONTIGUOUS_CUDA -+#define CHECK_NOSPARSE_CONTIGUOUS_CUDA(t) \ -+ TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \ -+ TORCH_CHECK((t).is_contiguous(), "Expected contiguous tensor") -+#endif -+#ifndef CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA -+#define CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA(t) \ -+ TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \ -+ TORCH_CHECK((t).is_contiguous(), "Expected last-dim contiguous tensor") -+#endif -+#endif -+ - #if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) || defined(USE_MEM_EFF_ATTENTION)) - namespace pytorch_flash - { -@@ -143,7 +156,17 @@ mha_fwd( - dummy_attn_bias); // Not used in flash attention - } - #endif -+#if defined(USE_MEM_EFF_ATTENTION) && !defined(DISABLE_AOTRITON) - return mha_fwd_aot( - q, - k, -@@ -157,6 +180,13 @@ mha_fwd( - return_softmax, - gen_); -+#else -+ TORCH_CHECK(false, -+ "ROCm flash/mem_eff attention requires AOTriton (USE_MEM_EFF_ATTENTION and not DISABLE_AOTRITON)."); -+ return std::make_tuple( -+ at::Tensor(), at::Tensor(), at::Tensor(), at::Tensor(), -+ at::Tensor(), at::Tensor(), at::Tensor(), at::Tensor()); -+#endif - } - } - #endif From a5dcdf24a7968b69514fc8d14a126cd0be23868d Mon Sep 17 00:00:00 2001 From: renjithravindrankannath <94420380+renjithravindrankannath@users.noreply.github.com> Date: Wed, 18 Mar 2026 19:12:45 +0000 Subject: [PATCH 27/40] [@spackbot] updating style on behalf of renjithravindrankannath --- repos/spack_repo/builtin/packages/py_torch/package.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index b7b96ec4550..c94683e572a 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -652,13 +652,13 @@ def patch(self): "#ifdef __HIP_PLATFORM_AMD__\n" "#ifndef CHECK_NOSPARSE_CONTIGUOUS_CUDA\n" "#define CHECK_NOSPARSE_CONTIGUOUS_CUDA(t) \\\n" - " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" - " TORCH_CHECK((t).is_contiguous(), \"Expected contiguous tensor\")\n" + ' TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \\\n' + ' TORCH_CHECK((t).is_contiguous(), "Expected contiguous tensor")\n' "#endif\n" "#ifndef CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA\n" "#define CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA(t) \\\n" - " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" - " TORCH_CHECK((t).is_contiguous(), \"Expected last-dim contiguous tensor\")\n" + ' TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \\\n' + ' TORCH_CHECK((t).is_contiguous(), "Expected last-dim contiguous tensor")\n' "#endif\n" "#endif\n\n" "namespace pytorch_flash", From 588bb546e7d785f281ca4cc84e7cef6fec908be1 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 18 Mar 2026 13:21:01 -0700 Subject: [PATCH 28/40] Stlye check fix --- .../spack_repo/builtin/packages/py_torch/package.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index c94683e572a..89bcd660b1f 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -647,8 +647,11 @@ def patch(self): attention_cu = "aten/src/ATen/native/transformers/cuda/attention.cu" # Add CHECK_NOSPARSE_* macros for HIP after the ROCm flash/mem_eff block filter_file( - "#if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) || defined(USE_MEM_EFF_ATTENTION))\nnamespace pytorch_flash", - "#if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) || defined(USE_MEM_EFF_ATTENTION))\n" + "#if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) ||" + " defined(USE_MEM_EFF_ATTENTION))\n" + "namespace pytorch_flash", + "#if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) ||" + " defined(USE_MEM_EFF_ATTENTION))\n" "#ifdef __HIP_PLATFORM_AMD__\n" "#ifndef CHECK_NOSPARSE_CONTIGUOUS_CUDA\n" "#define CHECK_NOSPARSE_CONTIGUOUS_CUDA(t) \\\n" @@ -668,7 +671,8 @@ def patch(self): # Guard mha_fwd_aot so it is only used when AOTriton is enabled filter_file( " return mha_fwd_aot(", - "#if defined(USE_MEM_EFF_ATTENTION) && !defined(DISABLE_AOTRITON)\n return mha_fwd_aot(", + "#if defined(USE_MEM_EFF_ATTENTION) && !defined(DISABLE_AOTRITON)\n " + " return mha_fwd_aot(", attention_cu, string=True, ) @@ -676,7 +680,8 @@ def patch(self): " gen_);\n }", " gen_);\n#else\n" " TORCH_CHECK(false,\n" - ' "ROCm flash/mem_eff attention requires AOTriton (USE_MEM_EFF_ATTENTION and not DISABLE_AOTRITON).");\n' + ' "ROCm flash/mem_eff attention requires AOTriton ' + '(USE_MEM_EFF_ATTENTION and not DISABLE_AOTRITON).");\n' " return std::make_tuple(\n" " at::Tensor(), at::Tensor(), at::Tensor(), at::Tensor(),\n" " at::Tensor(), at::Tensor(), at::Tensor(), at::Tensor());\n" From 4a8f2342ad33ef23590da61327ad869263da9852 Mon Sep 17 00:00:00 2001 From: Renjith Ravindran Date: Thu, 19 Mar 2026 17:32:18 -0700 Subject: [PATCH 29/40] style check failure correction --- .../builtin/packages/py_torch/package.py | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index 89bcd660b1f..a1c2a26cbb4 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -645,23 +645,24 @@ def patch(self): # DISABLE_AOTRITON (avoids undeclared identifier in attention.hip). if self.spec.satisfies("@2.9:+rocm"): attention_cu = "aten/src/ATen/native/transformers/cuda/attention.cu" + _rocm_attn_if = ( + "#if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) || " + "defined(USE_MEM_EFF_ATTENTION))\n" + ) # Add CHECK_NOSPARSE_* macros for HIP after the ROCm flash/mem_eff block filter_file( - "#if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) ||" - " defined(USE_MEM_EFF_ATTENTION))\n" - "namespace pytorch_flash", - "#if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) ||" - " defined(USE_MEM_EFF_ATTENTION))\n" + _rocm_attn_if + "namespace pytorch_flash", + _rocm_attn_if "#ifdef __HIP_PLATFORM_AMD__\n" "#ifndef CHECK_NOSPARSE_CONTIGUOUS_CUDA\n" "#define CHECK_NOSPARSE_CONTIGUOUS_CUDA(t) \\\n" - ' TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \\\n' - ' TORCH_CHECK((t).is_contiguous(), "Expected contiguous tensor")\n' + " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" + " TORCH_CHECK((t).is_contiguous(), \"Expected contiguous tensor\")\n" "#endif\n" "#ifndef CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA\n" "#define CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA(t) \\\n" - ' TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \\\n' - ' TORCH_CHECK((t).is_contiguous(), "Expected last-dim contiguous tensor")\n' + " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" + " TORCH_CHECK((t).is_contiguous(), \"Expected last-dim contiguous tensor\")\n" "#endif\n" "#endif\n\n" "namespace pytorch_flash", @@ -671,8 +672,8 @@ def patch(self): # Guard mha_fwd_aot so it is only used when AOTriton is enabled filter_file( " return mha_fwd_aot(", - "#if defined(USE_MEM_EFF_ATTENTION) && !defined(DISABLE_AOTRITON)\n " - " return mha_fwd_aot(", + "#if defined(USE_MEM_EFF_ATTENTION) && !defined(DISABLE_AOTRITON)\n" + " return mha_fwd_aot(", attention_cu, string=True, ) From 473884c96f6bbade10b3f682d83474dccc3c7bb9 Mon Sep 17 00:00:00 2001 From: Renjith Ravindran Date: Thu, 19 Mar 2026 18:17:45 -0700 Subject: [PATCH 30/40] pre/style check failure correction --- .../builtin/packages/py_torch/package.py | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index a1c2a26cbb4..32fb054748a 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -653,19 +653,22 @@ def patch(self): filter_file( _rocm_attn_if + "namespace pytorch_flash", _rocm_attn_if - "#ifdef __HIP_PLATFORM_AMD__\n" - "#ifndef CHECK_NOSPARSE_CONTIGUOUS_CUDA\n" - "#define CHECK_NOSPARSE_CONTIGUOUS_CUDA(t) \\\n" - " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" - " TORCH_CHECK((t).is_contiguous(), \"Expected contiguous tensor\")\n" - "#endif\n" - "#ifndef CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA\n" - "#define CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA(t) \\\n" - " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" - " TORCH_CHECK((t).is_contiguous(), \"Expected last-dim contiguous tensor\")\n" - "#endif\n" - "#endif\n\n" - "namespace pytorch_flash", + + ( + "#ifdef __HIP_PLATFORM_AMD__\n" + "#ifndef CHECK_NOSPARSE_CONTIGUOUS_CUDA\n" + "#define CHECK_NOSPARSE_CONTIGUOUS_CUDA(t) \\\n" + " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" + " TORCH_CHECK((t).is_contiguous(), \"Expected contiguous tensor\")\n" + "#endif\n" + "#ifndef CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA\n" + "#define CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA(t) \\\n" + " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" + " TORCH_CHECK((t).is_contiguous(), " + '"Expected last-dim contiguous tensor")\n' + "#endif\n" + "#endif\n\n" + "namespace pytorch_flash" + ), attention_cu, string=True, ) From bc743986c641bb1405b5d3fb5ebdce84ec3c9533 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath <94420380+renjithravindrankannath@users.noreply.github.com> Date: Fri, 20 Mar 2026 01:30:40 +0000 Subject: [PATCH 31/40] [@spackbot] updating style on behalf of renjithravindrankannath --- repos/spack_repo/builtin/packages/py_torch/package.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index 32fb054748a..dc88a73e130 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -657,12 +657,12 @@ def patch(self): "#ifdef __HIP_PLATFORM_AMD__\n" "#ifndef CHECK_NOSPARSE_CONTIGUOUS_CUDA\n" "#define CHECK_NOSPARSE_CONTIGUOUS_CUDA(t) \\\n" - " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" - " TORCH_CHECK((t).is_contiguous(), \"Expected contiguous tensor\")\n" + ' TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \\\n' + ' TORCH_CHECK((t).is_contiguous(), "Expected contiguous tensor")\n' "#endif\n" "#ifndef CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA\n" "#define CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA(t) \\\n" - " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" + ' TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \\\n' " TORCH_CHECK((t).is_contiguous(), " '"Expected last-dim contiguous tensor")\n' "#endif\n" From 6656f56f7ec3f0bb7ab61051fc75322839a2ae86 Mon Sep 17 00:00:00 2001 From: Renjith Ravindran Date: Fri, 20 Mar 2026 09:51:19 -0700 Subject: [PATCH 32/40] Build failure fix --- .../builtin/packages/py_torch/package.py | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index dc88a73e130..78759954881 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -657,12 +657,12 @@ def patch(self): "#ifdef __HIP_PLATFORM_AMD__\n" "#ifndef CHECK_NOSPARSE_CONTIGUOUS_CUDA\n" "#define CHECK_NOSPARSE_CONTIGUOUS_CUDA(t) \\\n" - ' TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \\\n' - ' TORCH_CHECK((t).is_contiguous(), "Expected contiguous tensor")\n' + " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" + " TORCH_CHECK((t).is_contiguous(), \"Expected contiguous tensor\")\n" "#endif\n" "#ifndef CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA\n" "#define CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA(t) \\\n" - ' TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \\\n' + " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" " TORCH_CHECK((t).is_contiguous(), " '"Expected last-dim contiguous tensor")\n' "#endif\n" @@ -680,16 +680,25 @@ def patch(self): attention_cu, string=True, ) + # Closing must match PyTorch 2.10.x formatting (6 spaces before + # gen_), not " gen_);\n }" — otherwise the #if above is never + # closed and HIP reports an unterminated conditional at the outer + # #if defined(USE_ROCM)... line in attention.hip. filter_file( - " gen_);\n }", - " gen_);\n#else\n" + " gen_);\n" + "}\n" + "}", + " gen_);\n" + "#else\n" " TORCH_CHECK(false,\n" ' "ROCm flash/mem_eff attention requires AOTriton ' '(USE_MEM_EFF_ATTENTION and not DISABLE_AOTRITON).");\n' " return std::make_tuple(\n" " at::Tensor(), at::Tensor(), at::Tensor(), at::Tensor(),\n" " at::Tensor(), at::Tensor(), at::Tensor(), at::Tensor());\n" - "#endif\n }", + "#endif\n" + "}\n" + "}", attention_cu, string=True, ) From ac9addb2d0701766828039cfc5885fa54613a152 Mon Sep 17 00:00:00 2001 From: Renjith Ravindran Date: Fri, 20 Mar 2026 10:06:47 -0700 Subject: [PATCH 33/40] Style check failure fix --- repos/spack_repo/builtin/packages/py_torch/package.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index 78759954881..a379845b4c6 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -657,12 +657,12 @@ def patch(self): "#ifdef __HIP_PLATFORM_AMD__\n" "#ifndef CHECK_NOSPARSE_CONTIGUOUS_CUDA\n" "#define CHECK_NOSPARSE_CONTIGUOUS_CUDA(t) \\\n" - " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" - " TORCH_CHECK((t).is_contiguous(), \"Expected contiguous tensor\")\n" + ' TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \\\n' + ' TORCH_CHECK((t).is_contiguous(), "Expected contiguous tensor")\n' "#endif\n" "#ifndef CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA\n" "#define CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA(t) \\\n" - " TORCH_CHECK(!(t).is_sparse(), \"Expected dense tensor\"); \\\n" + ' TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \\\n' " TORCH_CHECK((t).is_contiguous(), " '"Expected last-dim contiguous tensor")\n' "#endif\n" @@ -685,9 +685,7 @@ def patch(self): # closed and HIP reports an unterminated conditional at the outer # #if defined(USE_ROCM)... line in attention.hip. filter_file( - " gen_);\n" - "}\n" - "}", + " gen_);\n" "}\n" "}", " gen_);\n" "#else\n" " TORCH_CHECK(false,\n" From 4413d9f6730adbb84e8b152c91afe9e0ef06037b Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Wed, 25 Mar 2026 17:43:51 -0400 Subject: [PATCH 34/40] restricting patch to 2.9 --- repos/spack_repo/builtin/packages/py_torch/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index a379845b4c6..b7489b530c4 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -643,7 +643,7 @@ def patch(self): # Fix ROCm HIP build for 2.9+: define CHECK_NOSPARSE_* for HIP and guard # mha_fwd_aot so it is only called when USE_MEM_EFF_ATTENTION and not # DISABLE_AOTRITON (avoids undeclared identifier in attention.hip). - if self.spec.satisfies("@2.9:+rocm"): + if self.spec.satisfies("@2.9+rocm"): attention_cu = "aten/src/ATen/native/transformers/cuda/attention.cu" _rocm_attn_if = ( "#if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) || " From 89f184c37e21bfdbcc990960ffcb4245ef85f222 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Wed, 22 Apr 2026 14:28:19 -0700 Subject: [PATCH 35/40] Update in aotriton dependency for version 2.11 --- repos/spack_repo/builtin/packages/py_torch/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index b7489b530c4..3e297dfba76 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -353,7 +353,8 @@ class PyTorch(PythonPackage, CudaPackage, ROCmPackage): depends_on("hipsparselt@7.0:", when="@2.9:") depends_on("aotriton@0.8b", when="@2.5:2.6") depends_on("aotriton@0.9.2b", when="@2.7") - depends_on("aotriton@0.10b", when="@2.8:") + depends_on("aotriton@0.10b", when="@2.8:2.10") + depends_on("aotriton@0.11b", when="@2.11:") depends_on("mpi", when="+mpi") depends_on("ucc", when="+ucc") From adc5b1a6da38be7bbfb9577d458bbca42ce06765 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Fri, 24 Apr 2026 10:21:59 -0700 Subject: [PATCH 36/40] Adding changes from PR 4205 temporarily to check ci build --- repos/spack_repo/builtin/packages/aotriton/package.py | 4 +++- .../spack_repo/builtin/packages/composable_kernel/package.py | 4 +++- repos/spack_repo/builtin/packages/miopen_hip/package.py | 5 ++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/repos/spack_repo/builtin/packages/aotriton/package.py b/repos/spack_repo/builtin/packages/aotriton/package.py index 60ac2625996..ff1ce88e3ac 100644 --- a/repos/spack_repo/builtin/packages/aotriton/package.py +++ b/repos/spack_repo/builtin/packages/aotriton/package.py @@ -60,7 +60,7 @@ class Aotriton(CMakePackage): depends_on("pkgconfig", type="build") # build llvm version with mlir with the commit that matches inside the llvm-hash.txt - depends_on("aotriton-llvm@0.10", when="@0.10b") + depends_on("aotriton-llvm@0.10", when="@0.10b:") depends_on("aotriton-llvm@0.9", when="@0.9b") depends_on("aotriton-llvm@0.8", when="@0.8b") @@ -149,4 +149,6 @@ def cmake_args(self): self.spec["aotriton-llvm"].prefix.lib, ] args.append(self.define("CMAKE_INSTALL_RPATH", rpath_dirs)) + if self.spec.satisfies("@0.11b"): + args.append(self.define("AOTRITON_USE_TORCH", "OFF")) return args diff --git a/repos/spack_repo/builtin/packages/composable_kernel/package.py b/repos/spack_repo/builtin/packages/composable_kernel/package.py index 78f9f106cff..124614890ee 100644 --- a/repos/spack_repo/builtin/packages/composable_kernel/package.py +++ b/repos/spack_repo/builtin/packages/composable_kernel/package.py @@ -134,7 +134,9 @@ def cmake_args(self): args.append(self.define("INSTANCES_ONLY", "ON")) if self.run_tests: args.append(self.define("BUILD_TESTING", "ON")) - elif self.spec.satisfies("@:6.1"): + else: + args.append(self.define("BUILD_TESTING", "OFF")) + if self.spec.satisfies("@:6.1"): args.append(self.define("INSTANCES_ONLY", "ON")) if self.spec.satisfies("@:5.7"): args.append(self.define("CMAKE_CXX_FLAGS", "-O3")) diff --git a/repos/spack_repo/builtin/packages/miopen_hip/package.py b/repos/spack_repo/builtin/packages/miopen_hip/package.py index 6fc03a0bd16..f57f95e3c6b 100644 --- a/repos/spack_repo/builtin/packages/miopen_hip/package.py +++ b/repos/spack_repo/builtin/packages/miopen_hip/package.py @@ -2,7 +2,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import itertools import re from spack_repo.builtin.build_systems.cmake import CMakePackage @@ -119,12 +118,12 @@ def url_for_version(self, version): depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}") depends_on(f"hip@{ver}", when=f"@{ver}") depends_on(f"rocm-clang-ocl@{ver}", when=f"@{ver}") - depends_on(f"rocblas@{ver}", when=f"@{ver}") - for tgt in itertools.chain(["auto"], amdgpu_targets): + for tgt in ROCmPackage.amdgpu_targets: depends_on( f"composable-kernel@{ver} amdgpu_target={tgt}", when=f"@{ver} +ck amdgpu_target={tgt}", ) + depends_on(f"rocblas@{ver} amdgpu_target={tgt}", when=f"@{ver} amdgpu_target={tgt}") for ver in ["6.0.0", "6.0.2", "6.1.0", "6.1.1", "6.1.2"]: depends_on(f"roctracer-dev@{ver}", when=f"@{ver}") From 37699fda59dd54ff85ecc29b6b325c074019f809 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath <94420380+renjithravindrankannath@users.noreply.github.com> Date: Fri, 24 Apr 2026 17:45:25 +0000 Subject: [PATCH 37/40] [@spackbot] updating style on behalf of renjithravindrankannath --- repos/spack_repo/builtin/packages/py_torch/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index 3e297dfba76..cd60db2734d 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -686,7 +686,7 @@ def patch(self): # closed and HIP reports an unterminated conditional at the outer # #if defined(USE_ROCM)... line in attention.hip. filter_file( - " gen_);\n" "}\n" "}", + " gen_);\n}\n}", " gen_);\n" "#else\n" " TORCH_CHECK(false,\n" From a00eb6768f48d1896b6687aa95eb8c8e65177914 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Mon, 27 Apr 2026 15:00:52 -0700 Subject: [PATCH 38/40] Removing patch since aotriton is updated --- .../builtin/packages/py_torch/package.py | 61 ------------------- 1 file changed, 61 deletions(-) diff --git a/repos/spack_repo/builtin/packages/py_torch/package.py b/repos/spack_repo/builtin/packages/py_torch/package.py index cd60db2734d..f94e3a4e7b0 100644 --- a/repos/spack_repo/builtin/packages/py_torch/package.py +++ b/repos/spack_repo/builtin/packages/py_torch/package.py @@ -641,67 +641,6 @@ def patch(self): string=True, ) - # Fix ROCm HIP build for 2.9+: define CHECK_NOSPARSE_* for HIP and guard - # mha_fwd_aot so it is only called when USE_MEM_EFF_ATTENTION and not - # DISABLE_AOTRITON (avoids undeclared identifier in attention.hip). - if self.spec.satisfies("@2.9+rocm"): - attention_cu = "aten/src/ATen/native/transformers/cuda/attention.cu" - _rocm_attn_if = ( - "#if defined(USE_ROCM) && (defined(USE_FLASH_ATTENTION) || " - "defined(USE_MEM_EFF_ATTENTION))\n" - ) - # Add CHECK_NOSPARSE_* macros for HIP after the ROCm flash/mem_eff block - filter_file( - _rocm_attn_if + "namespace pytorch_flash", - _rocm_attn_if - + ( - "#ifdef __HIP_PLATFORM_AMD__\n" - "#ifndef CHECK_NOSPARSE_CONTIGUOUS_CUDA\n" - "#define CHECK_NOSPARSE_CONTIGUOUS_CUDA(t) \\\n" - ' TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \\\n' - ' TORCH_CHECK((t).is_contiguous(), "Expected contiguous tensor")\n' - "#endif\n" - "#ifndef CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA\n" - "#define CHECK_NOSPARSE_LASTCONTIGUOUS_CUDA(t) \\\n" - ' TORCH_CHECK(!(t).is_sparse(), "Expected dense tensor"); \\\n' - " TORCH_CHECK((t).is_contiguous(), " - '"Expected last-dim contiguous tensor")\n' - "#endif\n" - "#endif\n\n" - "namespace pytorch_flash" - ), - attention_cu, - string=True, - ) - # Guard mha_fwd_aot so it is only used when AOTriton is enabled - filter_file( - " return mha_fwd_aot(", - "#if defined(USE_MEM_EFF_ATTENTION) && !defined(DISABLE_AOTRITON)\n" - " return mha_fwd_aot(", - attention_cu, - string=True, - ) - # Closing must match PyTorch 2.10.x formatting (6 spaces before - # gen_), not " gen_);\n }" — otherwise the #if above is never - # closed and HIP reports an unterminated conditional at the outer - # #if defined(USE_ROCM)... line in attention.hip. - filter_file( - " gen_);\n}\n}", - " gen_);\n" - "#else\n" - " TORCH_CHECK(false,\n" - ' "ROCm flash/mem_eff attention requires AOTriton ' - '(USE_MEM_EFF_ATTENTION and not DISABLE_AOTRITON).");\n' - " return std::make_tuple(\n" - " at::Tensor(), at::Tensor(), at::Tensor(), at::Tensor(),\n" - " at::Tensor(), at::Tensor(), at::Tensor(), at::Tensor());\n" - "#endif\n" - "}\n" - "}", - attention_cu, - string=True, - ) - def torch_cuda_arch_list(self, env): if "+cuda" in self.spec: torch_cuda_arch = CudaPackage.compute_capabilities( From 53960ae4fa44295efa8f05b640a60baf12d31005 Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Mon, 27 Apr 2026 16:44:50 -0700 Subject: [PATCH 39/40] Revert "Merge branch 'develop' into py-torch-2.9-2.10-rocm" This reverts commit 02fca438a304e6b89c339729c80b8f0530492494, reversing changes made to 8600e336995984ce70b0f77cff3192b243530012. --- .../builtin/packages/cabana/package.py | 6 ++---- .../builtin/packages/exaca/package.py | 6 ++---- .../builtin/packages/faiss/package.py | 10 ++++------ .../builtin/packages/finch/package.py | 6 ++---- .../builtin/packages/kokkos/package.py | 20 +++++++++---------- .../builtin/packages/py_jax/package.py | 4 ---- .../builtin/packages/py_jaxlib/package.py | 2 -- .../builtin/packages/py_tomlkit/package.py | 10 +++------- .../builtin/packages/py_tornado/package.py | 1 - .../builtin/packages/py_tqdm/package.py | 1 - .../builtin/packages/py_traits/package.py | 1 - .../builtin/packages/r_base64enc/package.py | 1 - .../builtin/packages/r_bayesplot/package.py | 1 - .../builtin/packages/r_bh/package.py | 1 - .../builtin/packages/r_blob/package.py | 1 - .../packages/r_bridgesampling/package.py | 1 - 16 files changed, 23 insertions(+), 49 deletions(-) diff --git a/repos/spack_repo/builtin/packages/cabana/package.py b/repos/spack_repo/builtin/packages/cabana/package.py index 7e2a669aba4..844871ac89f 100644 --- a/repos/spack_repo/builtin/packages/cabana/package.py +++ b/repos/spack_repo/builtin/packages/cabana/package.py @@ -31,10 +31,8 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage): _kokkos_backends = Kokkos.devices_variants for _backend in _kokkos_backends: - _deflt, _when, _descr = _kokkos_backends[_backend] - if _when is not None: - _when = f"^kokkos{_when}" - variant(_backend.lower(), default=_deflt, description=_descr, when=_when) + _deflt, _descr = _kokkos_backends[_backend] + variant(_backend.lower(), default=_deflt, description=_descr) variant("shared", default=True, description="Build shared libraries") variant("mpi", default=True, description="Build with mpi support") diff --git a/repos/spack_repo/builtin/packages/exaca/package.py b/repos/spack_repo/builtin/packages/exaca/package.py index 3bc99ec0128..ac6632035ae 100644 --- a/repos/spack_repo/builtin/packages/exaca/package.py +++ b/repos/spack_repo/builtin/packages/exaca/package.py @@ -33,10 +33,8 @@ class Exaca(CMakePackage, CudaPackage, ROCmPackage): _kokkos_backends = Kokkos.devices_variants for _backend in _kokkos_backends: - _deflt, _when, _descr = _kokkos_backends[_backend] - if _when is not None: - _when = f"^kokkos{_when}" - variant(_backend.lower(), default=_deflt, description=_descr, when=_when) + _deflt, _descr = _kokkos_backends[_backend] + variant(_backend.lower(), default=_deflt, description=_descr) variant("shared", default=True, description="Build shared libraries") variant("testing", default=False, description="Build unit tests") diff --git a/repos/spack_repo/builtin/packages/faiss/package.py b/repos/spack_repo/builtin/packages/faiss/package.py index 77f229f6334..832137465f1 100644 --- a/repos/spack_repo/builtin/packages/faiss/package.py +++ b/repos/spack_repo/builtin/packages/faiss/package.py @@ -4,11 +4,10 @@ import os -from spack_repo.builtin.build_systems import autotools, cmake +from spack_repo.builtin.build_systems import autotools, cmake, python from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.cuda import CudaPackage -from spack_repo.builtin.build_systems.python import PythonPipBuilder from spack.package import * @@ -35,7 +34,6 @@ class Faiss(AutotoolsPackage, CMakePackage, CudaPackage): license("MIT") - version("1.14.1", sha256="0216d38d8c5c460433815b72d3cde6725eaa5d5770576277a2abc01ffc414d20") version("1.8.0", sha256="56ece0a419d62eaa11e39022fa27c8ed6d5a9b9eb7416cc5a0fdbeab07ec2f0c") version("1.7.4", sha256="d9a7b31bf7fd6eb32c10b7ea7ff918160eed5be04fe63bb7b4b4b5f2bbde01ad") version("1.7.2", sha256="d49b4afd6a7a5b64f260a236ee9b2efb760edb08c33d5ea5610c2f078a5995ec") @@ -119,9 +117,9 @@ def install(self, pkg, spec, prefix): super().install(pkg, spec, prefix) if spec.satisfies("+python"): - class CustomPythonPipBuilder(PythonPipBuilder): + class CustomPythonPipBuilder(python.PythonPipBuilder): def __init__(self, pkg, build_dirname): - PythonPipBuilder.__init__(self, pkg) + python.PythonPipBuilder.__init__(self, pkg) self.build_dirname = build_dirname @property @@ -161,7 +159,7 @@ def install(self, pkg, spec, prefix): if self.spec.satisfies("+python"): with working_dir("python"): - pip(*PythonPipBuilder.std_args(pkg), f"--prefix={prefix}", ".") + pip(*python.PythonPipBuilder.std_args(pkg), f"--prefix={prefix}", ".") if "+tests" not in self.spec: return diff --git a/repos/spack_repo/builtin/packages/finch/package.py b/repos/spack_repo/builtin/packages/finch/package.py index 58a2e5e2aea..8350a9426df 100644 --- a/repos/spack_repo/builtin/packages/finch/package.py +++ b/repos/spack_repo/builtin/packages/finch/package.py @@ -28,10 +28,8 @@ class Finch(CMakePackage, CudaPackage, ROCmPackage): _kokkos_backends = Kokkos.devices_variants for _backend in _kokkos_backends: - _deflt, _when, _descr = _kokkos_backends[_backend] - if _when is not None: - _when = f"^kokkos{_when}" - variant(_backend.lower(), default=_deflt, description=_descr, when=_when) + _deflt, _descr = _kokkos_backends[_backend] + variant(_backend.lower(), default=_deflt, description=_descr) variant("shared", default=True, description="Build shared libraries") diff --git a/repos/spack_repo/builtin/packages/kokkos/package.py b/repos/spack_repo/builtin/packages/kokkos/package.py index 22ec94c825b..1e61ecaf042 100644 --- a/repos/spack_repo/builtin/packages/kokkos/package.py +++ b/repos/spack_repo/builtin/packages/kokkos/package.py @@ -111,19 +111,19 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage): conflicts("^cmake@3.28", when="@:4.2.01 +cuda") conflicts("^cuda@13:", when="@:4.7.0") - # device : (default value, when clause, description) devices_variants = { - "cuda": [False, None, "Whether to build CUDA backend"], - "openmp": [False, None, "Whether to build OpenMP backend"], - "threads": [False, None, "Whether to build the C++ threads backend"], - "serial": [False, None, "Whether to build serial backend"], - "rocm": [False, None, "Whether to build HIP backend"], - "sycl": [False, None, "Whether to build the SYCL backend"], - "openmptarget": [False, "@:5.0", "Whether to build the OpenMPTarget backend"], + "cuda": [False, "Whether to build CUDA backend"], + "openmp": [False, "Whether to build OpenMP backend"], + "threads": [False, "Whether to build the C++ threads backend"], + "serial": [False, "Whether to build serial backend"], + "rocm": [False, "Whether to build HIP backend"], + "sycl": [False, "Whether to build the SYCL backend"], + "openmptarget": [False, "Whether to build the OpenMPTarget backend"], } requires( "+serial", when="~hpx ~openmp ~threads", msg="Kokkos requires at least one host backend" ) + conflicts("+openmptarget", when="@5.1:") tpls_variants = { "hpx": [False, None, "Whether to enable the HPX library"], @@ -310,8 +310,8 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage): # FIXME this should move to the apu part variant("apu", default=False, description="Enable APU support", when="@4.5: +rocm") - for dev, (dflt, when, desc) in devices_variants.items(): - variant(dev, default=dflt, description=desc, when=when) + for dev, (dflt, desc) in devices_variants.items(): + variant(dev, default=dflt, description=desc) conflicts("+cuda", when="+rocm", msg="CUDA and ROCm are not compatible in Kokkos.") depends_on("intel-oneapi-dpl", when="+sycl") depends_on("rocthrust", when="@4.3: +rocm") diff --git a/repos/spack_repo/builtin/packages/py_jax/package.py b/repos/spack_repo/builtin/packages/py_jax/package.py index 9ceb32ad2f6..31685a267da 100644 --- a/repos/spack_repo/builtin/packages/py_jax/package.py +++ b/repos/spack_repo/builtin/packages/py_jax/package.py @@ -23,7 +23,6 @@ class PyJax(PythonPackage): tags = ["e4s"] - version("0.10.0", sha256="0119c767de1645f407df72345d28a3837dc904f1d698911c121d8f2b396fdece") version("0.9.2", sha256="42b28017b3e6b57a44b0274cc15f5153239c4873959030399ac1afc009c22365") version("0.9.1", sha256="ce1b82477ee192f0b1d9801b095aa0cf3839bc1fe0cbc071c961a24b3ff30361") version("0.9.0", sha256="e5ce9d6991333aeaad37729dd8315d29c4b094ea9476a32fb49933b556c723fb") @@ -100,7 +99,6 @@ class PyJax(PythonPackage): # https://github.com/google/jax/issues/19246 depends_on("py-numpy@:1", when="@:0.4.25") depends_on("py-opt-einsum") - depends_on("py-scipy@1.14:", when="@0.10:") depends_on("py-scipy@1.13:", when="@0.7.2:") depends_on("py-scipy@1.12:", when="@0.6.2:") depends_on("py-scipy@1.11.1:", when="@0.5:") @@ -112,7 +110,6 @@ class PyJax(PythonPackage): # jax/_src/lib/__init__.py # https://github.com/google/jax/commit/8be057de1f50756fe7522f7e98b2f30fad56f7e4 for v in [ - "0.10.0", "0.9.2", "0.9.1", "0.9.0", @@ -170,7 +167,6 @@ class PyJax(PythonPackage): depends_on(f"py-jaxlib@:{v}", when=f"@{v}") # See _minimum_jaxlib_version in jax/version.py - depends_on("py-jaxlib@0.10.0:", when="@0.10.0:") depends_on("py-jaxlib@0.9.2:", when="@0.9.2:") depends_on("py-jaxlib@0.9.1:", when="@0.9.1:") depends_on("py-jaxlib@0.9.0:", when="@0.9.0:") diff --git a/repos/spack_repo/builtin/packages/py_jaxlib/package.py b/repos/spack_repo/builtin/packages/py_jaxlib/package.py index c5a8a61c8fc..a8adaacacc0 100644 --- a/repos/spack_repo/builtin/packages/py_jaxlib/package.py +++ b/repos/spack_repo/builtin/packages/py_jaxlib/package.py @@ -49,7 +49,6 @@ class PyJaxlib(PythonPackage, CudaPackage, ROCmPackage): license("Apache-2.0") maintainers("adamjstewart", "jonas-eschle") - version("0.10.0", sha256="12ae17617d1346e2f98cfc48c1a000adc7389784eb119e8108a22dfd57cbb8c3") version("0.9.2", sha256="9e67faaa74be4539e397fe61317568545f9ea325ddf1f7f534929d508786f29e") version("0.9.1", sha256="1bdae0c3311165437461e9afe05b76de2adb9ce86b557b4bd270b0ec411ff27d") version("0.9.0", sha256="8525c72ac7ea01851297df5b25ca4622c65299c265c87dfe78420bb29e7b1bb3") @@ -161,7 +160,6 @@ class PyJaxlib(PythonPackage, CudaPackage, ROCmPackage): depends_on("python@:3.12", when="+rocm") # jaxlib/setup.py - depends_on("py-scipy@1.14:", when="@0.10:") depends_on("py-scipy@1.13:", when="@0.7.2:") depends_on("py-scipy@1.12:", when="@0.6.2:") depends_on("py-scipy@1.11.1:", when="@0.5:") diff --git a/repos/spack_repo/builtin/packages/py_tomlkit/package.py b/repos/spack_repo/builtin/packages/py_tomlkit/package.py index 47018858077..2ccac4550d4 100644 --- a/repos/spack_repo/builtin/packages/py_tomlkit/package.py +++ b/repos/spack_repo/builtin/packages/py_tomlkit/package.py @@ -15,7 +15,6 @@ class PyTomlkit(PythonPackage): license("MIT") - version("0.14.0", sha256="cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064") version("0.13.3", sha256="430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1") version("0.12.1", sha256="38e1ff8edb991273ec9f6181244a6a391ac30e9f5098e7535640ea6be97a7c86") version("0.11.8", sha256="9330fc7faa1db67b541b28e62018c17d20be733177d290a13b24c62d1614e0c3") @@ -24,10 +23,7 @@ class PyTomlkit(PythonPackage): version("0.7.2", sha256="d7a454f319a7e9bd2e249f239168729327e4dd2d27b17dc68be264ad1ce36754") version("0.7.0", sha256="ac57f29693fab3e309ea789252fcce3061e19110085aa31af5446ca749325618") + depends_on("python@3.8:", type=("build", "run"), when="@0.13:") + depends_on("python@3.7:", type=("build", "run"), when="@0.11.8:0.11") + depends_on("python@3.6:3", type=("build", "run"), when="@0.11.0:0.11.5") depends_on("py-poetry-core@1:", type="build") - - with default_args(type=("build", "run")): - depends_on("python@3.9:", when="@0.14:") - depends_on("python@3.8:", when="@0.13:") - depends_on("python@3.7:", when="@0.11.8:0.11") - depends_on("python@3.6:3", when="@0.11.0:0.11.5") diff --git a/repos/spack_repo/builtin/packages/py_tornado/package.py b/repos/spack_repo/builtin/packages/py_tornado/package.py index 7c2cedf0223..8e71edbf335 100644 --- a/repos/spack_repo/builtin/packages/py_tornado/package.py +++ b/repos/spack_repo/builtin/packages/py_tornado/package.py @@ -16,7 +16,6 @@ class PyTornado(PythonPackage): license("Apache-2.0") - version("6.5.5", sha256="192b8f3ea91bd7f1f50c06955416ed76c6b72f96779b962f07f911b91e8d30e9") version("6.5.2", sha256="ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0") version("6.3.3", sha256="e7d8db41c0181c80d76c982aacc442c0783a2c54d6400fe028954201a2e032fe") version("6.2", sha256="9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13") diff --git a/repos/spack_repo/builtin/packages/py_tqdm/package.py b/repos/spack_repo/builtin/packages/py_tqdm/package.py index 0c277954236..74075d88877 100644 --- a/repos/spack_repo/builtin/packages/py_tqdm/package.py +++ b/repos/spack_repo/builtin/packages/py_tqdm/package.py @@ -13,7 +13,6 @@ class PyTqdm(PythonPackage): homepage = "https://github.com/tqdm/tqdm" pypi = "tqdm/tqdm-4.45.0.tar.gz" - version("4.67.3", sha256="7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb") version("4.67.1", sha256="f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2") version("4.67.0", sha256="fe5a6f95e6fe0b9755e9469b77b9c3cf850048224ecaa8293d7d2d31f97d869a") version("4.66.6", sha256="4bdd694238bef1485ce839d67967ab50af8f9272aab687c0d7702a01da0be090") diff --git a/repos/spack_repo/builtin/packages/py_traits/package.py b/repos/spack_repo/builtin/packages/py_traits/package.py index 0a8be6448ca..1d2d8d21787 100644 --- a/repos/spack_repo/builtin/packages/py_traits/package.py +++ b/repos/spack_repo/builtin/packages/py_traits/package.py @@ -17,7 +17,6 @@ class PyTraits(PythonPackage): license("CC-BY-3.0") - version("7.1.0", sha256="af4775747e11e05ffe13d3ba463d92f67f1f3d1a9e4f46ba33a44ea22b0c9644") version("7.0.2", sha256="a563515809cb3911975de5a54209855f0b6fdb7ca6912a5e81de26529f70428c") version("6.4.2", sha256="5be7cc5fb7a99cba7e9014786373e3ad2f75efb445eeced094654bbaf3b0fa82") version("6.4.1", sha256="78bb2ccafd60aff606515aac46de64668a0a81cb5c54c650b9877a841aa9e812") diff --git a/repos/spack_repo/builtin/packages/r_base64enc/package.py b/repos/spack_repo/builtin/packages/r_base64enc/package.py index b64293ee890..8b7c50670ed 100644 --- a/repos/spack_repo/builtin/packages/r_base64enc/package.py +++ b/repos/spack_repo/builtin/packages/r_base64enc/package.py @@ -17,7 +17,6 @@ class RBase64enc(RPackage): license("GPL-2.0-only OR GPL-3.0-only") - version("0.1-6", sha256="3c7e9d22f7409fa2989008fa6e980c3dd8e2693eb20676acf2470ae7addb0816") version("0.1-3", sha256="6d856d8a364bcdc499a0bf38bfd283b7c743d08f0b288174fba7dbf0a04b688d") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_bayesplot/package.py b/repos/spack_repo/builtin/packages/r_bayesplot/package.py index 984d372109c..63af93900ff 100644 --- a/repos/spack_repo/builtin/packages/r_bayesplot/package.py +++ b/repos/spack_repo/builtin/packages/r_bayesplot/package.py @@ -23,7 +23,6 @@ class RBayesplot(RPackage): license("GPL-3.0-or-later") - version("1.15.0", sha256="114a99322fea66e3db911a3ea9d9272ad8aa7d247991c8fe5d4fb6aa2629479c") version("1.14.0", sha256="37d657a39d7115c76d7a86b8daca6160bc5caaa988dd9f9cfe1f51873b09724a") version("1.11.1", sha256="4f71e67391e0135acd3e890989b87025f3f8160242f532a8e1a0ed74ed0f3830") version("1.10.0", sha256="bb4cb92b1ae4cf8ae5f4b5cb092aba34af3d820d137e1f2265cca8f3e85113ff") diff --git a/repos/spack_repo/builtin/packages/r_bh/package.py b/repos/spack_repo/builtin/packages/r_bh/package.py index 722f4f0faed..7a3fbb8be95 100644 --- a/repos/spack_repo/builtin/packages/r_bh/package.py +++ b/repos/spack_repo/builtin/packages/r_bh/package.py @@ -27,7 +27,6 @@ class RBh(RPackage): cran = "BH" - version("1.90.0-1", sha256="2e1fafb05938e81073561ae4892dc543ef15807e375e0ea8fa75e3ab79f0281b") version("1.87.0-1", sha256="59829ae635f42a23289a1c51617f5f972704e1b243b604dad20ef5a812e60393") version("1.84.0-0", sha256="6fb660755f572cd975073d7052075654acf8db12d208954ca223b8e4f77ef1ac") version("1.81.0-1", sha256="f51c8badd6f181e06353314e1d15a6ec1495cc498ee74b6fa4ea8aba6e97ff64") diff --git a/repos/spack_repo/builtin/packages/r_blob/package.py b/repos/spack_repo/builtin/packages/r_blob/package.py index d26f048f244..42e0555b9e2 100644 --- a/repos/spack_repo/builtin/packages/r_blob/package.py +++ b/repos/spack_repo/builtin/packages/r_blob/package.py @@ -19,7 +19,6 @@ class RBlob(RPackage): license("MIT") - version("1.3.0", sha256="d4d2aeb8d17683bbfc256a7541e282af9663a752988a21a6ba72a4ab268c7331") version("1.2.4", sha256="d08922ebc4147d930fe4762b1b289935217308c6d3fcaa5ae028ce3f5cf2728f") version("1.2.3", sha256="2d88d683ee3d1b56b332b5c7769979b5d3994b5d9285ea634ec919576da3631b") version("1.2.2", sha256="4976053c65994c769a4c22b4553bea0bd9c623b3b991dbaf023d2a164770c7fa") diff --git a/repos/spack_repo/builtin/packages/r_bridgesampling/package.py b/repos/spack_repo/builtin/packages/r_bridgesampling/package.py index 3c429bbb6e0..fba212e2f75 100644 --- a/repos/spack_repo/builtin/packages/r_bridgesampling/package.py +++ b/repos/spack_repo/builtin/packages/r_bridgesampling/package.py @@ -20,7 +20,6 @@ class RBridgesampling(RPackage): license("GPL-2.0-or-later") - version("1.2-1", sha256="e85f4fa1d1c226e485b5ffb71b83c6d80d7d6a1083795af3e526b9c87929e998") version("1.1-2", sha256="54ecd39aa2e36d4d521d3d36425f9fe56a3f8547df6048c814c5931d790f3e6b") depends_on("cxx", type="build") # generated From 75d3209e521a55053d47039d9fc83a4c4b0073bf Mon Sep 17 00:00:00 2001 From: renjithravindrankannath Date: Wed, 29 Apr 2026 13:05:26 -0400 Subject: [PATCH 40/40] Reapply "Merge branch 'develop' into py-torch-2.9-2.10-rocm" This reverts commit 5c4a5d82a7656ded9da35c9b4e6c30ed63a36a53. --- .../builtin/packages/cabana/package.py | 6 ++++-- .../builtin/packages/exaca/package.py | 6 ++++-- .../builtin/packages/faiss/package.py | 10 ++++++---- .../builtin/packages/finch/package.py | 6 ++++-- .../builtin/packages/kokkos/package.py | 20 +++++++++---------- .../builtin/packages/py_jax/package.py | 4 ++++ .../builtin/packages/py_jaxlib/package.py | 2 ++ .../builtin/packages/py_tomlkit/package.py | 10 +++++++--- .../builtin/packages/py_tornado/package.py | 1 + .../builtin/packages/py_tqdm/package.py | 1 + .../builtin/packages/py_traits/package.py | 1 + .../builtin/packages/r_base64enc/package.py | 1 + .../builtin/packages/r_bayesplot/package.py | 1 + .../builtin/packages/r_bh/package.py | 1 + .../builtin/packages/r_blob/package.py | 1 + .../packages/r_bridgesampling/package.py | 1 + 16 files changed, 49 insertions(+), 23 deletions(-) diff --git a/repos/spack_repo/builtin/packages/cabana/package.py b/repos/spack_repo/builtin/packages/cabana/package.py index 844871ac89f..7e2a669aba4 100644 --- a/repos/spack_repo/builtin/packages/cabana/package.py +++ b/repos/spack_repo/builtin/packages/cabana/package.py @@ -31,8 +31,10 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage): _kokkos_backends = Kokkos.devices_variants for _backend in _kokkos_backends: - _deflt, _descr = _kokkos_backends[_backend] - variant(_backend.lower(), default=_deflt, description=_descr) + _deflt, _when, _descr = _kokkos_backends[_backend] + if _when is not None: + _when = f"^kokkos{_when}" + variant(_backend.lower(), default=_deflt, description=_descr, when=_when) variant("shared", default=True, description="Build shared libraries") variant("mpi", default=True, description="Build with mpi support") diff --git a/repos/spack_repo/builtin/packages/exaca/package.py b/repos/spack_repo/builtin/packages/exaca/package.py index ac6632035ae..3bc99ec0128 100644 --- a/repos/spack_repo/builtin/packages/exaca/package.py +++ b/repos/spack_repo/builtin/packages/exaca/package.py @@ -33,8 +33,10 @@ class Exaca(CMakePackage, CudaPackage, ROCmPackage): _kokkos_backends = Kokkos.devices_variants for _backend in _kokkos_backends: - _deflt, _descr = _kokkos_backends[_backend] - variant(_backend.lower(), default=_deflt, description=_descr) + _deflt, _when, _descr = _kokkos_backends[_backend] + if _when is not None: + _when = f"^kokkos{_when}" + variant(_backend.lower(), default=_deflt, description=_descr, when=_when) variant("shared", default=True, description="Build shared libraries") variant("testing", default=False, description="Build unit tests") diff --git a/repos/spack_repo/builtin/packages/faiss/package.py b/repos/spack_repo/builtin/packages/faiss/package.py index 832137465f1..77f229f6334 100644 --- a/repos/spack_repo/builtin/packages/faiss/package.py +++ b/repos/spack_repo/builtin/packages/faiss/package.py @@ -4,10 +4,11 @@ import os -from spack_repo.builtin.build_systems import autotools, cmake, python +from spack_repo.builtin.build_systems import autotools, cmake from spack_repo.builtin.build_systems.autotools import AutotoolsPackage from spack_repo.builtin.build_systems.cmake import CMakePackage from spack_repo.builtin.build_systems.cuda import CudaPackage +from spack_repo.builtin.build_systems.python import PythonPipBuilder from spack.package import * @@ -34,6 +35,7 @@ class Faiss(AutotoolsPackage, CMakePackage, CudaPackage): license("MIT") + version("1.14.1", sha256="0216d38d8c5c460433815b72d3cde6725eaa5d5770576277a2abc01ffc414d20") version("1.8.0", sha256="56ece0a419d62eaa11e39022fa27c8ed6d5a9b9eb7416cc5a0fdbeab07ec2f0c") version("1.7.4", sha256="d9a7b31bf7fd6eb32c10b7ea7ff918160eed5be04fe63bb7b4b4b5f2bbde01ad") version("1.7.2", sha256="d49b4afd6a7a5b64f260a236ee9b2efb760edb08c33d5ea5610c2f078a5995ec") @@ -117,9 +119,9 @@ def install(self, pkg, spec, prefix): super().install(pkg, spec, prefix) if spec.satisfies("+python"): - class CustomPythonPipBuilder(python.PythonPipBuilder): + class CustomPythonPipBuilder(PythonPipBuilder): def __init__(self, pkg, build_dirname): - python.PythonPipBuilder.__init__(self, pkg) + PythonPipBuilder.__init__(self, pkg) self.build_dirname = build_dirname @property @@ -159,7 +161,7 @@ def install(self, pkg, spec, prefix): if self.spec.satisfies("+python"): with working_dir("python"): - pip(*python.PythonPipBuilder.std_args(pkg), f"--prefix={prefix}", ".") + pip(*PythonPipBuilder.std_args(pkg), f"--prefix={prefix}", ".") if "+tests" not in self.spec: return diff --git a/repos/spack_repo/builtin/packages/finch/package.py b/repos/spack_repo/builtin/packages/finch/package.py index 8350a9426df..58a2e5e2aea 100644 --- a/repos/spack_repo/builtin/packages/finch/package.py +++ b/repos/spack_repo/builtin/packages/finch/package.py @@ -28,8 +28,10 @@ class Finch(CMakePackage, CudaPackage, ROCmPackage): _kokkos_backends = Kokkos.devices_variants for _backend in _kokkos_backends: - _deflt, _descr = _kokkos_backends[_backend] - variant(_backend.lower(), default=_deflt, description=_descr) + _deflt, _when, _descr = _kokkos_backends[_backend] + if _when is not None: + _when = f"^kokkos{_when}" + variant(_backend.lower(), default=_deflt, description=_descr, when=_when) variant("shared", default=True, description="Build shared libraries") diff --git a/repos/spack_repo/builtin/packages/kokkos/package.py b/repos/spack_repo/builtin/packages/kokkos/package.py index 1e61ecaf042..22ec94c825b 100644 --- a/repos/spack_repo/builtin/packages/kokkos/package.py +++ b/repos/spack_repo/builtin/packages/kokkos/package.py @@ -111,19 +111,19 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage): conflicts("^cmake@3.28", when="@:4.2.01 +cuda") conflicts("^cuda@13:", when="@:4.7.0") + # device : (default value, when clause, description) devices_variants = { - "cuda": [False, "Whether to build CUDA backend"], - "openmp": [False, "Whether to build OpenMP backend"], - "threads": [False, "Whether to build the C++ threads backend"], - "serial": [False, "Whether to build serial backend"], - "rocm": [False, "Whether to build HIP backend"], - "sycl": [False, "Whether to build the SYCL backend"], - "openmptarget": [False, "Whether to build the OpenMPTarget backend"], + "cuda": [False, None, "Whether to build CUDA backend"], + "openmp": [False, None, "Whether to build OpenMP backend"], + "threads": [False, None, "Whether to build the C++ threads backend"], + "serial": [False, None, "Whether to build serial backend"], + "rocm": [False, None, "Whether to build HIP backend"], + "sycl": [False, None, "Whether to build the SYCL backend"], + "openmptarget": [False, "@:5.0", "Whether to build the OpenMPTarget backend"], } requires( "+serial", when="~hpx ~openmp ~threads", msg="Kokkos requires at least one host backend" ) - conflicts("+openmptarget", when="@5.1:") tpls_variants = { "hpx": [False, None, "Whether to enable the HPX library"], @@ -310,8 +310,8 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage): # FIXME this should move to the apu part variant("apu", default=False, description="Enable APU support", when="@4.5: +rocm") - for dev, (dflt, desc) in devices_variants.items(): - variant(dev, default=dflt, description=desc) + for dev, (dflt, when, desc) in devices_variants.items(): + variant(dev, default=dflt, description=desc, when=when) conflicts("+cuda", when="+rocm", msg="CUDA and ROCm are not compatible in Kokkos.") depends_on("intel-oneapi-dpl", when="+sycl") depends_on("rocthrust", when="@4.3: +rocm") diff --git a/repos/spack_repo/builtin/packages/py_jax/package.py b/repos/spack_repo/builtin/packages/py_jax/package.py index 31685a267da..9ceb32ad2f6 100644 --- a/repos/spack_repo/builtin/packages/py_jax/package.py +++ b/repos/spack_repo/builtin/packages/py_jax/package.py @@ -23,6 +23,7 @@ class PyJax(PythonPackage): tags = ["e4s"] + version("0.10.0", sha256="0119c767de1645f407df72345d28a3837dc904f1d698911c121d8f2b396fdece") version("0.9.2", sha256="42b28017b3e6b57a44b0274cc15f5153239c4873959030399ac1afc009c22365") version("0.9.1", sha256="ce1b82477ee192f0b1d9801b095aa0cf3839bc1fe0cbc071c961a24b3ff30361") version("0.9.0", sha256="e5ce9d6991333aeaad37729dd8315d29c4b094ea9476a32fb49933b556c723fb") @@ -99,6 +100,7 @@ class PyJax(PythonPackage): # https://github.com/google/jax/issues/19246 depends_on("py-numpy@:1", when="@:0.4.25") depends_on("py-opt-einsum") + depends_on("py-scipy@1.14:", when="@0.10:") depends_on("py-scipy@1.13:", when="@0.7.2:") depends_on("py-scipy@1.12:", when="@0.6.2:") depends_on("py-scipy@1.11.1:", when="@0.5:") @@ -110,6 +112,7 @@ class PyJax(PythonPackage): # jax/_src/lib/__init__.py # https://github.com/google/jax/commit/8be057de1f50756fe7522f7e98b2f30fad56f7e4 for v in [ + "0.10.0", "0.9.2", "0.9.1", "0.9.0", @@ -167,6 +170,7 @@ class PyJax(PythonPackage): depends_on(f"py-jaxlib@:{v}", when=f"@{v}") # See _minimum_jaxlib_version in jax/version.py + depends_on("py-jaxlib@0.10.0:", when="@0.10.0:") depends_on("py-jaxlib@0.9.2:", when="@0.9.2:") depends_on("py-jaxlib@0.9.1:", when="@0.9.1:") depends_on("py-jaxlib@0.9.0:", when="@0.9.0:") diff --git a/repos/spack_repo/builtin/packages/py_jaxlib/package.py b/repos/spack_repo/builtin/packages/py_jaxlib/package.py index a8adaacacc0..c5a8a61c8fc 100644 --- a/repos/spack_repo/builtin/packages/py_jaxlib/package.py +++ b/repos/spack_repo/builtin/packages/py_jaxlib/package.py @@ -49,6 +49,7 @@ class PyJaxlib(PythonPackage, CudaPackage, ROCmPackage): license("Apache-2.0") maintainers("adamjstewart", "jonas-eschle") + version("0.10.0", sha256="12ae17617d1346e2f98cfc48c1a000adc7389784eb119e8108a22dfd57cbb8c3") version("0.9.2", sha256="9e67faaa74be4539e397fe61317568545f9ea325ddf1f7f534929d508786f29e") version("0.9.1", sha256="1bdae0c3311165437461e9afe05b76de2adb9ce86b557b4bd270b0ec411ff27d") version("0.9.0", sha256="8525c72ac7ea01851297df5b25ca4622c65299c265c87dfe78420bb29e7b1bb3") @@ -160,6 +161,7 @@ class PyJaxlib(PythonPackage, CudaPackage, ROCmPackage): depends_on("python@:3.12", when="+rocm") # jaxlib/setup.py + depends_on("py-scipy@1.14:", when="@0.10:") depends_on("py-scipy@1.13:", when="@0.7.2:") depends_on("py-scipy@1.12:", when="@0.6.2:") depends_on("py-scipy@1.11.1:", when="@0.5:") diff --git a/repos/spack_repo/builtin/packages/py_tomlkit/package.py b/repos/spack_repo/builtin/packages/py_tomlkit/package.py index 2ccac4550d4..47018858077 100644 --- a/repos/spack_repo/builtin/packages/py_tomlkit/package.py +++ b/repos/spack_repo/builtin/packages/py_tomlkit/package.py @@ -15,6 +15,7 @@ class PyTomlkit(PythonPackage): license("MIT") + version("0.14.0", sha256="cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064") version("0.13.3", sha256="430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1") version("0.12.1", sha256="38e1ff8edb991273ec9f6181244a6a391ac30e9f5098e7535640ea6be97a7c86") version("0.11.8", sha256="9330fc7faa1db67b541b28e62018c17d20be733177d290a13b24c62d1614e0c3") @@ -23,7 +24,10 @@ class PyTomlkit(PythonPackage): version("0.7.2", sha256="d7a454f319a7e9bd2e249f239168729327e4dd2d27b17dc68be264ad1ce36754") version("0.7.0", sha256="ac57f29693fab3e309ea789252fcce3061e19110085aa31af5446ca749325618") - depends_on("python@3.8:", type=("build", "run"), when="@0.13:") - depends_on("python@3.7:", type=("build", "run"), when="@0.11.8:0.11") - depends_on("python@3.6:3", type=("build", "run"), when="@0.11.0:0.11.5") depends_on("py-poetry-core@1:", type="build") + + with default_args(type=("build", "run")): + depends_on("python@3.9:", when="@0.14:") + depends_on("python@3.8:", when="@0.13:") + depends_on("python@3.7:", when="@0.11.8:0.11") + depends_on("python@3.6:3", when="@0.11.0:0.11.5") diff --git a/repos/spack_repo/builtin/packages/py_tornado/package.py b/repos/spack_repo/builtin/packages/py_tornado/package.py index 8e71edbf335..7c2cedf0223 100644 --- a/repos/spack_repo/builtin/packages/py_tornado/package.py +++ b/repos/spack_repo/builtin/packages/py_tornado/package.py @@ -16,6 +16,7 @@ class PyTornado(PythonPackage): license("Apache-2.0") + version("6.5.5", sha256="192b8f3ea91bd7f1f50c06955416ed76c6b72f96779b962f07f911b91e8d30e9") version("6.5.2", sha256="ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0") version("6.3.3", sha256="e7d8db41c0181c80d76c982aacc442c0783a2c54d6400fe028954201a2e032fe") version("6.2", sha256="9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13") diff --git a/repos/spack_repo/builtin/packages/py_tqdm/package.py b/repos/spack_repo/builtin/packages/py_tqdm/package.py index 74075d88877..0c277954236 100644 --- a/repos/spack_repo/builtin/packages/py_tqdm/package.py +++ b/repos/spack_repo/builtin/packages/py_tqdm/package.py @@ -13,6 +13,7 @@ class PyTqdm(PythonPackage): homepage = "https://github.com/tqdm/tqdm" pypi = "tqdm/tqdm-4.45.0.tar.gz" + version("4.67.3", sha256="7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb") version("4.67.1", sha256="f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2") version("4.67.0", sha256="fe5a6f95e6fe0b9755e9469b77b9c3cf850048224ecaa8293d7d2d31f97d869a") version("4.66.6", sha256="4bdd694238bef1485ce839d67967ab50af8f9272aab687c0d7702a01da0be090") diff --git a/repos/spack_repo/builtin/packages/py_traits/package.py b/repos/spack_repo/builtin/packages/py_traits/package.py index 1d2d8d21787..0a8be6448ca 100644 --- a/repos/spack_repo/builtin/packages/py_traits/package.py +++ b/repos/spack_repo/builtin/packages/py_traits/package.py @@ -17,6 +17,7 @@ class PyTraits(PythonPackage): license("CC-BY-3.0") + version("7.1.0", sha256="af4775747e11e05ffe13d3ba463d92f67f1f3d1a9e4f46ba33a44ea22b0c9644") version("7.0.2", sha256="a563515809cb3911975de5a54209855f0b6fdb7ca6912a5e81de26529f70428c") version("6.4.2", sha256="5be7cc5fb7a99cba7e9014786373e3ad2f75efb445eeced094654bbaf3b0fa82") version("6.4.1", sha256="78bb2ccafd60aff606515aac46de64668a0a81cb5c54c650b9877a841aa9e812") diff --git a/repos/spack_repo/builtin/packages/r_base64enc/package.py b/repos/spack_repo/builtin/packages/r_base64enc/package.py index 8b7c50670ed..b64293ee890 100644 --- a/repos/spack_repo/builtin/packages/r_base64enc/package.py +++ b/repos/spack_repo/builtin/packages/r_base64enc/package.py @@ -17,6 +17,7 @@ class RBase64enc(RPackage): license("GPL-2.0-only OR GPL-3.0-only") + version("0.1-6", sha256="3c7e9d22f7409fa2989008fa6e980c3dd8e2693eb20676acf2470ae7addb0816") version("0.1-3", sha256="6d856d8a364bcdc499a0bf38bfd283b7c743d08f0b288174fba7dbf0a04b688d") depends_on("c", type="build") # generated diff --git a/repos/spack_repo/builtin/packages/r_bayesplot/package.py b/repos/spack_repo/builtin/packages/r_bayesplot/package.py index 63af93900ff..984d372109c 100644 --- a/repos/spack_repo/builtin/packages/r_bayesplot/package.py +++ b/repos/spack_repo/builtin/packages/r_bayesplot/package.py @@ -23,6 +23,7 @@ class RBayesplot(RPackage): license("GPL-3.0-or-later") + version("1.15.0", sha256="114a99322fea66e3db911a3ea9d9272ad8aa7d247991c8fe5d4fb6aa2629479c") version("1.14.0", sha256="37d657a39d7115c76d7a86b8daca6160bc5caaa988dd9f9cfe1f51873b09724a") version("1.11.1", sha256="4f71e67391e0135acd3e890989b87025f3f8160242f532a8e1a0ed74ed0f3830") version("1.10.0", sha256="bb4cb92b1ae4cf8ae5f4b5cb092aba34af3d820d137e1f2265cca8f3e85113ff") diff --git a/repos/spack_repo/builtin/packages/r_bh/package.py b/repos/spack_repo/builtin/packages/r_bh/package.py index 7a3fbb8be95..722f4f0faed 100644 --- a/repos/spack_repo/builtin/packages/r_bh/package.py +++ b/repos/spack_repo/builtin/packages/r_bh/package.py @@ -27,6 +27,7 @@ class RBh(RPackage): cran = "BH" + version("1.90.0-1", sha256="2e1fafb05938e81073561ae4892dc543ef15807e375e0ea8fa75e3ab79f0281b") version("1.87.0-1", sha256="59829ae635f42a23289a1c51617f5f972704e1b243b604dad20ef5a812e60393") version("1.84.0-0", sha256="6fb660755f572cd975073d7052075654acf8db12d208954ca223b8e4f77ef1ac") version("1.81.0-1", sha256="f51c8badd6f181e06353314e1d15a6ec1495cc498ee74b6fa4ea8aba6e97ff64") diff --git a/repos/spack_repo/builtin/packages/r_blob/package.py b/repos/spack_repo/builtin/packages/r_blob/package.py index 42e0555b9e2..d26f048f244 100644 --- a/repos/spack_repo/builtin/packages/r_blob/package.py +++ b/repos/spack_repo/builtin/packages/r_blob/package.py @@ -19,6 +19,7 @@ class RBlob(RPackage): license("MIT") + version("1.3.0", sha256="d4d2aeb8d17683bbfc256a7541e282af9663a752988a21a6ba72a4ab268c7331") version("1.2.4", sha256="d08922ebc4147d930fe4762b1b289935217308c6d3fcaa5ae028ce3f5cf2728f") version("1.2.3", sha256="2d88d683ee3d1b56b332b5c7769979b5d3994b5d9285ea634ec919576da3631b") version("1.2.2", sha256="4976053c65994c769a4c22b4553bea0bd9c623b3b991dbaf023d2a164770c7fa") diff --git a/repos/spack_repo/builtin/packages/r_bridgesampling/package.py b/repos/spack_repo/builtin/packages/r_bridgesampling/package.py index fba212e2f75..3c429bbb6e0 100644 --- a/repos/spack_repo/builtin/packages/r_bridgesampling/package.py +++ b/repos/spack_repo/builtin/packages/r_bridgesampling/package.py @@ -20,6 +20,7 @@ class RBridgesampling(RPackage): license("GPL-2.0-or-later") + version("1.2-1", sha256="e85f4fa1d1c226e485b5ffb71b83c6d80d7d6a1083795af3e526b9c87929e998") version("1.1-2", sha256="54ecd39aa2e36d4d521d3d36425f9fe56a3f8547df6048c814c5931d790f3e6b") depends_on("cxx", type="build") # generated