Skip to content

Add Python 3.14 support for PyTorch builds#2783

Closed
subodh-dubey-amd wants to merge 27 commits intomainfrom
users/subodh-dubey-amd/pytorch-314
Closed

Add Python 3.14 support for PyTorch builds#2783
subodh-dubey-amd wants to merge 27 commits intomainfrom
users/subodh-dubey-amd/pytorch-314

Conversation

@subodh-dubey-amd
Copy link
Copy Markdown
Contributor

@subodh-dubey-amd subodh-dubey-amd commented Jan 6, 2026

Summary

Adds Python 3.14 support for PyTorch builds on both Linux and Windows platforms.

Depends on #3535 and #XXXX — both must merge first.

Python 3.14 Support Matrix

PyTorch Version Python 3.14 Support
2.7 ❌ Not supported (no upstream support)
2.8 ❌ Not supported (no upstream support)
2.9 ✅ Preview support
nightly ✅ Full support

Changes

  • Updated .github/workflows/release_portable_linux_pytorch_wheels.yml to include Python 3.14 for PyTorch 2.9 and nightly
  • Updated .github/workflows/release_windows_pytorch_wheels.yml to include Python 3.14 for PyTorch 2.9 and nightly
  • Updated RELEASES.md to document Python 3.14 support (PyTorch 2.9+ only)
  • Updated build_tools/third_party/s3_management/update_dependencies.py to update s3 index for pip

Motivation

#2640: Add Python 3.14 support for PyTorch

References

Tests:

Release portable Linux PyTorch Wheels Tests:

Release Windows PyTorch Wheels:

Related

Submission Checklist

@subodh-dubey-amd subodh-dubey-amd force-pushed the users/subodh-dubey-amd/pytorch-314 branch from 4f5e095 to d9d7622 Compare January 6, 2026 13:31
@subodh-dubey-amd subodh-dubey-amd changed the title Add Python 3.14 support for PyTorch nightly builds Add Python 3.14 support for PyTorch builds Jan 6, 2026
@subodh-dubey-amd subodh-dubey-amd force-pushed the users/subodh-dubey-amd/pytorch-314 branch from d9d7622 to 20cf3d0 Compare January 7, 2026 08:24
@subodh-dubey-amd subodh-dubey-amd marked this pull request as ready for review January 7, 2026 08:26
Copy link
Copy Markdown
Member

@marbre marbre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread .github/workflows/release_portable_linux_pytorch_wheels.yml Outdated
@subodh-dubey-amd subodh-dubey-amd force-pushed the users/subodh-dubey-amd/pytorch-314 branch from 5524599 to 7d3603b Compare January 7, 2026 15:53
@marbre
Copy link
Copy Markdown
Member

marbre commented Jan 7, 2026

@marbre
I ran it with branch "users/subodh-dubey-amd/pytorch-py310-py314-support" with some fixes in windows pytorch pipeline because main branch windows pytorch pipeline we failing

There are way more changes on that branch (main...refs/heads/users/subodh-dubey-amd/pytorch-py310-py314-support) so this is not giving a good signal. If we add 3.14 we want to make sure it is green when it lands. Sequencing is important here.

@subodh-dubey-amd subodh-dubey-amd force-pushed the users/subodh-dubey-amd/pytorch-314 branch from 9d13ac5 to f5f1aa5 Compare January 8, 2026 09:51
@subodh-dubey-amd subodh-dubey-amd marked this pull request as draft January 8, 2026 11:16
@subodh-dubey-amd subodh-dubey-amd force-pushed the users/subodh-dubey-amd/pytorch-314 branch 4 times, most recently from d34f134 to f8c2750 Compare January 13, 2026 11:52
@subodh-dubey-amd subodh-dubey-amd force-pushed the users/subodh-dubey-amd/pytorch-314 branch from f8c2750 to 98c7d57 Compare January 13, 2026 12:24
subodh-dubey-amd and others added 7 commits January 14, 2026 13:15
- Add Python 3.14 to Linux PyTorch release workflow (2.9 and nightly)
- Add Python 3.14 to Windows PyTorch release workflow (2.9 and nightly)
- Update RELEASES.md to document Python 3.14 support

Python 3.14 support:
- PyTorch 2.9: Preview support
- PyTorch nightly: Full support
- PyTorch 2.7/2.8: Not supported (no upstream Python 3.14 support)

Fixes #2640
…r of the other include entries.

Co-authored-by: Marius Brehler <marius.brehler@amd.com>
Match the key ordering (pytorch_git_ref first) with other include entries
as suggested by @marbre
- Changed the default behavior of the caching option from disabled to enabled.
- Updated help text to clarify usage of --cache and --no-cache arguments.
- Adjusted logic to check for caching based on the new argument structure.
- Fix Python -P flag compatibility for Python 3.10 in rocm_sdk tests and CLI
- Update S3 package management for networkx and MarkupSafe compatibility
- Add data-requires-python attributes for proper version resolution
- Support multiple versions of dependencies (networkx 3.2.1 for Py3.10, latest for Py3.11+)
- Enable cp310 wheels in update_dependencies.py

Fixes compatibility issues when running rocm-sdk tests on Python 3.10
and resolves dependency version conflicts with networkx and MarkupSafe.
Fixed formatting issues in:
- _cli.py: Added blank line after function
- base_test.py, devel_test.py: Removed unnecessary line continuations
Copy link
Copy Markdown
Member

@marbre marbre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tests:

Release portable Linux PyTorch Wheels Tests:

image

The latest run https://github.com/ROCm/TheRock/actions/runs/20939661850 was tested on commit a4ba9bb:

image

Those test results are not valid and needing to check this a reviewer is a waste of time.

Provide valid test results and take into account what was discussed on earlier PRs before requesting a review.

Comment on lines +213 to +220
# Python 3.14 compatibility - PEP 649 changed __annotations__ behavior
# AttributeError: 'Model' object has no attribute '__annotations__'
# https://github.com/ROCm/TheRock/actions/runs/20955499125/job/60224765842
"test_autocast_cat_jit",
# Floating-point precision issue: int(fraction * memory) differs by 1
# due to rounding, causing assertion failure and UnboundLocalError in cleanup.
# Expected 874512384 but got 874512383.
"test_max_split_expandable",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed for Python 3.10, such changes should go into a separate PR and should not be part of the PR that applies the workflow changes.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Created separate issue for this - #2985

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change above does not seem to be in your updated PR. Close the issue eventually?

Comment on lines +255 to +258
# Python 3.14 compatibility issues - storage deallocation tests fail
# https://github.com/ROCm/TheRock/actions/runs/20955499125/job/60224765842
"test_storage_dealloc_subclass_resurrected",
"test_storage_dealloc_subclass_zombie",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GitHub logs will vanish after the retention period. File a new issue and make sure it gets the proper attention in the triage meeting. Furthermore, as above, this needs to go to a separate PR.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Created separate issue for this - #2985

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As above, the change above does not seem to be in your updated PR. Close the issue eventually?

Comment on lines 193 to +267
parser.add_argument(
"--no-cache",
default=False,
"--cache",
default=True,
required=False,
action=argparse.BooleanOptionalAction,
help="""Disable pytest caching. Useful when only having read-only access to pytorch directory""",
help="""Enable pytest caching (default: enabled). Use --no-cache to disable, useful when only having read-only access to pytorch directory""",
)

args = parser.parse_args(argv)

if not args.pytorch_dir.exists():
parser.error(
f"Directory at '{args.pytorch_dir}' does not exist, checkout pytorch and then set the path via --pytorch-dir or check it out in TheRock/external-build/pytorch/<your pytorch directory>"
)

return args, passthrough_pytest_args


def main() -> int:
"""Main entry point for the PyTorch test runner.

Returns:
Exit code from pytest (0 for success, non-zero for failures).
"""
try:
args, passthrough_pytest_args = cmd_arguments(sys.argv[1:])

pytorch_dir = args.pytorch_dir

# CRITICAL: Determine AMDGPU family and set HIP_VISIBLE_DEVICES
# BEFORE importing torch/running pytest. Once torch.cuda is initialized,
# changing HIP_VISIBLE_DEVICES has no effect.
# For unit tests, run only on the first supported device (policy="single")
((first_arch, _),) = set_gpu_execution_policy(
args.amdgpu_family, policy="single"
)
print(f"Using AMDGPU family: {first_arch}")

# Determine PyTorch version
pytorch_version = args.pytorch_version
if not pytorch_version:
pytorch_version = detect_pytorch_version()
print(f"Using PyTorch version: {pytorch_version}")

# Get tests to skip
tests_to_skip = get_tests(
amdgpu_family=first_arch,
pytorch_version=pytorch_version,
platform=platform.system(),
create_skip_list=not args.debug,
)

# Allow manual override of test selection
if args.k:
tests_to_skip = args.k

setup_env(pytorch_dir)

pytest_args = [
f"{pytorch_dir}/test/test_nn.py",
f"{pytorch_dir}/test/test_torch.py",
f"{pytorch_dir}/test/test_cuda.py",
f"{pytorch_dir}/test/test_unary_ufuncs.py",
f"{pytorch_dir}/test/test_binary_ufuncs.py",
f"{pytorch_dir}/test/test_autograd.py",
f"-k={tests_to_skip}",
# "-n 0", # TODO does this need rework? why should we not run this multithreaded? this does not seem to exist?
# -n numprocesses, --numprocesses=numprocesses
# Shortcut for '--dist=load --tx=NUM*popen'.
# With 'logical', attempt to detect logical CPU count (requires psutil, falls back to 'auto').
# With 'auto', attempt to detect physical CPU count. If physical CPU count cannot be determined, falls back to 1.
# Forced to 0 (disabled) when used with --pdb.
]

if args.no_cache:
if not args.cache:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is the logic changed here? This is not related to 3.14.

Copy link
Copy Markdown
Contributor Author

@subodh-dubey-amd subodh-dubey-amd Jan 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow failed with

Error: Exception in PyTorch unit-tests runner: invalid option name '--no-cache' for BooleanOptionalAction Error: Process completed with exit code 1.

https://github.com/ROCm/TheRock/actions/runs/20942960623/job/60216725811

Should we create a separate issue for this also?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Of course this fails with --no-cache as invalid option because you renamed --no-cache to --cache above!

So asking again, why is the logic changed here?

@subodh-dubey-amd
Copy link
Copy Markdown
Contributor Author

on that branch (main...refs/heads/users/subodh-dubey-amd/pytorch-py310-py314-support) so this is not giving a good signal. If we add 3.14 we want

Updated the PR Description with the latest workflow runs.

Copy link
Copy Markdown
Member

@marbre marbre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tests runs look good but there are still unrelated changes without providing a rational of why this should be changed.

# The callstack for this one points to _fill_mem_eff_dropout_mask, so it may be related to aotriton?
"test_cublas_config_nondeterministic_alert_cuda",
# Large test that isn't very CI-friendly (takes ~2 seconds, possibly hanging)
"test_memory_format_operators_cuda"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this dropped? Comment (which was not deleted) states the reason for excluding this.

# Move to gfx1151-specific skip list? Check if passing on Linux.
# We could also skip all test_grad_*.
"test_grad_scale_will_not_overflow_cuda",
"test_grad_scaling_unscale_sparse_cuda_float32",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you verified this isn't flaky any more on gfx1151?

Comment on lines 193 to +267
parser.add_argument(
"--no-cache",
default=False,
"--cache",
default=True,
required=False,
action=argparse.BooleanOptionalAction,
help="""Disable pytest caching. Useful when only having read-only access to pytorch directory""",
help="""Enable pytest caching (default: enabled). Use --no-cache to disable, useful when only having read-only access to pytorch directory""",
)

args = parser.parse_args(argv)

if not args.pytorch_dir.exists():
parser.error(
f"Directory at '{args.pytorch_dir}' does not exist, checkout pytorch and then set the path via --pytorch-dir or check it out in TheRock/external-build/pytorch/<your pytorch directory>"
)

return args, passthrough_pytest_args


def main() -> int:
"""Main entry point for the PyTorch test runner.

Returns:
Exit code from pytest (0 for success, non-zero for failures).
"""
try:
args, passthrough_pytest_args = cmd_arguments(sys.argv[1:])

pytorch_dir = args.pytorch_dir

# CRITICAL: Determine AMDGPU family and set HIP_VISIBLE_DEVICES
# BEFORE importing torch/running pytest. Once torch.cuda is initialized,
# changing HIP_VISIBLE_DEVICES has no effect.
# For unit tests, run only on the first supported device (policy="single")
((first_arch, _),) = set_gpu_execution_policy(
args.amdgpu_family, policy="single"
)
print(f"Using AMDGPU family: {first_arch}")

# Determine PyTorch version
pytorch_version = args.pytorch_version
if not pytorch_version:
pytorch_version = detect_pytorch_version()
print(f"Using PyTorch version: {pytorch_version}")

# Get tests to skip
tests_to_skip = get_tests(
amdgpu_family=first_arch,
pytorch_version=pytorch_version,
platform=platform.system(),
create_skip_list=not args.debug,
)

# Allow manual override of test selection
if args.k:
tests_to_skip = args.k

setup_env(pytorch_dir)

pytest_args = [
f"{pytorch_dir}/test/test_nn.py",
f"{pytorch_dir}/test/test_torch.py",
f"{pytorch_dir}/test/test_cuda.py",
f"{pytorch_dir}/test/test_unary_ufuncs.py",
f"{pytorch_dir}/test/test_binary_ufuncs.py",
f"{pytorch_dir}/test/test_autograd.py",
f"-k={tests_to_skip}",
# "-n 0", # TODO does this need rework? why should we not run this multithreaded? this does not seem to exist?
# -n numprocesses, --numprocesses=numprocesses
# Shortcut for '--dist=load --tx=NUM*popen'.
# With 'logical', attempt to detect logical CPU count (requires psutil, falls back to 'auto').
# With 'auto', attempt to detect physical CPU count. If physical CPU count cannot be determined, falls back to 1.
# Forced to 0 (disabled) when used with --pdb.
]

if args.no_cache:
if not args.cache:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Of course this fails with --no-cache as invalid option because you renamed --no-cache to --cache above!

So asking again, why is the logic changed here?

Comment on lines +213 to +220
# Python 3.14 compatibility - PEP 649 changed __annotations__ behavior
# AttributeError: 'Model' object has no attribute '__annotations__'
# https://github.com/ROCm/TheRock/actions/runs/20955499125/job/60224765842
"test_autocast_cat_jit",
# Floating-point precision issue: int(fraction * memory) differs by 1
# due to rounding, causing assertion failure and UnboundLocalError in cleanup.
# Expected 874512384 but got 874512383.
"test_max_split_expandable",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change above does not seem to be in your updated PR. Close the issue eventually?

Comment on lines +255 to +258
# Python 3.14 compatibility issues - storage deallocation tests fail
# https://github.com/ROCm/TheRock/actions/runs/20955499125/job/60224765842
"test_storage_dealloc_subclass_resurrected",
"test_storage_dealloc_subclass_zombie",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As above, the change above does not seem to be in your updated PR. Close the issue eventually?

Copy link
Copy Markdown
Member

@ScottTodd ScottTodd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Too much outdated or unrelated code in this PR to review.

Comment on lines +103 to +109
# Python 3.14 is supported for PyTorch 2.9 (preview) and nightly (full)
- pytorch_git_ref: release/2.9
python_version: "3.14"
pytorch_patchset: rocm_2.9
- pytorch_git_ref: nightly
python_version: "3.14"
pytorch_patchset: nightly
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This code is outdated. Please keep active review branches up to date or convert your PR back to a draft.

  • release/2.10 is now included, nightly is 2.11+
  • pytorch_patchset no longer exists

@subodh-dubey-amd subodh-dubey-amd marked this pull request as draft February 12, 2026 12:13
subodh-dubey-amd added a commit that referenced this pull request Mar 5, 2026
…--no- prefix) (#3535)

## Summary

Python 3.14 no longer allows `--no-` prefixed option names with
`argparse.BooleanOptionalAction` (python/cpython#117941).

`run_pytorch_tests.py` defined `--no-cache` with
`BooleanOptionalAction`, which crashes on Python 3.14:

## Failing job

-
https://github.com/ROCm/TheRock/actions/runs/22133299032/job/64272029131
for branch `users/subodh-dubey-amd/pytorch-314`

## Testing

- **Test py 3.10–3.13:**
https://github.com/ROCm/TheRock/actions/runs/22222064763
- **Python 3.14 fix:**
https://github.com/ROCm/TheRock/actions/runs/22222485256

## Dependency chain

#3535 (this) → #3540 (skip test failures) → #2783 (add py3.14 to matrix)

## Related

- Fixes #2640
- Tracks #2985
- Unblocks #2783


## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.'

---------

Co-authored-by: Laura Promberger <laura.promberger@amd.com>
@ScottTodd
Copy link
Copy Markdown
Member

What's the status here? The code diff seems reasonable up to date now. Are there recent test runs? Why is this still a draft?

@WBobby
Copy link
Copy Markdown
Contributor

WBobby commented Mar 24, 2026

Thanks for working on this — adding Python 3.14 support is definitely valuable.

I reviewed this against the current state of main, the upstream PyTorch branches, and the recent update_dependencies.py changes. The overall direction looks right, but I think this PR is now a bit stale relative to current main and needs a refresh before merge.

A few things stood out:

  1. release/2.11 is now missing from the discussion and from the intended support story.
    PyTorch 2.11 has now been released, and upstream release/2.11 explicitly advertises Python 3.14 support. However, TheRock’s current workflow matrices on main still do not include release/2.11 yet, and this PR also does not address it.
    At minimum, I think the PR description / support matrix should be updated to reflect the current world. If release/2.11 is expected to be added in a separate change, this PR should call that out clearly. Once release/2.11 lands in the matrix, Python 3.14 support should be included there as well.

  2. The PR description and docs look outdated relative to current main.
    The summary still talks about 2.9 + nightly as the relevant targets, but main has moved since this PR was opened. Similarly, RELEASES.md wording should be revisited so it is precise about which PyTorch branches/releases actually support Python 3.14, instead of leaving readers with a stale “2.9+ only” message.

  3. Please double-check the update_dependencies.py part against the new whitelist logic.
    Since main now uses an explicit CPython allowlist, cp314 must be allowed there for third-party binary dependencies to show up in the index for Python 3.14 environments. I do see that this PR includes dependency-upload related changes, which is good, but this is important enough that I think it should be explicitly confirmed in the final version of the PR after rebase.

  4. PR Skip 4 PyTorch tests failing on Python 3.14 due to CPython breaking changes. #3540 is still Draft.
    Since this PR depends on the Python 3.14 test-skip/fix chain, I don’t think this should merge until that dependency is resolved and the stack is in a clean state.

  5. Fresh validation would help a lot.
    The linked CI runs are fairly old. After rebasing onto current main, it would be good to rerun Linux + Windows validation and link fresh results from this branch so reviewers can evaluate the current state rather than January-era runs.

So overall: the core approach makes sense, but I’d prefer to see this rebased and updated for the current branch matrix / dependency stack before merging.

@subodh-dubey-amd
Copy link
Copy Markdown
Contributor Author

Closing this PR. A clean and updated version is available here: #4145

@github-project-automation github-project-automation Bot moved this from TODO to Done in TheRock Triage Mar 24, 2026
subodh-dubey-amd added a commit that referenced this pull request Mar 25, 2026
## Summary

- Add Python 3.14 to the PyTorch release workflow matrices for
release/2.9, release/2.10, and nightly
- Add `cp314` to the S3 dependency index allowlist so third-party wheels
(numpy, etc.) are uploaded for Python 3.14
- Update RELEASES.md to document Python 3.14 support

## Dependency chain

This PR depends on the following being merged first:

1. **TheRock** #3540 
2. **ROCm/pytorch** ROCm/pytorch#3099
3. **ROCm/pytorch** ROCm/pytorch#3100

The ROCm/pytorch PRs fix `numpy==2.1.2` having no cp314 wheels, which
causes
the build to fail when pip falls back to a source build under
sccache/meson.

## Python 3.14 support matrix

| PyTorch version | Python 3.14 support |
|-----------------|---------------------|
| 2.8             | Not supported       |
| 2.9             | Supported           |
| 2.10            | Supported           |
| nightly         | Supported           |

## Changes

- `release_portable_linux_pytorch_wheels.yml` — add py3.14 include
entries for release/2.9, release/2.10, nightly
- `release_windows_pytorch_wheels.yml` — add py3.14 to the version list
- `update_dependencies.py` — add `cp314` to `_ALLOWED_CPYTHON_TAGS`
- `RELEASES.md` — update supported Python versions

## Test results

- Nightly py3.14 (already passing):
https://github.com/ROCm/TheRock/actions/runs/23488558012/job/68350335178
- release/2.9 py3.14 (with numpy fix):
https://github.com/ROCm/TheRock/actions/runs/23516862647/job/68451235656
Latest after this merge - ROCm/pytorch#3099:
https://github.com/ROCm/TheRock/actions/runs/23546615437/job/68548629107
- release/2.10 py3.14 (with numpy fix):
https://github.com/ROCm/TheRock/actions/runs/23516828149/job/68451129501
Latest after this merge - ROCm/pytorch#3100:
https://github.com/ROCm/TheRock/actions/runs/23546731231/job/68549058264
## Related

- Fixes #2640
- Supersedes #2783
- Tracks #2985

## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.
@subodh-dubey-amd subodh-dubey-amd deleted the users/subodh-dubey-amd/pytorch-314 branch March 25, 2026 15:37
chiranjeevipattigidi pushed a commit that referenced this pull request Mar 27, 2026
## Summary

- Add Python 3.14 to the PyTorch release workflow matrices for
release/2.9, release/2.10, and nightly
- Add `cp314` to the S3 dependency index allowlist so third-party wheels
(numpy, etc.) are uploaded for Python 3.14
- Update RELEASES.md to document Python 3.14 support

## Dependency chain

This PR depends on the following being merged first:

1. **TheRock** #3540 
2. **ROCm/pytorch** ROCm/pytorch#3099
3. **ROCm/pytorch** ROCm/pytorch#3100

The ROCm/pytorch PRs fix `numpy==2.1.2` having no cp314 wheels, which
causes
the build to fail when pip falls back to a source build under
sccache/meson.

## Python 3.14 support matrix

| PyTorch version | Python 3.14 support |
|-----------------|---------------------|
| 2.8             | Not supported       |
| 2.9             | Supported           |
| 2.10            | Supported           |
| nightly         | Supported           |

## Changes

- `release_portable_linux_pytorch_wheels.yml` — add py3.14 include
entries for release/2.9, release/2.10, nightly
- `release_windows_pytorch_wheels.yml` — add py3.14 to the version list
- `update_dependencies.py` — add `cp314` to `_ALLOWED_CPYTHON_TAGS`
- `RELEASES.md` — update supported Python versions

## Test results

- Nightly py3.14 (already passing):
https://github.com/ROCm/TheRock/actions/runs/23488558012/job/68350335178
- release/2.9 py3.14 (with numpy fix):
https://github.com/ROCm/TheRock/actions/runs/23516862647/job/68451235656
Latest after this merge - ROCm/pytorch#3099:
https://github.com/ROCm/TheRock/actions/runs/23546615437/job/68548629107
- release/2.10 py3.14 (with numpy fix):
https://github.com/ROCm/TheRock/actions/runs/23516828149/job/68451129501
Latest after this merge - ROCm/pytorch#3100:
https://github.com/ROCm/TheRock/actions/runs/23546731231/job/68549058264
## Related

- Fixes #2640
- Supersedes #2783
- Tracks #2985

## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Add python 3.14 support for PyTorch

4 participants