pytorch/pytorch PyTorch 2.15.0 Release
Key point
PyTorch 2.15.0 centers on the NCCL backend rewrite and FSDP2 enhancements, major performance optimizations for Apple Silicon and AArch64, and changes to compatibility requirements for Python 3.11+ and CUDA 13.2.
Details
Breaking Changes & Deprecations
- NCCL backend rewrite:
nccl-legacyis scheduled for removal in the next version. - FSDP2 behavior change: When
reduce_dtype=None, it now usesgrad_dtype; explicit configuration is required to maintain previous behavior (BC-breaking). - Compatibility restrictions: Python 3.11+ (3.15 supported) is required, CUDA 13.2 wheels are provided (
cu126/cu130removed), ROCm 7.14/10.0 (gfx900/906removed), and macOS 15+ (MPS) is required. - Security and stability restrictions:
safe_globalsis required when loading nested tensors, re-execution ofimport torchand nested tensors withinweights_only=Trueare blocked, and 2.15 checkpoints are incompatible with versions 2.14 and below.
Major New Features
- AOTI: Support for
nested_compile_region, TMA TensorDescriptor, andlaunch_pdlin the C++ wrapper. ReturnsAOTI_RUNTIME_FAILUREinstead of exceptions, reduces peak memory during compilation, andaoti_load_packagedirectly loads the extracted directory. - Export & AOTDispatcher: Non-strict export
TORCH_TRACElogs now include compile/frame ID. Bypassing the AOTAutograd cache withininference_moderegions has been discontinued. - Composability:
histogramddmeta implementation, preservation of symbolic dimensions, and sparse compressed tensor fake-tensor tracing support. - Quantization: Support for pruned tables in CUDA quantized
embedding_bag. - C++ Frontend: no-GIL inline C++ extension,
TORCH_TARGET_VERSIONcompatibility check, and Windows ARM64 CUDA build support. - Release Engineering: CUDA 13.4 (cuBLAS 13.8.1, cuDNN 9.26) Linux/Windows wheels, Triton 3.9 bundle, ROCm
gfx1250(MI450) and ROCm 10.0 CI, XPU wheels updated to Intel Deep Learning Essentials 2026.1.3, and NVSHMEM 3.7.2 upgrade. - Platform-specific features: CUDA float8 scatter/graph annotation, CPU NEON sum/norm AVX2/SVE256, MPS
logspace/complex64/grouped_mm/int_mm, ROCm RDNA4 SDPA/AOTriton 0.14.2b, XPU linalg ops/mixed-precision Adam/SDPA GQA, and ROCm MI300 FP8 2:4 sparsity support.
Performance Improvements
- Apple Silicon: MoE decode improved by 1.32–1.34x.
- AArch64:
sin/cosimproved by 1.7–2.4x (SLEEF 3.5-ULP), QNNPACK linear improved 2-4x, LLVM BOLT applied by default (up to 30% improvement), and Graviton 4/5 BF16 GEMV improved 5x. - Windows: RTX 5090 GQA bf16 forward reduced from 11.5ms to 0.49ms.
- Core operations: RMSNorm backward improved 2x, cpp_wrapper overhead reduced by 40-50%, Dynamo compilation time shortened by 4.2s, Inductor GB300 HBM bandwidth increased 2x, gfx950 FlexAttention improved 1.8-2.3x, and AOTDispatcher min-cut partitioner sped up by 5%.
- CUDA/CPU: CUDA upsample improved 5-25x, H100 topk improved 2.16x, and gather/scatter latency fixed by 10-30x.
Key Bug Fixes
- Security: Fixed
torch.loadNEWOBJ opcode,shm_managerbuffer overflow, and builtin exception allowlist vulnerabilities. - torch.compile/Inductor: Fixed 4x RNG deactivation (2.13 regression), in-place, reshape, reduction, FP8 scaled_mm, SDPA, fusion, compile,
log_ndtr, float16 scan float32 accumulation, and boolean index_put. Fixed 1000x TFLOPS error and addmm fusion. - Triton/Inductor: Fixed float16/bfloat16 scans, XPU, CUDA Graphs, autotuning, FlexAttention, NVGEMM, and CPU backend.
- Other: Fixed fp8
isfiniteerrors,linspaceprecision (0.8105→0.8110), RNN/SDPA/grid_sample, Muon, Autograd, c10d, Distributed (port/Etcd/TCPStore/log), RPC (RRef use-after-free), Linear Algebra (2nd order forward AD,matrix_exp, CPU_int_mm), Profiler (device time, Cuspy heap, MemoryViz), FX (symbolic bool, cached graph, pickling, BSR/BSC,replace_pattern, memory leak), and Dynamo (-0.0/NaN guard, autocast,isinstance/Protocol, random stale, gradient, optimizer capturable,out=recompilation, memory leak, crash) issues. - Platform-specific: Resolved Hopper/B200 NaN and corruption issues by including cuDNN 9.26, fixed AVX2 double-int64 conversion truncation towards 0, Arm CPU uint8 conversion wrap-around and 4-bit matmul compilation errors, and MPS linalg/
torch.compile/memory management/multi-threaded crashes and incorrect results. Fixed MPS multi-threaded hang, DLPack,linalg.svd, complex operations,var/std, and int64 truncate. Fixed ROCm attention, SDPA, FP8 GEMM, Inductor BF16, topk, hipify, and RCCL warnings.