unstale

pypi / torch

torch

What changed in torch 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

36 breaking7 security8 deprecations74 new APIs and options6 performance48 behavior and defaults3 tooling109 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

torch 2291 changes

Breaking changes 36

  • Replaces the exported is_macos_13_or_newer() helper; no compatibility alias is provided.

    2.14.0release notes

  • The enum members drop the VER and PLUS portions of their names, with no compatibility aliases.

    2.14.0release notes

  • The zero-argument C++ overload was removed; pass includeBool explicitly, using false to preserve its previous behavior.

    2.14.0release notes

  • The zero-argument C++ overload was removed; pass includeBool explicitly, using false to preserve its previous behavior.

    2.14.0release notes

  • Dynamo graph-breaks rather than silently dropping tangents; fullgraph=True now errors.

    2.14.0release notes

  • Individual Python function events are excluded by default; pass include_python_functions=True to retain the previous view.

    2.14.0release notes

  • Custom Python process groups implementing new_group() must accept the backend keyword, which PyTorch now forwards when creating subgroups.

    2.14.0release notes

  • The setting is replaced with memory-headroom controls.

    2.14.0release notes

  • Segments allocated after registering a symmetric-memory pool are no longer automatically upgraded to symmetric windows; collectively deregister and register again after allocations to use symmetric-window algorithms.

    2.14.0release notes

  • It is now a deprecation shim: install and develop still forward to pip, while build and other commands print replacement commands instead of running setuptools. Build through pip or python -m build.

    2.14.0release notes

  • The deprecated API was removed; use torch.linalg.cholesky(). For an upper-triangular factor, take the conjugate transpose with .mH.

    2.14.0release notes

  • The deprecated API was removed; use torch.linalg.qr() with mode="reduced" or mode="complete" instead of the Boolean some argument.

    2.14.0release notes

  • Compiled and fake/meta execution enforce the same exact output-dtype requirements as eager execution.

    2.14.0release notes

  • The use_cuda argument was removed; use use_device="cuda" instead.

    2.14.0release notes

  • Complex type promotion for bfloat16 now uses bcomplex32 instead of complex64; cast explicitly to complex64 when its precision or operator coverage is required.

    2.14.0release notes

  • The deprecated API was removed; use torch.linalg.cholesky(). For an upper-triangular factor, take the conjugate transpose with .mH.

    2.14.0release notes

  • Boundary subgradients now follow the selected dispatcher schema's input space: scalar-bound equality gives the input gradient 0, while tensor-bound ties split gradients evenly.

    2.14.0release notes

  • At an ordinary tensor-bound tie, gradients split evenly between the input and bound.

    2.14.0release notes

  • At a scalar-bound equality the input gradient changes from 1 to 0; at an ordinary tensor-bound tie, gradients split evenly between input and bound.

    2.14.0release notes

  • The tvm backend now requires TVM's relax frontend; older TVM installations raise ImportError. Pass a TVM pipeline through options instead of relay-only scheduler and trials options.

    2.14.0release notes

  • It is a no-op for fake process groups and warns rather than failing for backends that cannot configure timeouts.

    2.14.0release notes

  • Ranks absent from every requested split now receive GroupMember.NON_GROUP_MEMBER instead of None.

    2.14.0release notes

  • Fractional max pooling raw operations now reject non-positive kernel_size values instead of returning invalid outputs and indices.

    2.14.0release notes

  • Ties now split gradients evenly, and forward-mode AD for the min/max family is aligned with the new rules.

    2.14.0release notes

  • Ties now split gradients evenly, and forward-mode AD for the min/max family is aligned with the new rules.

    2.14.0release notes

  • Functional and module Lp pooling APIs now raise a descriptive ValueError when norm_type=0.

    2.14.0release notes

  • Eligible fused backends are now selected for dense rank-3 inputs on CPU, CUDA/ROCm, and XPU. Selection may change numerics, dropout RNG consumption, view behavior, and higher-order-gradient support; select the math backend when those semantics are required.

    2.14.0release notes

  • The balanced policy is no longer accepted; use compact instead. Passing balanced now raises ValueError.

    2.14.0release notes

  • Invalid dim types are rejected at construction rather than failing later during forward.

    2.14.0release notes

  • Invalid dim types are rejected at construction rather than failing later during forward.

    2.14.0release notes

  • Setting profiler_measure_per_kernel to a non-default value no longer enables CUPTI range profiling, is ignored, and emits a FutureWarning.

    2.14.0release notes

  • Setting profiler_metrics to a non-default value no longer enables CUPTI range profiling, is ignored, and emits a FutureWarning.

    2.14.0release notes

  • The use_cuda argument was removed. Select CUDA through activities instead.

    2.14.0release notes

  • The deprecated API was removed; use torch.linalg.qr() with mode="reduced" or mode="complete" instead of the Boolean some argument.

    2.14.0release notes

  • The relay-only backend entry point no longer exists in torch._dynamo.backends.tvm.

    2.14.0release notes

  • The relay-only backend entry point no longer exists in torch._dynamo.backends.tvm.

    2.14.0release notes

Security 7

  • PyTorch is vulnerable to memory corruption through its torch.jit.script function

    2.13.0security advisory

  • PyTorch is a Python package that provides tensor computation. Prior to version 2.10.0, a vulnerability in PyTorch's weights_only unpickler allows an attacker to craft a malicious checkpoint file (.pth) that, when loaded with torch.load(..., weights_only=True), can corrupt memory and potentially

    2.10.0security advisory

  • PyTorch is vulnerable to memory corruption through its torch.lstm_cell function

    2.10.0security advisory

  • PyTorch is vulnerable to memory corruption through its unpack_sequence function

    2.9.1security advisory

  • An issue in the component torch.linalg.lu of pytorch v2.8.0 allows attackers to cause a Denial of Service (DoS) when performing a slice operation.

    2.9.0security advisory

  • pytorch v2.8.0 was discovered to contain an integer overflow in the component torch.nan_to_num-.long().

    2.9.0security advisory

  • pytorch v2.8.0 was discovered to display unexpected behavior when the components torch.rot90 and torch.randn_like are used together.

    2.9.0security advisory

Deprecations 8

  • The method is now a no-op with a deprecation warning; generator state is registered lazily on first RNG use during capture, so explicit registration calls should be removed.

    2.14.0release notes

  • The method emits a FutureWarning; activate a green context by creating a stream from it and using that stream with torch.cuda.stream().

    2.14.0release notes

  • The method emits a FutureWarning; activate a green context by creating a stream from it and using that stream with torch.cuda.stream().

    2.14.0release notes

  • The private alias remains available with a deprecation warning; use the public torch.distributed.set_timeout API.

    2.14.0release notes

  • The setting is deprecated and is now a no-op; generators are always traced lazily.

    2.14.0release notes

  • The distributed spelling remains a forwarding alias but now emits a FutureWarning; use torch.compiler.config.compile_on_one_rank.

    2.14.0release notes

  • TorchScript APIs now emit visible FutureWarnings directing users toward torch.compile or torch.export.

    2.14.0release notes

  • with_modules is deprecated and emits a FutureWarning; it collected module hierarchy only for TorchScript, while eager users can use with_stack=True to record nn.Module events.

    2.14.0release notes

New APIs and options 74

  • When set, AOTInductor prints timing and diagnostic messages for each constant-loading stage without requiring a rebuild.

    2.14.0release notes

  • Supports explicit user-defined streams and emits stream-guard code so compiled kernels run on the selected stream rather than always on the default stream.

    2.14.0release notes

  • Creates an AOTInductor model container from caller-owned weight tensors for zero-copy sharing; constants are not loaded from the package and remain caller-owned.

    2.14.0release notes

  • Adds a protocol for distributed checkpointing tensors that expose global and local shape and offset metadata.

    2.14.0release notes

  • Lets custom autograd.Function implementations declare each output's expected gradient dtype independently of its storage dtype.

    2.14.0release notes

  • Adds destroy callbacks and object retention.

    2.14.0release notes

  • Adds replay start and end hooks.

    2.14.0release notes

  • Adds portable JSON loading of distributed execution logs for comparisons across processes or model configurations.

    2.14.0release notes

  • Adds portable JSON serialization of distributed execution logs for comparisons across processes or model configurations.

    2.14.0release notes

  • Expanded sharding strategies for matrix, attention, sorting, scanning, softmax, tensor operations, and Conv1d/2d/3d; added redistribution from final-dimension sharding to Partial("sum").

    2.14.0release notes

  • Adds a shared keyword accepting ShapesSpec or ParamsSpec for explicit dynamic shapes in export, fake make_fx tracing, and torch.compile.

    2.14.0release notes

  • Profiler events expose Kineto metadata as typed values when expose_kineto_event_metadata is enabled, avoiding JSON reparsing.

    2.14.0release notes

  • Adds an experimental backend that creates per-peer NCCL point-to-point communicators on demand.

    2.14.0release notes

  • Adds an explicit legacy NCCL backend name alongside an opt-in for selecting the experimental replacement behind the nccl name.

    2.14.0release notes

  • The experimental backend gains fault-tolerant reconfiguration and one-sided window operations.

    2.14.0release notes

  • The experimental backend adds split_group, complete Work semantics, nonblocking communicators, uneven list collectives, communicator memory suspend/resume, and memory-pool registration and deregistration.

    2.14.0release notes

  • Can consume explicitly pre-split positional inputs, keyword inputs, and targets through arg_mbs, kwarg_mbs, and target_mbs.

    2.14.0release notes

  • Custom Python process groups can use batch_isend_irecv, the coalescing manager, and complete collective coverage, including single-tensor gather/scatter.

    2.14.0release notes

  • Adds an experimental accessor for custom backend development.

    2.14.0release notes

  • Gloo process groups support fault-tolerant reconfiguration.

    2.14.0release notes

  • Allows readable communicator names in NCCL logs and profiler tools.

    2.14.0release notes

  • Controls the number of cuBLASLt heuristic candidates requested by TunableOp.

    2.14.0release notes

  • Adds an option to choose whether selective activation checkpointing honors surrounding saved_tensors_hooks; the current default preserves legacy behavior and warns when hooks are active. Requires use_reentrant=False.

    2.14.0release notes

  • Used to provide optional shell-completion generation for torchrun.

    2.14.0release notes

  • Callers can provide an is_impure_node callback so side-effecting nodes are preserved during dead-code elimination.

    2.14.0release notes

  • Adds a prototype higher-order op selecting among N branches by index; autograd is not yet supported.

    2.14.0release notes

  • Adds XPU support for symmetric-memory operations used by asynchronous tensor parallelism, enabling communication and computation overlap on Intel GPUs.

    2.14.0release notes

  • Adds read-only DLPack export, including copy-on-write-preserving exchange with compatible consumers.

    2.14.0release notes

  • This is the preferred environment variable for compile_on_one_rank; the older distributed-prefixed variable remains supported for compatibility.

    2.14.0release notes

  • The opt-in selects the experimental replacement backend behind the nccl name.

    2.14.0release notes

  • Enables an autotuning_inputs log artifact reporting Triton autotuning input shapes, dtypes, strides, and scalar values.

    2.14.0release notes

  • Adds stable-ABI permute.

    2.14.0release notes

  • Adds stable-ABI Tensor overloads for bitwise operations, index_select, floor_divide, and is_pinned.

    2.14.0release notes

  • Adds stable-ABI conversion from Python torch.Tensor objects to torch::stable::Tensor.

    2.14.0release notes

  • Adds a stable-ABI query for whether a Tensor has storage.

    2.14.0release notes

  • Adds stable-ABI conversion from torch::stable::Tensor to Python torch.Tensor objects.

    2.14.0release notes

  • Adds a dtype overload to stable-ABI view.

    2.14.0release notes

  • Adds a length argument so a scan can run a fixed number of steps when xs=None.

    2.14.0release notes

  • Opt-in setting applies locality-based graph reordering to training graphs.

    2.14.0release notes

  • Opt-in CUDA Graph Trees generation cloning preserves live user-visible outputs across generations.

    2.14.0release notes

  • Adds backend-agnostic accelerator RNG state inspection.

    2.14.0release notes

  • Adds backend-agnostic inspection of RNG states across accelerators.

    2.14.0release notes

  • Adds backend-agnostic accelerator RNG seed inspection.

    2.14.0release notes

  • Adds a thread-local context manager whose callback receives fully populated autograd graph nodes created in its scope, including during higher-order differentiation and checkpoint recomputation.

    2.14.0release notes

  • Opts eligible bfloat16 grouped GEMM workloads into the cuBLASLt backend on Hopper and Blackwell with CUDA 13.3 or newer; eligible float16 workloads select it by default.

    2.14.0release notes

  • Adds support for TVM's Relax frontend and pipeline-based tuning.

    2.14.0release notes

  • Lets code request another CUDA Graph Trees warmup iteration.

    2.14.0release notes

  • Adds a public API for non-strict tracing.

    2.14.0release notes

  • Adds a capture-start hook alongside global CUDA graph capture and replay start/end hooks.

    2.14.0release notes

  • Adds a public CUDA graph annotations module.

    2.14.0release notes

  • The CUDAGraph debug flag is unified, debug_dump moves to Python, and capture hooks are added.

    2.14.0release notes

  • Attaches timestamped metadata events to live CUDA allocations; annotations appear in snapshots when memory history is enabled and only the native CUDA caching allocator supports them.

    2.14.0release notes

  • Memory snapshots can include CPU pinned-memory allocations; pass record_cuda=False to record only pinned host memory.

    2.14.0release notes

  • Adds a control for the number of cuBLASLt heuristic candidates used by TunableOp, which now supports CUDA cuBLASLt.

    2.14.0release notes

  • Adds an experimental accessor for custom backend development.

    2.14.0release notes

  • Adds a public API for setting distributed timeouts; the private alias remains available with a deprecation warning.

    2.14.0release notes

  • Adds construction of distributed linearly spaced tensors.

    2.14.0release notes

  • Adds construction of distributed logarithmically spaced tensors.

    2.14.0release notes

  • Attaches a dynamic-shape specification to a function or nn.Module.forward; compile, export, and make_fx use it automatically, and conflicting call-site specifications error.

    2.14.0release notes

  • Lets Python-authored kernels reserve Philox counter ranges that remain correct across CUDA Graph capture and replay.

    2.14.0release notes

  • Computes the principal square root of symmetric or Hermitian positive-definite matrices, supporting batches, autograd, vmap, and torch.compile.

    2.14.0release notes

  • Computes the polar decomposition A = U @ H for matrices with at least as many rows as columns, using portable SVD and eligible CUDA cuSOLVER QDWH acceleration.

    2.14.0release notes

  • MPS adds flex_attention auxiliary and dynamic-shape support, polar, large-tensor nonzero, complex Cholesky and nan_to_num, upsampling backward, and geqrf support.

    2.14.0release notes

  • Adds MPS forward and backward support.

    2.14.0release notes

  • The CUDA memory-efficient backend adds grouped-query attention, implicit multi-query key/value broadcasting, and backward support under vmap.

    2.14.0release notes

  • Adds a maximize parameter.

    2.14.0release notes

  • Adds the spectral_unclamped scaling option to the adjust_lr_fn parameter.

    2.14.0release notes

  • Can be called without a function to create an eager-mode decorator with checkpoint configuration separated from wrapped-function arguments; direct calls remain the compatible form under torch.compile.

    2.14.0release notes

  • Adds a wrapper for read-only DLPack export and compatible copy-on-write-preserving exchange.

    2.14.0release notes

  • Adds a query for per-process GPU memory usage on XPU.

    2.14.0release notes

  • Device-wide synchronization support is added on XPU.

    2.14.0release notes

  • Adds a log-line prefix template and hostname variable to identify the host that emitted each worker log line.

    2.14.0release notes

  • Adds optional shell-completion generation through the shtab package.

    2.14.0release notes

  • A dedicated error type is added for SYCL compilation failures.

    2.14.0release notes

Performance 6

  • Importing this module no longer eagerly compiles TorchScript merely because the module is imported.

    2.14.0release notes

  • Conversions are lowered directly on CPU and CUDA instead of relying on fallback conversion code.

    2.14.0release notes

  • Importing this module no longer eagerly compiles TorchScript merely because the module is imported.

    2.14.0release notes

  • Adds native float32 and complex64 MPS implementations, retaining CPU fallbacks for small matrices and matrices exceeding threadgroup memory.

    2.14.0release notes

  • Adds native float32 and complex64 MPS implementations, retaining CPU fallbacks for small matrices and matrices exceeding threadgroup memory.

    2.14.0release notes

  • Importing this module no longer eagerly compiles TorchScript merely because the module is imported.

    2.14.0release notes

Behavior and default changes 48

  • Supports lazy autotuning and compilation of torch.cond and torch.while_loop.

    2.14.0release notes

  • Adds native MPS support.

    2.14.0release notes

  • A single CUDA graph can now use multiple memory pools.

    2.14.0release notes

  • Supports head dimension 256 on SM90 and SM10.x with cuDNN newer than 9.22 and cuDNN Frontend 1.24 or newer; backward currently requires d_qk and d_v both 256.

    2.14.0release notes

  • Multiword compiler commands such as "zig c++" are accepted when building Inductor-generated C++ code on POSIX systems.

    2.14.0release notes

  • Returns input nodes, output nodes, and parameters in deterministic graph order.

    2.14.0release notes

  • Adds initial technology-preview AMD support; CK SDPA/GEMM, FP8 grouped GEMM, and int4 matrix multiplication remain unsupported.

    2.14.0release notes

  • Enabled on Linux with ROCm 7.14 or newer.

    2.14.0release notes

  • Pair communicators are included in error reporting, suspend/resume operations, and memory statistics, with broader shared backend coverage.

    2.14.0release notes

  • Partitioned-scatter selection is memory- and contention-aware and enabled by default on ROCm; set this setting to False to opt out.

    2.14.0release notes

  • Adds native MPS sampling, eliminating its CPU fallback.

    2.14.0release notes

  • Module functions and constants are accepted as messages.

    2.14.0release notes

  • Explicitly registered logging.Logger methods with supported positional arguments run after the compiled region instead of causing graph breaks.

    2.14.0release notes

  • Adds XPU FP8 blockwise scaling support for MXFP8, MXFP4, and NVFP4 recipes.

    2.14.0release notes

  • Adds XPU FP8 blockwise scaling support for MXFP8, MXFP4, and NVFP4 recipes.

    2.14.0release notes

  • CUDA now supports torch.float16 and torch.bfloat16 inputs.

    2.14.0release notes

  • Selecting the CK GEMM backend now works on ROCm gfx90a devices, independently of CK attention support.

    2.14.0release notes

  • Compilation support expands for Python constructs and tracing covers additional accelerator, tensor, and distributed operations.

    2.14.0release notes

  • Reuse now supports source-backed objects, symbolic shapes, dataclasses, and namedtuples.

    2.14.0release notes

  • Supports dynamic shapes for dimensions marked with mark_unbacked, allowing one artifact to serve multiple runtime sizes without guarding on that dimension.

    2.14.0release notes

  • CUDA graph memory pools are included in the reported reserved memory.

    2.14.0release notes

  • Can be used inside a compiled region; allocations in the context, including fallback and extern kernels, are routed to the pool.

    2.14.0release notes

  • Device-qualified Gloo backends are accepted when TorchComms is enabled.

    2.14.0release notes

  • Adds bfloat16 support on CUDA and float16/bfloat16 support on XPU; unsupported CUDA and XPU cases promote to float32, while CPU FFT continues to reject these dtypes.

    2.14.0release notes

  • The eager CPU torch.polar kernel now supports Half inputs.

    2.14.0release notes

  • MPS dispatch key is preserved through transforms, enabling MPS autocast and autograd under vmap and grad.

    2.14.0release notes

  • Enabled on ROCm 7.14 or newer through hipSOLVER's generic Xgeev API.

    2.14.0release notes

  • Adds native float32 and complex64 MPS implementations, retaining CPU fallbacks for small matrices and matrices exceeding threadgroup memory.

    2.14.0release notes

  • Adds native float32 and complex64 MPS implementations, retaining CPU fallbacks for small matrices and matrices exceeding threadgroup memory.

    2.14.0release notes

  • Adds MPS support, including complex inputs, on macOS 15 or newer.

    2.14.0release notes

  • Backward support is available on CPU, CUDA, and MPS, and Dynamo can trace the operation.

    2.14.0release notes

  • MPS gains support for the operation.

    2.14.0release notes

  • Adds native float32 and complex64 MPS implementations, retaining CPU fallbacks for small matrices and matrices exceeding threadgroup memory.

    2.14.0release notes

  • Added to the core ATen decomposition table used by ExportedProgram.run_decompositions(), including correct dim=() handling, and gained sparse COO dispatch.

    2.14.0release notes

  • Out-of-tree backends can define additional out_dtype combinations under fake/meta tracing; CUDA and XPU restrictions remain unchanged.

    2.14.0release notes

  • Can process float32 and float64 inputs larger than 2**24 elements on devices supporting float64 by computing ranks in float64.

    2.14.0release notes

  • The chunked path handles probability targets with mean or sum reduction when target dtype matches input and targets do not require gradients.

    2.14.0release notes

  • Can process float32 and float64 inputs larger than 2**24 elements on devices supporting float64 by computing ranks in float64.

    2.14.0release notes

  • CUDA float16 and bfloat16 support is added, including supported sparse-CSR backward paths.

    2.14.0release notes

  • Adds bfloat16 support on CUDA and float16/bfloat16 support on XPU; unsupported CUDA and XPU cases promote to float32, while CPU continues to reject these dtypes.

    2.14.0release notes

  • Compiled scans now honor deterministic-algorithm settings.

    2.14.0release notes

  • Adds scalar searchsorted support, broader copy-view batching, scalar fill and comparison support, and a native in-place masked_fill_ rule. Batched repeat_interleave requires a common output_size.

    2.14.0release notes

  • Adds CUDA graph support.

    2.14.0release notes

  • Bare backend names are auto-qualified, process-group options pass through custom backend creation, and unknown device-qualified names can register as custom backends.

    2.14.0release notes

  • Adds native recording mode on non-PVC devices when built with oneAPI 2026.1 or newer.

    2.14.0release notes

  • Profiler overhead is recorded as OVERHEAD activities on a dedicated track in exported traces.

    2.14.0release notes

  • Adds IPC memory handle sharing support on XPU.

    2.14.0release notes

  • Inductor autotuning subprocesses now honor this XPU environment variable.

    2.14.0release notes

Tooling 3

  • Adds the documented memory_format overload so static type checkers accept calls such as module.to(memory_format=torch.channels_last).

    2.14.0release notes

  • Static typing for indexing now resolves integer keys to Module and slices to Sequential.

    2.14.0release notes

  • Adds mappings for cublasMath_t, its enum values, and CUBLAS_COMPUTE_16F so HIP-ported extensions using these cuBLAS features hipify without project aliases.

    2.14.0release notes

Fixes and other changes 109

  • Updates the binaries to CUDA 13.2.2, resolving CUDA issues that could produce incorrect results in NVFP4 matrix multiplications and kernels with nested thread divergence.

    2.14.1release notes

  • Fixes incorrect solutions on MPS for complex batched underdetermined systems.

    2.14.1release notes

  • Fixes failures on MPS with a Metal pipeline-state error for inputs above 8192 elements.

    2.14.1release notes

  • Fixes non-orthogonal U and inaccurate small singular values on MPS for rank-deficient and ill-conditioned inputs.

    2.14.1release notes

  • Fixes failures on MPS with a Metal pipeline-state error for inputs above 8192 elements.

    2.14.1release notes

  • Fixes failures on MPS with a Metal pipeline-state error for inputs above 8192 elements.

    2.14.1release notes

  • Fixes an internal assert on MPS for complex inputs when using out.

    2.14.1release notes

  • Functional backward supports the linear avg reduction instead of rejecting it after a successful forward pass.

    2.14.0release notes

  • The NCCL symmetric-memory backend now implements barrier instead of raising a not-implemented error.

    2.14.0release notes

  • Replacing FileBaton with filelock prevents stale-lock deadlocks.

    2.14.0release notes

  • Its pool is trimmed and allocation is retried once before an out-of-memory error is raised.

    2.14.0release notes

  • Registered custom communication backends are selected instead of incorrectly falling back to NCCL or Gloo when the backend is unspecified.

    2.14.0release notes

  • CUDA IPC-backed dataset storage is released when workers exit, preventing retained producer-side references and allocations.

    2.14.0release notes

  • Post-dispatch make_fx tracing decomposes detach by default to fix silently incorrect second-order gradients; an explicit decomposition table retains previous behavior.

    2.14.0release notes

  • Compiled functions can return DTensor permutation views such as transpose, permute, or movedim.

    2.14.0release notes

  • Quantized byte and 4-bit rowwise lookups no longer fault on ROCm.

    2.14.0release notes

  • Generating guard messages for deeply nested symbolic-shape expressions no longer raises RecursionError.

    2.14.0release notes

  • summon_full_params with offload_to_cpu no longer accesses freed storage when the flattened parameter is already on CPU.

    2.14.0release notes

  • HIP C++ extensions on Windows now register hipify-produced .hip sources with MSVC so they are dispatched to hipcc.

    2.14.0release notes

  • Complex inputs are rejected with NotImplementedError instead of an internal MPSGraph error.

    2.14.0release notes

  • Pinned memory correctly appears as a CPU tensor while retaining its shared Metal buffer.

    2.14.0release notes

  • Unsupported dtypes now produce a clear error.

    2.14.0release notes

  • The correct Metal cooperative-tensor ABI is selected on macOS 26 to prevent corrupted output.

    2.14.0release notes

  • Dtype-converting copies no longer overwrite their source and non-dense views copy correctly with matching strides.

    2.14.0release notes

  • Non-contiguous tensors are handled safely, fixing vmap failures and possible out-of-bounds memory accesses.

    2.14.0release notes

  • Non-contiguous tensors are handled safely, and CUDA backward precision errors are fixed by applying missing upcasts.

    2.14.0release notes

  • Ranks are normalized through Python's integer protocol, allowing tensor integer ranks and clearly rejecting non-integral values.

    2.14.0release notes

  • CUDA backward uses 64-bit sample offsets.

    2.14.0release notes

  • Python subclasses can be constructed through the (store, rank, size) constructor, and their virtual overrides are dispatched correctly.

    2.14.0release notes

  • PyTorch publishes Python 3.15 wheels for Linux x86-64 and aarch64, Windows x86-64, and macOS Apple silicon across applicable builds; torch.compile remains unsupported.

    2.14.0release notes

  • PyTorch publishes free-threaded Python 3.15t wheels across the listed Linux, Windows, and macOS platforms; torch.compile remains unsupported.

    2.14.0release notes

  • Dynamo now matches Python behavior for a range of built-ins, conversions, descriptors, errors, operators, subclass types, and attribute probing.

    2.14.0release notes

  • The FBGEMM ARM path now checks overflow, fixing incorrect quantized values on some hardware.

    2.14.0release notes

  • Modules using only this hook no longer emit a warning intended for register_full_backward_hook when forward inputs do not require gradients.

    2.14.0release notes

  • The ROCm meta-kernel now uses the compact log-sum-exp dimension returned by ROCm backends, fixing nested tensor backward and torch.compile.

    2.14.0release notes

  • A warning is issued when collectives are launched concurrently on multiple streams, which can otherwise deadlock.

    2.14.0release notes

  • MPS computes integer absolute values exactly instead of rounding through float32.

    2.14.0release notes

  • MPS handles empty dimensions.

    2.14.0release notes

  • MPS supports strided output tensors on macOS 14 and 15.

    2.14.0release notes

  • Fractional arguments with an integer output dtype no longer produce the wrong length due to premature truncation.

    2.14.0release notes

  • Validation error messages preserve dynamic type names and argument indices.

    2.14.0release notes

  • MPS handles empty dimensions and does not propagate NaN or infinity from input when beta=0.

    2.14.0release notes

  • MPS handles empty dimensions.

    2.14.0release notes

  • Supports second-order gradients, so grad-grad computations no longer fail for lack of a backward derivative.

    2.14.0release notes

  • CUDA clamp preserves signed zero.

    2.14.0release notes

  • Inductor handling of torch.combinations and several other operation and graph-output cases is corrected.

    2.14.0release notes

  • Compilation better matches Python built-ins, operators, iterators, container initialization, object behavior, exceptions, and subgenerator closure behavior.

    2.14.0release notes

  • Selected Dynamo, Inductor, and FX tracing state is thread-local to prevent race conditions when compilation is invoked concurrently from multiple threads.

    2.14.0release notes

  • No-op dropout decompositions preserve eager identity semantics, avoiding replacement of a Parameter with a cloned fake tensor when dropout is disabled.

    2.14.0release notes

  • Graph reuse, eager autograd, graph capture, and transposed captured buffers are fixed.

    2.14.0release notes

  • Compilation fixes cover tensor subclasses, torch.func, autocast, metadata guards, fake-mode re-entry, in-place mutation, and several graph-break cases.

    2.14.0release notes

  • Symbolic proxy tracing and repeated lowering edge cases involving contiguous-stride expressions are fixed.

    2.14.0release notes

  • ROCm graph capture no longer fails or hangs for callables using hipBLASLt; warmup and capture use the same stream.

    2.14.0release notes

  • A nonzero root argument is respected instead of always broadcasting from the first tensor.

    2.14.0release notes

  • Compiled output and gradients are corrected for overlapping-input operations.

    2.14.0release notes

  • Streams are flushed before fsync so buffered writes are persisted correctly on remote filesystems such as GCS.

    2.14.0release notes

  • Locally synchronized calls consistently return GroupMember.NON_GROUP_MEMBER on nonmember ranks.

    2.14.0release notes

  • Subgroups whose local and global source ranks differ no longer produce a zero source gradient.

    2.14.0release notes

  • Gloo and NCCL no longer crash when the world process group was not the first backend instance created.

    2.14.0release notes

  • MPS floor division now matches CPU and CUDA nonfinite-value semantics.

    2.14.0release notes

  • Dynamic-shape specifications for functions with **kwargs now accept call-like keys and specs nested under the variadic parameter, and ambiguous name collisions report UserError.

    2.14.0release notes

  • Strict export treats parameters from modules in unregistered Python containers as constants rather than trying to restore them from eager module state.

    2.14.0release notes

  • Non-strict export now handles tensor indexing under vmap when the index is a batched scalar tensor.

    2.14.0release notes

  • Restores parameters, buffers, and constants for non-contiguously numbered repeated module calls.

    2.14.0release notes

  • Compiled MPS operations no longer fail with KeyError for unsigned 16-, 32-, or 64-bit index expressions.

    2.14.0release notes

  • MPS results are corrected for extreme values.

    2.14.0release notes

  • MPS handles empty indices.

    2.14.0release notes

  • Length clamping and padding remain symbolic under dynamic shapes, avoiding recompilation and data-dependent guard failures when requested length crosses signal length.

    2.14.0release notes

  • Signed right-shift export rounds negative values toward negative infinity, matching PyTorch.

    2.14.0release notes

  • Gradients for negative integer exponents now return 2.0 ** exponent instead of zero.

    2.14.0release notes

  • Invalid complex norm orders raise a clear ValueError; dynamic compilation also handles p='fro' and p='nuc' with symbolic tensor sizes.

    2.14.0release notes

  • CUDA Graph capture is fixed for this operation.

    2.14.0release notes

  • The CPU gelsy driver no longer returns an incorrect rank because of stale pivot values between batched LAPACK calls.

    2.14.0release notes

  • Backward accuracy improves using a correctly rounded double-precision log(10) constant.

    2.14.0release notes

  • Backward accuracy improves by using named mathematical constants.

    2.14.0release notes

  • Inconsistent LU_pivots and LU_data shapes now raise a clear error instead of segfaulting.

    2.14.0release notes

  • Compiled output strides and channels-last memory format now match eager CPU execution.

    2.14.0release notes

  • MPS supports strided output tensors on macOS 14 and 15.

    2.14.0release notes

  • Meta output shapes are corrected when dim=() should reduce all dimensions.

    2.14.0release notes

  • MPS bfloat16 tensors no longer return their input unchanged.

    2.14.0release notes

  • Backward no longer crashes for channels-last MPS tensors.

    2.14.0release notes

  • MPS output is corrected when a kernel spatial dimension is at least 256.

    2.14.0release notes

  • Compiled execution rejects alpha=0 with the same error as eager execution.

    2.14.0release notes

  • CUDA backward no longer overflows int32 for mode="max".

    2.14.0release notes

  • ROCm nearest interpolation no longer fails on large channels-last inputs whose output approaches 2^32 elements.

    2.14.0release notes

  • MPS linear backward handles inputs with more than four dimensions, and complex high-rank linear operations no longer abort on macOS 27.

    2.14.0release notes

  • MPS linear forward and backward handle zero in_features without aborting.

    2.14.0release notes

  • Compiled values and gradients are corrected when targets use -1 padding.

    2.14.0release notes

  • Supports second-order gradients, so grad-grad computations no longer fail for lack of a backward derivative.

    2.14.0release notes

  • The attention-mask dtype is declared to cuDNN rather than inherited from graph I/O dtype.

    2.14.0release notes

  • Memory-efficient attention remap extents, causal key bounds, and 32-bit dropout offsets are corrected.

    2.14.0release notes

  • cuDNN variable-length SDPA is fixed.

    2.14.0release notes

  • CPU flash SDPA now returns correct results when the innermost input dimension is not contiguous.

    2.14.0release notes

  • MPS attention kernels now propagate NaNs correctly.

    2.14.0release notes

  • ROCm results are corrected for very large row counts when normalized size is not a multiple of 4.

    2.14.0release notes

  • Decompositions avoid data-dependent guard failures when sequence lengths are symbolic.

    2.14.0release notes

  • Quantized gather export unpacks quantized tensor inputs before lowering.

    2.14.0release notes

  • The constant_pad_nd reference decomposition is fully functional, so dynamo ONNX export no longer fails functionalization for models using pad.

    2.14.0release notes

  • Fused CPU optimizer updates and float16/bfloat16 casts are corrected.

    2.14.0release notes

  • Becomes a no-op for an empty parameter group.

    2.14.0release notes

  • Fused CPU optimizer updates and float16/bfloat16 casts are corrected.

    2.14.0release notes

  • Backward handles Boolean scalar bases and symbolic Python integer exponents without an assertion failure or NYI SymInt equality crash.

    2.14.0release notes

  • Ordinary profiling no longer imports the experimental CUPTI monitor, preventing repeated warnings and tracebacks on systems with incompatible cupti-python versions.

    2.14.0release notes

  • The qint32 per-channel float_qparams path no longer divide-by-zero crashes, and whole-byte quantized types pack correctly.

    2.14.0release notes

  • CUDA relu preserves signed zero.

    2.14.0release notes

  • Assigning Python integers greater than INT64_MAX no longer raises an overflow-unpacking error.

    2.14.0release notes

  • Nonempty inputs with a zero-sized shape dimension raise a clear ValueError; empty indices remain supported.

    2.14.0release notes

  • Unsupported third-order derivatives are rejected instead of silently returning an invalid result; second-order derivatives and evaluation mode are unchanged.

    2.14.0release notes

  • Zero-sized spatial outputs now short-circuit to empty output and zero backward gradients, matching cuDNN and CPU behavior.

    2.14.0release notes