From 2dbc80699358ffb560485ef7aecaf16975eceb3a Mon Sep 17 00:00:00 2001 From: ethanwee1 Date: Mon, 27 Jul 2026 14:04:16 +0000 Subject: [PATCH 1/2] build(pytorch): remove release/2.10 from build matrices Drop release/2.10 from CI/release PyTorch ref lists, source manifest defaults, and unsupported-family filters. Mark 2.10 as previously built in docs, remove the 2.10-specific skip-tests file, and bump dev CI workflow defaults to 2.11. Mirrors HereThereBeDragons #6577 (release/2.9 removal). --- ...build_portable_linux_pytorch_wheels_ci.yml | 4 +- ...i_arch_build_windows_pytorch_wheels_ci.yml | 4 +- RELEASES.md | 1 - .../configure_pytorch_release_matrix.py | 9 +- .../generate_pytorch_source_manifest.py | 3 +- .../summarize_test_pytorch_workflow.py | 2 +- .../tests/configure_multi_arch_ci_test.py | 7 +- .../configure_pytorch_release_matrix_test.py | 11 +- .../generate_pytorch_source_manifest_test.py | 50 +++---- .../summarize_test_pytorch_workflow_test.py | 4 +- external-builds/pytorch/README.md | 10 +- external-builds/pytorch/skip_tests/generic.py | 2 +- .../pytorch/skip_tests/pytorch_2.10.py | 133 ------------------ .../pytorch/skip_tests/pytorch_2.13.py | 2 +- 14 files changed, 46 insertions(+), 196 deletions(-) delete mode 100644 external-builds/pytorch/skip_tests/pytorch_2.10.py diff --git a/.github/workflows/multi_arch_build_portable_linux_pytorch_wheels_ci.yml b/.github/workflows/multi_arch_build_portable_linux_pytorch_wheels_ci.yml index c97ddce11cf..ce7954f29ca 100644 --- a/.github/workflows/multi_arch_build_portable_linux_pytorch_wheels_ci.yml +++ b/.github/workflows/multi_arch_build_portable_linux_pytorch_wheels_ci.yml @@ -30,7 +30,7 @@ on: pytorch_git_ref: description: PyTorch ref to checkout (typically "release/X.Y") type: string - default: "release/2.10" + default: "release/2.11" rocm_package_find_links_url: description: URL for pip --find-links to install ROCm packages (flat page; use this OR rocm_package_index_url) type: string @@ -81,7 +81,7 @@ on: pytorch_git_ref: description: PyTorch ref to checkout (typically "release/X.Y") type: string - default: "release/2.10" + default: "release/2.11" rocm_package_find_links_url: description: URL for pip --find-links to install ROCm packages (flat page; use this OR rocm_package_index_url) type: string diff --git a/.github/workflows/multi_arch_build_windows_pytorch_wheels_ci.yml b/.github/workflows/multi_arch_build_windows_pytorch_wheels_ci.yml index 5cec433e47e..69a92e46c6f 100644 --- a/.github/workflows/multi_arch_build_windows_pytorch_wheels_ci.yml +++ b/.github/workflows/multi_arch_build_windows_pytorch_wheels_ci.yml @@ -29,7 +29,7 @@ on: pytorch_git_ref: description: PyTorch ref to checkout (typically "release/X.Y") type: string - default: "release/2.10" + default: "release/2.11" rocm_package_find_links_url: description: URL for pip --find-links to install ROCm packages (flat page; use this OR rocm_package_index_url) type: string @@ -80,7 +80,7 @@ on: pytorch_git_ref: description: PyTorch ref to checkout (typically "release/X.Y") type: string - default: "release/2.10" + default: "release/2.11" rocm_package_find_links_url: description: URL for pip --find-links to install ROCm packages (flat page; use this OR rocm_package_index_url) type: string diff --git a/RELEASES.md b/RELEASES.md index 39415b43fea..c9ab1f16365 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -326,7 +326,6 @@ Select your GPU target using the `[device-*]` extras from the > | 2.13 | 2.11 | 0.28 | 1.13 | > | 2.12 | 2.11 | 0.27 | 1.12 | > | 2.11 | 2.11 | 0.26 | 1.11 | -> | 2.10 | 2.10 | 0.25 | 1.10 | > > For example, `torch` 2.11 and compatible wheels can be installed by specifying > diff --git a/build_tools/github_actions/configure_pytorch_release_matrix.py b/build_tools/github_actions/configure_pytorch_release_matrix.py index 46a3b55fb99..93a62115967 100644 --- a/build_tools/github_actions/configure_pytorch_release_matrix.py +++ b/build_tools/github_actions/configure_pytorch_release_matrix.py @@ -30,13 +30,11 @@ # this set with additional refs (see RELEASE_PYTORCH_REFS). RELEASE_STABLE_PYTORCH_REFS = { "linux": [ - "release/2.10", "release/2.11", "release/2.12", "release/2.13", ], "windows": [ - "release/2.10", "release/2.11", "release/2.12", "release/2.13", @@ -50,8 +48,8 @@ } CI_PYTORCH_REFS = { - "linux": ["release/2.10", "release/2.11", "release/2.12", "release/2.13"], - "windows": ["release/2.10"], + "linux": ["release/2.11", "release/2.12", "release/2.13"], + "windows": ["release/2.11"], } # Unknown explicit refs are left unfiltered so bring-up branches can opt into @@ -62,8 +60,6 @@ # will be added to the stable branches. UNSUPPORTED_AMDGPU_FAMILIES = { "linux": { - # gfx125x not supported for PyTorch 2.10. - "release/2.10": {"gfx125X-dcgpu", "gfx90c"}, # gfx125x supported for PyTorch 2.11 via https://github.com/ROCm/pytorch/pull/3346. "release/2.11": {"gfx90c"}, # gfx125x supported for PyTorch 2.12 via https://github.com/ROCm/pytorch/pull/3421. @@ -75,7 +71,6 @@ "nightly": {}, }, "windows": { - "release/2.10": {"gfx90c"}, "release/2.11": {"gfx90c"}, "release/2.12": {"gfx90c"}, "release/2.13": {"gfx90c"}, diff --git a/build_tools/github_actions/generate_pytorch_source_manifest.py b/build_tools/github_actions/generate_pytorch_source_manifest.py index be91e5e6d47..9834d0309c0 100644 --- a/build_tools/github_actions/generate_pytorch_source_manifest.py +++ b/build_tools/github_actions/generate_pytorch_source_manifest.py @@ -39,7 +39,6 @@ ) DEFAULT_PYTORCH_GIT_REFS = [ - "release/2.10", "release/2.11", "release/2.12", "release/2.13", @@ -161,7 +160,7 @@ def _parse_related_commits(content: str) -> dict[str, dict[str, str]]: if not line or line.startswith("#"): continue # Example: - # ubuntu|pytorch|torchaudio|release/2.10||https://github.com/pytorch/audio + # ubuntu|pytorch|torchaudio|release/2.11||https://github.com/pytorch/audio parts = line.split("|") if len(parts) != 6: raise ValueError(f"Malformed related_commits line: {line!r}") diff --git a/build_tools/github_actions/summarize_test_pytorch_workflow.py b/build_tools/github_actions/summarize_test_pytorch_workflow.py index e4b41fd420e..c99c77fd04f 100755 --- a/build_tools/github_actions/summarize_test_pytorch_workflow.py +++ b/build_tools/github_actions/summarize_test_pytorch_workflow.py @@ -12,7 +12,7 @@ The script can be tested locally with inputs like this: python ./build_tools/github_actions/summarize_test_pytorch_workflow.py \ - --pytorch-git-ref=release/2.10 \ + --pytorch-git-ref=release/2.11 \ --index-url=https://rocm.nightlies.amd.com/whl-multi-arch/ \ --device-extras=device-gfx942 \ --torch-version=2.10.0+rocm7.12.0a20260501 diff --git a/build_tools/github_actions/tests/configure_multi_arch_ci_test.py b/build_tools/github_actions/tests/configure_multi_arch_ci_test.py index e07f08a4248..e860b4d0d80 100644 --- a/build_tools/github_actions/tests/configure_multi_arch_ci_test.py +++ b/build_tools/github_actions/tests/configure_multi_arch_ci_test.py @@ -1111,11 +1111,6 @@ def test_build_config_includes_pytorch_build_matrix(self): self.assertEqual( result.linux.pytorch_build_matrix, [ - { - "python_version": "3.12", - "pytorch_git_ref": "release/2.10", - "amdgpu_families": "gfx94X-dcgpu", - }, { "python_version": "3.12", "pytorch_git_ref": "release/2.11", @@ -1138,7 +1133,7 @@ def test_build_config_includes_pytorch_build_matrix(self): [ { "python_version": "3.12", - "pytorch_git_ref": "release/2.10", + "pytorch_git_ref": "release/2.11", "amdgpu_families": "gfx110X-all", } ], diff --git a/build_tools/github_actions/tests/configure_pytorch_release_matrix_test.py b/build_tools/github_actions/tests/configure_pytorch_release_matrix_test.py index 49225f7a681..ffb160d8cd4 100644 --- a/build_tools/github_actions/tests/configure_pytorch_release_matrix_test.py +++ b/build_tools/github_actions/tests/configure_pytorch_release_matrix_test.py @@ -31,11 +31,6 @@ def test_ci_linux_uses_reduced_matrix(self): self.assertEqual( matrix, [ - { - "python_version": "3.12", - "pytorch_git_ref": "release/2.10", - "amdgpu_families": "gfx94X-dcgpu", - }, { "python_version": "3.12", "pytorch_git_ref": "release/2.11", @@ -70,7 +65,7 @@ def test_ci_windows_uses_reduced_matrix(self): [ { "python_version": "3.12", - "pytorch_git_ref": "release/2.10", + "pytorch_git_ref": "release/2.11", "amdgpu_families": "gfx110X-all", }, ], @@ -98,7 +93,7 @@ def test_explicit_versions_and_refs_narrow_matrix(self): def test_filters_exact_unsupported_family(self): # Unsupported families are filtered while supported ones are kept. - for pytorch_git_ref in ("release/2.10", "release/2.13"): + for pytorch_git_ref in ("release/2.13",): with self.subTest(pytorch_git_ref=pytorch_git_ref): matrix = m.generate_pytorch_matrix_for_release_type( release_type="dev", @@ -182,7 +177,7 @@ def test_generated_rows_cover_workflow_matrix_inputs(self): matrix = m.generate_pytorch_matrix_for_release_type( release_type=release_type, python_versions=["3.12"], - pytorch_git_refs=["release/2.10"], + pytorch_git_refs=["release/2.11"], amdgpu_families="gfx94X-dcgpu", platform=platform, ) diff --git a/build_tools/github_actions/tests/generate_pytorch_source_manifest_test.py b/build_tools/github_actions/tests/generate_pytorch_source_manifest_test.py index 1d06a1a58bc..d601fee0534 100644 --- a/build_tools/github_actions/tests/generate_pytorch_source_manifest_test.py +++ b/build_tools/github_actions/tests/generate_pytorch_source_manifest_test.py @@ -39,14 +39,14 @@ def _stable_windows_github_data(self) -> tuple[dict[str, str], dict, dict]: } related_commits = "\n".join( [ - "ubuntu|pytorch|torchaudio|release/2.10|" + "ubuntu|pytorch|torchaudio|release/2.11|" f"{shas['audio']}|https://github.com/pytorch/audio", - "ubuntu|pytorch|torchvision|release/2.10|" + "ubuntu|pytorch|torchvision|release/2.11|" f"{shas['vision']}|https://github.com/pytorch/vision", ] ) resolves = { - ("ROCm/pytorch", "release/2.10"): shas["pytorch"], + ("ROCm/pytorch", "release/2.11"): shas["pytorch"], } files = { ("ROCm/pytorch", "related_commits", shas["pytorch"]): related_commits, @@ -61,7 +61,7 @@ def _assert_related_commits_error( ) -> None: pytorch_sha = "1" * 40 resolves = { - ("ROCm/pytorch", "release/2.10"): pytorch_sha, + ("ROCm/pytorch", "release/2.11"): pytorch_sha, } files = { ("ROCm/pytorch", "related_commits", pytorch_sha): related_commits, @@ -70,7 +70,7 @@ def _assert_related_commits_error( with self._patch_github_api(resolves=resolves, files=files): with self.assertRaisesRegex(ValueError, pattern): m.generate_manifest( - pytorch_git_ref="release/2.10", + pytorch_git_ref="release/2.11", rocm_version="7.13.0a20260501", version_suffix="+rocm7.13.0a20260501", platform="linux", @@ -90,22 +90,22 @@ def test_stable_linux_manifest_resolves_related_commits_and_versions(self) -> No } related_commits = "\n".join( [ - "ubuntu|pytorch|torchaudio|release/2.10|" + "ubuntu|pytorch|torchaudio|release/2.11|" f"{shas['audio']}|https://github.com/pytorch/audio", - "centos|pytorch|torchaudio|release/2.10|" + "centos|pytorch|torchaudio|release/2.11|" f"{shas['audio']}|https://github.com/pytorch/audio", - "ubuntu|pytorch|torchvision|release/2.10|" + "ubuntu|pytorch|torchvision|release/2.11|" f"{shas['vision']}|https://github.com/pytorch/vision", - "centos|pytorch|torchvision|release/2.10|" + "centos|pytorch|torchvision|release/2.11|" f"{shas['vision']}|https://github.com/pytorch/vision", - "ubuntu|pytorch|apex|release/2.10|" + "ubuntu|pytorch|apex|release/2.11|" f"{shas['apex']}|https://github.com/ROCm/apex", - "centos|pytorch|apex|release/2.10|" + "centos|pytorch|apex|release/2.11|" f"{shas['apex']}|https://github.com/ROCm/apex", ] ) resolves = { - ("ROCm/pytorch", "release/2.10"): shas["pytorch"], + ("ROCm/pytorch", "release/2.11"): shas["pytorch"], } files = { ("ROCm/pytorch", "related_commits", shas["pytorch"]): related_commits, @@ -127,7 +127,7 @@ def test_stable_linux_manifest_resolves_related_commits_and_versions(self) -> No with self._patch_github_api(resolves=resolves, files=files): manifest = m.generate_manifest( - pytorch_git_ref="release/2.10", + pytorch_git_ref="release/2.11", rocm_version="7.13.0a20260501", version_suffix="+rocm7.13.0a20260501", platform="linux", @@ -149,7 +149,7 @@ def test_stable_linux_manifest_resolves_related_commits_and_versions(self) -> No "pytorch": m.GitSourceInfo( repo="https://github.com/ROCm/pytorch", commit=shas["pytorch"], - branch="release/2.10", + branch="release/2.11", version="2.10.0+rocm7.13.0a20260501", ), "pytorch_audio": m.GitSourceInfo( @@ -184,7 +184,7 @@ def test_stable_linux_manifest_resolves_related_commits_and_versions(self) -> No def test_stable_manifest_requires_related_commit_pins(self) -> None: pytorch_sha = "1" * 40 resolves = { - ("ROCm/pytorch", "release/2.10"): pytorch_sha, + ("ROCm/pytorch", "release/2.11"): pytorch_sha, } files = { ("ROCm/pytorch", "related_commits", pytorch_sha): "", @@ -193,7 +193,7 @@ def test_stable_manifest_requires_related_commit_pins(self) -> None: with self._patch_github_api(resolves=resolves, files=files): with self.assertRaisesRegex(ValueError, "torchaudio"): m.generate_manifest( - pytorch_git_ref="release/2.10", + pytorch_git_ref="release/2.11", rocm_version="7.13.0a20260501", version_suffix="+rocm7.13.0a20260501", platform="linux", @@ -206,7 +206,7 @@ def test_stable_manifest_requires_related_commit_pins(self) -> None: def test_pytorch_only_manifest_does_not_fetch_related_commits(self) -> None: pytorch_sha = "1" * 40 resolves = { - ("ROCm/pytorch", "release/2.10"): pytorch_sha, + ("ROCm/pytorch", "release/2.11"): pytorch_sha, } files = { ("ROCm/pytorch", "version.txt", pytorch_sha): "2.10.0\n", @@ -214,7 +214,7 @@ def test_pytorch_only_manifest_does_not_fetch_related_commits(self) -> None: with self._patch_github_api(resolves=resolves, files=files): manifest = m.generate_manifest( - pytorch_git_ref="release/2.10", + pytorch_git_ref="release/2.11", rocm_version="7.13.0a20260501", version_suffix="+rocm7.13.0a20260501", platform="linux", @@ -230,7 +230,7 @@ def test_pytorch_only_manifest_does_not_fetch_related_commits(self) -> None: "pytorch": m.GitSourceInfo( repo="https://github.com/ROCm/pytorch", commit=pytorch_sha, - branch="release/2.10", + branch="release/2.11", version="2.10.0+rocm7.13.0a20260501", ), "therock": m.GitSourceInfo( @@ -247,7 +247,7 @@ def test_manifest_rejects_unknown_project_before_resolving_refs(self) -> None: with mock.patch.object(m, "gha_resolve_git_ref") as resolve_ref: with self.assertRaisesRegex(ValueError, unknown_project): m.generate_manifest( - pytorch_git_ref="release/2.10", + pytorch_git_ref="release/2.11", rocm_version="7.13.0a20260501", version_suffix="+rocm7.13.0a20260501", platform="linux", @@ -375,7 +375,7 @@ def test_windows_release_manifest_excludes_triton_and_apex_by_default(self) -> N with self._patch_github_api(resolves=resolves, files=files): manifest = m.generate_manifest( - pytorch_git_ref="release/2.10", + pytorch_git_ref="release/2.11", rocm_version="7.13.0a20260501", version_suffix="+rocm7.13.0a20260501", platform="windows", @@ -445,7 +445,7 @@ def test_windows_nightly_manifest_uses_triton_windows_pin(self) -> None: def test_windows_release_manifest_triton_opt_in_errors(self) -> None: pytorch_sha = "1" * 40 resolves = { - ("ROCm/pytorch", "release/2.10"): pytorch_sha, + ("ROCm/pytorch", "release/2.11"): pytorch_sha, } files = {} @@ -455,7 +455,7 @@ def test_windows_release_manifest_triton_opt_in_errors(self) -> None: "Windows Triton.*PyTorch nightly", ): m.generate_manifest( - pytorch_git_ref="release/2.10", + pytorch_git_ref="release/2.11", rocm_version="7.13.0a20260501", version_suffix="+rocm7.13.0a20260501", platform="windows", @@ -474,7 +474,7 @@ def test_main_writes_single_output_manifest_with_project_filter(self) -> None: pytorch_sha = "1" * 40 triton_sha = "2" * 40 pytorch_repo = "ROCm/pytorch" - pytorch_ref = "release/2.10" + pytorch_ref = "release/2.11" # Mock GitHub ref resolution for the requested PyTorch ref. resolves = { @@ -557,7 +557,7 @@ def test_output_requires_single_ref(self) -> None: "--output", str(Path(tmp) / "manifest.json"), "--pytorch-git-refs", - "release/2.10 nightly", + "release/2.11 nightly", ] ) diff --git a/build_tools/github_actions/tests/summarize_test_pytorch_workflow_test.py b/build_tools/github_actions/tests/summarize_test_pytorch_workflow_test.py index 80090557cf3..8ac49c1955f 100644 --- a/build_tools/github_actions/tests/summarize_test_pytorch_workflow_test.py +++ b/build_tools/github_actions/tests/summarize_test_pytorch_workflow_test.py @@ -17,8 +17,8 @@ def _make_args( index_url, device_extras="", - torch_version="2.10.0+rocm7.12.0a20260501", - pytorch_git_ref="release/2.10", + torch_version="2.11.0+rocm7.12.0a20260501", + pytorch_git_ref="release/2.11", python_version="3.12", ): return argparse.Namespace( diff --git a/external-builds/pytorch/README.md b/external-builds/pytorch/README.md index dd0cf797e74..a9e1afdc4f9 100644 --- a/external-builds/pytorch/README.md +++ b/external-builds/pytorch/README.md @@ -83,7 +83,7 @@ See the following table for how each version is supported: | 2.12 alpha | Previously built | Previously built | | 2.11 | ✅ Using downstream ROCm/pytorch fork
  • [ROCm/pytorch `release/2.11` branch](https://github.com/ROCm/pytorch/tree/release/2.11)
    • [ROCm/triton](https://github.com/ROCm/triton) - [`ci_commit_pins/triton.txt`](https://github.com/ROCm/pytorch/blob/release/2.11/.ci/docker/ci_commit_pins/triton.txt)
  • [pytorch/audio](https://github.com/pytorch/audio) - ["rocm related commit"](https://github.com/ROCm/pytorch/blob/release/2.11/related_commits)
  • [pytorch/vision](https://github.com/pytorch/vision) - ["rocm related commit"](https://github.com/ROCm/pytorch/blob/release/2.11/related_commits)
  • [ROCm/apex `release/1.11.0` branch](https://github.com/ROCm/apex/tree/release/1.11.0) - ["rocm related commit"](https://github.com/ROCm/pytorch/blob/release/2.11/related_commits)
| ✅ Using downstream ROCm/pytorch fork
  • [ROCm/pytorch `release/2.11` branch](https://github.com/ROCm/pytorch/tree/release/2.11)
  • [pytorch/audio](https://github.com/pytorch/audio) - ["rocm related commit"](https://github.com/ROCm/pytorch/blob/release/2.11/related_commits)
  • [pytorch/vision](https://github.com/pytorch/vision) - ["rocm related commit"](https://github.com/ROCm/pytorch/blob/release/2.11/related_commits)
| | 2.11 alpha | Previously built | Previously built | -| 2.10 | ✅ Using downstream ROCm/pytorch fork
  • [ROCm/pytorch `release/2.10` branch](https://github.com/ROCm/pytorch/tree/release/2.10)
    • [ROCm/triton](https://github.com/ROCm/triton) - [`ci_commit_pins/triton.txt`](https://github.com/ROCm/pytorch/blob/release/2.10/.ci/docker/ci_commit_pins/triton.txt)
  • [pytorch/audio](https://github.com/pytorch/audio) - ["rocm related commit"](https://github.com/ROCm/pytorch/blob/release/2.10/related_commits)
  • [pytorch/vision](https://github.com/pytorch/vision) - ["rocm related commit"](https://github.com/ROCm/pytorch/blob/release/2.10/related_commits)
  • [ROCm/apex `release/1.10.0` branch](https://github.com/ROCm/apex/tree/release/1.10.0) - ["rocm related commit"](https://github.com/ROCm/pytorch/blob/release/2.10/related_commits)
| ✅ Using downstream ROCm/pytorch fork
  • [ROCm/pytorch `release/2.10` branch](https://github.com/ROCm/pytorch/tree/release/2.10)
  • [pytorch/audio](https://github.com/pytorch/audio) - ["rocm related commit"](https://github.com/ROCm/pytorch/blob/release/2.10/related_commits)
  • [pytorch/vision](https://github.com/pytorch/vision) - ["rocm related commit"](https://github.com/ROCm/pytorch/blob/release/2.10/related_commits)
| +| 2.10 | Previously built | Previously built | | 2.10 alpha | Previously built | Previously built | | 2.9 | Previously built | Previously built | | 2.9 alpha | Previously built | Previously built | @@ -530,13 +530,13 @@ which can then be read by the checkout script. python build_tools/github_actions/generate_pytorch_source_manifest.py \ --rocm-version 7.13.0a20260501 \ --output external-builds/pytorch/pytorch_manifest.json \ - --pytorch-git-refs "release/2.10" + --pytorch-git-refs "release/2.11" # Multiple versions (computed filenames in a directory): python build_tools/github_actions/generate_pytorch_source_manifest.py \ --rocm-version 7.13.0a20260501 \ --manifest-dir external-builds/pytorch/manifests/ \ - --pytorch-git-refs "release/2.10 release/2.11 nightly" + --pytorch-git-refs "release/2.11 release/2.12 nightly" # The target platform defaults to the current host. Pass it explicitly when # generating a manifest for another platform: @@ -544,13 +544,13 @@ python build_tools/github_actions/generate_pytorch_source_manifest.py \ --rocm-version 7.13.0a20260501 \ --platform windows \ --output manifest.json \ - --pytorch-git-refs "release/2.10" + --pytorch-git-refs "release/2.11" # Only pytorch (skip audio/vision/triton/apex): python build_tools/github_actions/generate_pytorch_source_manifest.py \ --rocm-version 7.13.0a20260501 \ --output external-builds/pytorch/manifest.json \ - --pytorch-git-refs "release/2.10" \ + --pytorch-git-refs "release/2.11" \ --projects pytorch ``` diff --git a/external-builds/pytorch/skip_tests/generic.py b/external-builds/pytorch/skip_tests/generic.py index d1446f00741..5d782578eab 100644 --- a/external-builds/pytorch/skip_tests/generic.py +++ b/external-builds/pytorch/skip_tests/generic.py @@ -221,7 +221,7 @@ # We should fix the test to fail/skip more gracefully. # subprocess.CalledProcessError: Command '['where', 'cl']' returned non-zero exit status 1. "test_multi_grad_all_hooks", - # This is/was also failing on gfx942 linux, see the 2.10 skip test file. + # This is/was also failing on gfx942 linux, see the 2.11 skip test file. # AssertionError: "Simulate error" does not match "grad can be implicitly created only for scalar outputs" "test_reentrant_parent_error_on_cpu_cuda", ], diff --git a/external-builds/pytorch/skip_tests/pytorch_2.10.py b/external-builds/pytorch/skip_tests/pytorch_2.10.py deleted file mode 100644 index 24d6b3d3585..00000000000 --- a/external-builds/pytorch/skip_tests/pytorch_2.10.py +++ /dev/null @@ -1,133 +0,0 @@ -# Copyright Advanced Micro Devices, Inc. -# SPDX-License-Identifier: MIT - -skip_tests = { - "common": { - "autograd": [ - # AssertionError: Booleans mismatch: False is not True - "test_warn_on_accumulate_grad_stream_mismatch_flag_cuda", - ], - "cuda": [ - # AttributeError: module 'torch.backends.cudnn.rnn' has no attribute 'fp32_precision' - "test_fp32_precision_with_float32_matmul_precision", - # AttributeError: module 'torch.backends.cudnn.rnn' has no attribute 'fp32_precision' - "test_fp32_precision_with_tf32", - # AttributeError: module 'torch.backends.cudnn.rnn' has no attribute 'fp32_precision' - "test_invalid_status_for_legacy_api", - # passes on single run, crashes if run in a group - # TypeError: 'CustomDecompTable' object is not a mapping - "test_memory_compile_regions", - # AssertionError: False is not true - "test_memory_plots", - # AssertionError: Booleans mismatch: False is not True - "test_memory_plots_free_segment_stack", - # FileNotFoundError: [Errno 2] No such file or directory: '/github/home/.cache//flamegraph.pl' - "test_memory_snapshot", - # AssertionError: String comparison failed: 'test_memory_snapshot' != 'foo' - "test_memory_snapshot_script", - # AssertionError: False is not true - "test_memory_snapshot_with_cpp", - # AssertionError: Scalars are not equal! - "test_mempool_ctx_multithread", - # RuntimeError: Error building extension 'dummy_allocator' - "test_mempool_empty_cache_inactive", - # RuntimeError: Error building extension 'dummy_allocator_v1' - "test_mempool_limited_memory_with_allocator", - # OSError: libhiprtc.so: cannot open shared object file: No such file or directory - # File "/home/tester/TheRock/.venv/lib/python3.12/site-packages/torch/cuda/_utils.py", line 57, in _get_hiprtc_library - # lib = ctypes.CDLL("libhiprtc.so") - "test_compile_kernel", - "test_compile_kernel_advanced", - "test_compile_kernel_as_custom_op", - "test_compile_kernel_cuda_headers", - "test_compile_kernel_custom_op_validation", - "test_compile_kernel_dlpack", - "test_compile_kernel_double_precision", - "test_compile_kernel_large_shared_memory", - "test_compile_kernel_template", - # torch._dynamo.exc.BackendCompilerFailed: backend='aot_eager' raised: - # TypeError: 'CustomDecompTable' object is not a mapping - "test_record_stream_on_shifted_view", - # AssertionError: Scalars are not close! - "test_allocator_settings", - ], - "torch": [ - "test_index_add_correctness", - # AssertionError: False is not true - "test_cpp_warnings_have_python_context_cuda", - ], - }, - "gfx94": { - "autograd": [ - # fixed or just good with no caching? - # "test_reentrant_parent_error_on_cpu_cuda", - # "test_multi_grad_all_hooks", - # - # Test run says they are good???? - # # AttributeError: 'torch._C._autograd.SavedTensor' object has no attribute 'data' - # "test_get_data_and_hooks_from_raw_saved_variable ", # new? - # # AssertionError: tensor(1., grad_fn=) is not None -- weakref not working? - # "test_custom_function_saving_mutated_view_no_leak", # new? - # # - # # RuntimeError: Output 0 of IdOneOutputBackward is a view and is being modified inplace. This view was created inside a custom - # # Function (or because an input was returned as-is) and the autograd logic to handle view+inplace would override the custom backward - # # associated with the custom Function, leading to incorrect gradients. This behavior is forbidden. You can fix this by cloning the output - # # of the custom Function. - # "test_autograd_simple_views_python", - "test_grad_dtype", - ], - "cuda": [ - # "test_cpp_memory_snapshot_pickle", - "test_graph_concurrent_replay ", - # - # - # for whatever reason these are also flaky: if run standalone they pass? - # AttributeError: Unknown attribute allow_bf16_reduced_precision_reduction_split_k - "test_cublas_allow_bf16_reduced_precision_reduction_get_set", - # AttributeError: Unknown attribute allow_fp16_reduced_precision_reduction_split_k - "test_cublas_allow_fp16_reduced_precision_reduction_get_set", - # AttributeError: Unknown attribute allow_bf16_reduced_precision_reduction_split_k - "test_cublas_allow_bf16_reduced_precision_reduction_get_set", - # AttributeError: Unknown attribute allow_fp16_reduced_precision_reduction_split_k - "test_cublas_allow_fp16_reduced_precision_reduction_get_set", - ], - "nn": [ - # Is now skipped.. on pytorch side - # RuntimeError: miopenStatusUnknownError - # MIOpen(HIP): Warning [BuildHip] In file included from /tmp/comgr-f75870/input/MIOpenDropoutHIP.cpp:32: - # /tmp/comgr-f75870/include/miopen_rocrand.hpp:45:10: fatal error: 'rocrand/rocrand_xorwow.h' file not found - # 45 | #include - # | ^~~~~~~~~~~~~~~~~~~~~~~~~~ - "test_cudnn_rnn_dropout_states_device", - ], - "torch": [ - "test_terminate_handler_on_crash", # flaky !! hangs forever or works... can need up to 30 sec to pass - ], - }, - "windows": { - "torch": [ - # Windows fatal exception: access violation - # pointing to common_cuda.py `_create_scaling_models_optimizers` - "test_grad_scaling_autocast_foreach0_fused0_Adam_cuda_float32", - ], - "cuda": [ - # Flaky? See https://github.com/ROCm/TheRock/issues/3724 - # ROCm allocator does not raise OOM in the same path as CUDA - # AssertionError: RuntimeError not raised - "test_out_of_memory_retry", - # This test uses subprocess.run, so it hangs. - # See https://github.com/ROCm/TheRock/issues/999. - "test_pinned_memory_use_background_threads", - # Windows fatal exception: access violation - # pointing to amdhip64_7.dll ? (happened on CI machine but not local?) - # Concerning... the code is just this: - # x = [torch.randn(4, 4).cuda(), torch.cuda.FloatTensor()] - # with tempfile.NamedTemporaryFile() as f: - # torch.save(x, f) - # f.seek(0) - # x_copy = torch.load(f) - "test_serialization_array_with_empty", - "test_serialization_array_with_storage", - ], - }, -} diff --git a/external-builds/pytorch/skip_tests/pytorch_2.13.py b/external-builds/pytorch/skip_tests/pytorch_2.13.py index 730ab06eb19..1b9d824adc3 100644 --- a/external-builds/pytorch/skip_tests/pytorch_2.13.py +++ b/external-builds/pytorch/skip_tests/pytorch_2.13.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MIT # Known failures on the PyTorch 2.13 wheels. These are already tracked in the -# other version skip files (pytorch_2.10.py - pytorch_2.12.py) and/or generic.py, +# other version skip files (pytorch_2.11.py - pytorch_2.12.py) and/or generic.py, # but those exclusions are not picked up for the 2.13 version, so they are # mirrored here. See # https://github.com/ROCm/TheRock/issues/5596 From 09f2e8f8060fe660296ebbaa459c59656484312c Mon Sep 17 00:00:00 2001 From: ethanwee1 Date: Tue, 28 Jul 2026 16:04:44 +0000 Subject: [PATCH 2/2] build(pytorch): address review comments Per ScottTodd's review: revert the source-manifest unit test changes and the related_commits example comment (tests/comments can keep referencing older branches), and reword the stale gfx942 skip-test comment so it is not tied to a specific release. --- .../generate_pytorch_source_manifest.py | 2 +- .../generate_pytorch_source_manifest_test.py | 50 +++++++++---------- external-builds/pytorch/skip_tests/generic.py | 2 +- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/build_tools/github_actions/generate_pytorch_source_manifest.py b/build_tools/github_actions/generate_pytorch_source_manifest.py index 9834d0309c0..f8201cee5f5 100644 --- a/build_tools/github_actions/generate_pytorch_source_manifest.py +++ b/build_tools/github_actions/generate_pytorch_source_manifest.py @@ -160,7 +160,7 @@ def _parse_related_commits(content: str) -> dict[str, dict[str, str]]: if not line or line.startswith("#"): continue # Example: - # ubuntu|pytorch|torchaudio|release/2.11||https://github.com/pytorch/audio + # ubuntu|pytorch|torchaudio|release/2.10||https://github.com/pytorch/audio parts = line.split("|") if len(parts) != 6: raise ValueError(f"Malformed related_commits line: {line!r}") diff --git a/build_tools/github_actions/tests/generate_pytorch_source_manifest_test.py b/build_tools/github_actions/tests/generate_pytorch_source_manifest_test.py index d601fee0534..1d06a1a58bc 100644 --- a/build_tools/github_actions/tests/generate_pytorch_source_manifest_test.py +++ b/build_tools/github_actions/tests/generate_pytorch_source_manifest_test.py @@ -39,14 +39,14 @@ def _stable_windows_github_data(self) -> tuple[dict[str, str], dict, dict]: } related_commits = "\n".join( [ - "ubuntu|pytorch|torchaudio|release/2.11|" + "ubuntu|pytorch|torchaudio|release/2.10|" f"{shas['audio']}|https://github.com/pytorch/audio", - "ubuntu|pytorch|torchvision|release/2.11|" + "ubuntu|pytorch|torchvision|release/2.10|" f"{shas['vision']}|https://github.com/pytorch/vision", ] ) resolves = { - ("ROCm/pytorch", "release/2.11"): shas["pytorch"], + ("ROCm/pytorch", "release/2.10"): shas["pytorch"], } files = { ("ROCm/pytorch", "related_commits", shas["pytorch"]): related_commits, @@ -61,7 +61,7 @@ def _assert_related_commits_error( ) -> None: pytorch_sha = "1" * 40 resolves = { - ("ROCm/pytorch", "release/2.11"): pytorch_sha, + ("ROCm/pytorch", "release/2.10"): pytorch_sha, } files = { ("ROCm/pytorch", "related_commits", pytorch_sha): related_commits, @@ -70,7 +70,7 @@ def _assert_related_commits_error( with self._patch_github_api(resolves=resolves, files=files): with self.assertRaisesRegex(ValueError, pattern): m.generate_manifest( - pytorch_git_ref="release/2.11", + pytorch_git_ref="release/2.10", rocm_version="7.13.0a20260501", version_suffix="+rocm7.13.0a20260501", platform="linux", @@ -90,22 +90,22 @@ def test_stable_linux_manifest_resolves_related_commits_and_versions(self) -> No } related_commits = "\n".join( [ - "ubuntu|pytorch|torchaudio|release/2.11|" + "ubuntu|pytorch|torchaudio|release/2.10|" f"{shas['audio']}|https://github.com/pytorch/audio", - "centos|pytorch|torchaudio|release/2.11|" + "centos|pytorch|torchaudio|release/2.10|" f"{shas['audio']}|https://github.com/pytorch/audio", - "ubuntu|pytorch|torchvision|release/2.11|" + "ubuntu|pytorch|torchvision|release/2.10|" f"{shas['vision']}|https://github.com/pytorch/vision", - "centos|pytorch|torchvision|release/2.11|" + "centos|pytorch|torchvision|release/2.10|" f"{shas['vision']}|https://github.com/pytorch/vision", - "ubuntu|pytorch|apex|release/2.11|" + "ubuntu|pytorch|apex|release/2.10|" f"{shas['apex']}|https://github.com/ROCm/apex", - "centos|pytorch|apex|release/2.11|" + "centos|pytorch|apex|release/2.10|" f"{shas['apex']}|https://github.com/ROCm/apex", ] ) resolves = { - ("ROCm/pytorch", "release/2.11"): shas["pytorch"], + ("ROCm/pytorch", "release/2.10"): shas["pytorch"], } files = { ("ROCm/pytorch", "related_commits", shas["pytorch"]): related_commits, @@ -127,7 +127,7 @@ def test_stable_linux_manifest_resolves_related_commits_and_versions(self) -> No with self._patch_github_api(resolves=resolves, files=files): manifest = m.generate_manifest( - pytorch_git_ref="release/2.11", + pytorch_git_ref="release/2.10", rocm_version="7.13.0a20260501", version_suffix="+rocm7.13.0a20260501", platform="linux", @@ -149,7 +149,7 @@ def test_stable_linux_manifest_resolves_related_commits_and_versions(self) -> No "pytorch": m.GitSourceInfo( repo="https://github.com/ROCm/pytorch", commit=shas["pytorch"], - branch="release/2.11", + branch="release/2.10", version="2.10.0+rocm7.13.0a20260501", ), "pytorch_audio": m.GitSourceInfo( @@ -184,7 +184,7 @@ def test_stable_linux_manifest_resolves_related_commits_and_versions(self) -> No def test_stable_manifest_requires_related_commit_pins(self) -> None: pytorch_sha = "1" * 40 resolves = { - ("ROCm/pytorch", "release/2.11"): pytorch_sha, + ("ROCm/pytorch", "release/2.10"): pytorch_sha, } files = { ("ROCm/pytorch", "related_commits", pytorch_sha): "", @@ -193,7 +193,7 @@ def test_stable_manifest_requires_related_commit_pins(self) -> None: with self._patch_github_api(resolves=resolves, files=files): with self.assertRaisesRegex(ValueError, "torchaudio"): m.generate_manifest( - pytorch_git_ref="release/2.11", + pytorch_git_ref="release/2.10", rocm_version="7.13.0a20260501", version_suffix="+rocm7.13.0a20260501", platform="linux", @@ -206,7 +206,7 @@ def test_stable_manifest_requires_related_commit_pins(self) -> None: def test_pytorch_only_manifest_does_not_fetch_related_commits(self) -> None: pytorch_sha = "1" * 40 resolves = { - ("ROCm/pytorch", "release/2.11"): pytorch_sha, + ("ROCm/pytorch", "release/2.10"): pytorch_sha, } files = { ("ROCm/pytorch", "version.txt", pytorch_sha): "2.10.0\n", @@ -214,7 +214,7 @@ def test_pytorch_only_manifest_does_not_fetch_related_commits(self) -> None: with self._patch_github_api(resolves=resolves, files=files): manifest = m.generate_manifest( - pytorch_git_ref="release/2.11", + pytorch_git_ref="release/2.10", rocm_version="7.13.0a20260501", version_suffix="+rocm7.13.0a20260501", platform="linux", @@ -230,7 +230,7 @@ def test_pytorch_only_manifest_does_not_fetch_related_commits(self) -> None: "pytorch": m.GitSourceInfo( repo="https://github.com/ROCm/pytorch", commit=pytorch_sha, - branch="release/2.11", + branch="release/2.10", version="2.10.0+rocm7.13.0a20260501", ), "therock": m.GitSourceInfo( @@ -247,7 +247,7 @@ def test_manifest_rejects_unknown_project_before_resolving_refs(self) -> None: with mock.patch.object(m, "gha_resolve_git_ref") as resolve_ref: with self.assertRaisesRegex(ValueError, unknown_project): m.generate_manifest( - pytorch_git_ref="release/2.11", + pytorch_git_ref="release/2.10", rocm_version="7.13.0a20260501", version_suffix="+rocm7.13.0a20260501", platform="linux", @@ -375,7 +375,7 @@ def test_windows_release_manifest_excludes_triton_and_apex_by_default(self) -> N with self._patch_github_api(resolves=resolves, files=files): manifest = m.generate_manifest( - pytorch_git_ref="release/2.11", + pytorch_git_ref="release/2.10", rocm_version="7.13.0a20260501", version_suffix="+rocm7.13.0a20260501", platform="windows", @@ -445,7 +445,7 @@ def test_windows_nightly_manifest_uses_triton_windows_pin(self) -> None: def test_windows_release_manifest_triton_opt_in_errors(self) -> None: pytorch_sha = "1" * 40 resolves = { - ("ROCm/pytorch", "release/2.11"): pytorch_sha, + ("ROCm/pytorch", "release/2.10"): pytorch_sha, } files = {} @@ -455,7 +455,7 @@ def test_windows_release_manifest_triton_opt_in_errors(self) -> None: "Windows Triton.*PyTorch nightly", ): m.generate_manifest( - pytorch_git_ref="release/2.11", + pytorch_git_ref="release/2.10", rocm_version="7.13.0a20260501", version_suffix="+rocm7.13.0a20260501", platform="windows", @@ -474,7 +474,7 @@ def test_main_writes_single_output_manifest_with_project_filter(self) -> None: pytorch_sha = "1" * 40 triton_sha = "2" * 40 pytorch_repo = "ROCm/pytorch" - pytorch_ref = "release/2.11" + pytorch_ref = "release/2.10" # Mock GitHub ref resolution for the requested PyTorch ref. resolves = { @@ -557,7 +557,7 @@ def test_output_requires_single_ref(self) -> None: "--output", str(Path(tmp) / "manifest.json"), "--pytorch-git-refs", - "release/2.11 nightly", + "release/2.10 nightly", ] ) diff --git a/external-builds/pytorch/skip_tests/generic.py b/external-builds/pytorch/skip_tests/generic.py index 5d782578eab..3608df7f618 100644 --- a/external-builds/pytorch/skip_tests/generic.py +++ b/external-builds/pytorch/skip_tests/generic.py @@ -221,7 +221,7 @@ # We should fix the test to fail/skip more gracefully. # subprocess.CalledProcessError: Command '['where', 'cl']' returned non-zero exit status 1. "test_multi_grad_all_hooks", - # This is/was also failing on gfx942 linux, see the 2.11 skip test file. + # This is/was also failing on gfx942 linux, see the per-release skip test files. # AssertionError: "Simulate error" does not match "grad can be implicitly created only for scalar outputs" "test_reentrant_parent_error_on_cpu_cuda", ],