Weekly Project News

Archives
Subscribe

Weekly GitHub Report for Pytorch: October 19, 2026 - October 26, 2026 (23:40:51)

Weekly GitHub Report for Pytorch

Thank you for subscribing to our weekly newsletter! Each week, we deliver a comprehensive summary of your GitHub project's latest activity right to your inbox, including an overview of your project's issues, pull requests, contributors, and commit activity.


Table of Contents

  • I. News
    • 1.1. Recent Version Releases
    • 1.2. Other Noteworthy Updates
  • II. Issues
    • 2.1. Top 5 Active Issues
    • 2.2. Top 5 Stale Issues
    • 2.3. Open Issues
    • 2.4. Closed Issues
    • 2.5. Issue Discussion Insights
  • III. Pull Requests
    • 3.1. Open Pull Requests
    • 3.2. Closed Pull Requests
    • 3.3. Pull Request Discussion Insights
  • IV. Contributors
    • 4.1. Contributors

I. News

1.1 Recent Version Releases:

The current version of this repository is v2.6.0

1.2 Version Information:

Released on January 29, 2025, PyTorch 2.6 introduces significant enhancements including torch.compile support for Python 3.13, a new performance tuning API torch.compiler.set_stance, and improved AOTInductor packaging and ABI compatibility. Notable highlights also include FP16 support on x86 CPUs, expanded Intel GPU support with simplified installation, and a backward-incompatible security improvement flipping the default of torch.load to weights_only=True, alongside deprecating official Anaconda channel packages.

II. Issues

2.1 Top 5 Active Issues:

We consider active issues to be issues that that have been commented on most frequently within the last week. Bot comments are omitted.

  1. [ONCALL: DISTRIBUTED] [TRIAGED] [BOT-TRIAGED] [ONCALL: DISTRIBUTED INFRA] [MODULE: DEPENDENCY BUG] [B300 only] CUDA graph replay + device to host copy kernel can lead to stall: This issue describes a stall occurring on NVIDIA B300 GPUs when using CUDA graph replay combined with device-to-host copy kernels in a multi-GPU PyTorch distributed setup. The problem manifests as both ranks wedging at the same step inside torch.unique's CUDA stream synchronization, with one GPU at full utilization and the other idle, caused by a captured NCCL collective kernel spin-wait that never completes under GPU contention and CUDA stream scheduling starvation.

    • The comments confirm the root cause is the interaction between CUDA graph-captured NCCL collectives and stream scheduling starvation on B300 hardware, with workarounds including avoiding captured NCCL collectives, setting environment variables for async error handling, and isolating workloads; extensive reproducers were provided including a minimal single-GPU PyTorch repro and a pure CUDA driver API repro, both showing consistent stalls only on B300 but not on other GPUs like B200, GB300, or H100; attempts to fix via driver upgrades have so far been unsuccessful across many driver versions; the issue is acknowledged as a hardware/driver-level problem rather than a PyTorch bug, and ongoing investigation and requests for firmware details continue.
    • Number of comments this week: 8
  2. [TRIAGED] [ENHANCEMENT] [MODULE: MPS] [MPS] torch.compile exceeds Metal's buffer limit in Qwen GatedDeltaNet: This issue reports a bug where compiling Qwen3.8-27B's GatedDeltaNet model with torch.compile on an Apple M3 Ultra using Metal Performance Shaders (MPS) fails due to exceeding Metal's maximum supported constant buffer limit of 31. The problem arises during forward compilation at 2048 tokens, and the user provides a minimal reproducible example along with environment details to illustrate the failure.

    • The comments reveal multiple contributors expressing interest in fixing the issue, discussing potential solutions such as capping fusion at the buffer limit or using ArgumentBuffers to overcome the limitation, with ongoing collaboration and coordination to avoid duplicated efforts and ensure a proper fix.
    • Number of comments this week: 6
  3. [TRIAGE REVIEW] [MODULE: CRASH] [MODULE: WSL] [MODULE: XPU] [BOT-TRIAGED] [RELEASE TRIAGE] Bug Report: Segfault in torch.xpu.is_available() on WSL3 + Arc Pro B70 (Battlemage) despite ZES_ENABLE_SYSMAN=0: This issue reports a segmentation fault occurring when calling torch.xpu.is_available() on WSL3 with an Intel Arc Pro B70 GPU, caused by a crash inside the _enum_zes_device_infos() function during device enumeration. The problem persists despite setting environment variables intended to disable Sysman initialization, indicating that PyTorch hardcodes this path and does not handle invalid Sysman data safely on WSL3, leading to a hard crash rather than a catchable Python exception.

    • The comments include a request for assistance, a suggested workaround to uninstall pyzes to avoid blocking workflows, acknowledgment of the issue and alternative approaches by the reporter, and clarification from maintainers that WSL3 is not officially supported or tested yet; further suggestions include testing on native Windows and anticipation of a fix in future oneAPI releases.
    • Number of comments this week: 6
  4. [TRIAGED] [ACTIONABLE] [ONCALL: PT2] [MODULE: DYNAMO] [BOT-TRIAGED] [dynamo] Missing return in BuiltinVariable.call_method __hash__ branch graph-breaks unbound X.__hash__(x) calls: This issue addresses a bug in the BuiltinVariable.call_method implementation within the Dynamo module where a missing return statement causes unbound __hash__ calls like bool.__hash__(b) to graph-break under torch.compile, despite the hash being computable at trace time. The problem arises because the computed hash result is discarded and the call falls through to a superclass method that expects zero arguments, leading to a TypeError and unintended graph breaks for certain types outside the delegation tuple, while bound hash calls remain unaffected.

    • The comments discuss plans to contribute a fix with regression tests, debating whether to integrate changes into an existing PR (#199496) or submit a separate follow-up after that PR lands; contributors agree on waiting for the current PR to merge before addressing remaining edge cases, with maintainers providing guidance and support for the proposed approach.
    • Number of comments this week: 5
  5. [MODULE: NN] [TRIAGED] [ENHANCEMENT] [NEEDS DESIGN] Addind RoPE to pytorch core: This issue proposes consolidating the Rotary Positional Embeddings (RoPE) code, which is currently duplicated across multiple PyTorch repositories, into the PyTorch core library under nn.functional along with a dedicated RotaryPositionalEmbeddings module. The goal is to standardize the implementation, ensure compatibility across the PyTorch stack including eager mode and TorchDynamo (PT2), and address subtle differences and performance considerations, especially regarding complex number support and integration with compilation backends.

    • The comments discuss the high maintenance bar for adding new modules to torch.nn and agree RoPE is widespread enough to justify inclusion; contributors emphasize auditing existing implementations for consistency and ensuring full integration with PyTorch’s stack. Several references to related issues and ONNX support are shared, and contributors express interest in either a standalone functional/module API or integration into nn.MultiheadAttention, with ongoing discussion about API shape and feature scope such as position offsets.
    • Number of comments this week: 4

2.2 Top 5 Stale Issues:

We consider stale issues to be issues that has had no activity within the last 30 days. The team should work together to get these issues resolved and closed as soon as possible.

As of our latest update, there are no stale issues for the project this week.

2.3 Open Issues

This section lists, groups, and then summarizes issues that were created within the last week in the repository.

Issues Opened This Week: 131

Summarized Issues:

  • GPU Performance and Autotuning Limitations: The function torch._inductor.utils.is_big_gpu() uses a hardcoded threshold of 68 streaming multiprocessors to enable max-autotune GEMM, which excludes Jetson GPUs like AGX Thor and Orin with fewer SMs. This causes the max-autotune feature to be silently disabled without any override or configuration option, resulting in suboptimal performance on these devices.
  • [issues/201471]
  • Incorrect Numerical Results in Attention and Reduction Kernels: Several backends and kernels produce incorrect or silently wrong results, including the memory-efficient backend for scaled dot product attention on AMD Radeon RX 9070 XT returning incorrect float32 outputs, and PyTorch's CPU implementation of torch.compile producing incorrect variance and layer normalization results on tail columns with reductions longer than 4096 elements. Additionally, bugs in aten.nll_loss meta kernel and cuDNN scaled dot-product attention backward kernel cause shape discrepancies and incorrect gradients respectively.
  • [issues/201473, issues/201476, issues/201480, issues/202035]
  • Inductor Compiler Bugs and Performance Issues: PyTorch Inductor faces multiple issues including a race condition in the in-place reduction kernel causing incorrect results, failure to cache combo kernel autotuning leading to repeated reruns, incorrect reuse of buffers causing wrong gradients, and omission of extra_options in autotune cache invalidation causing stale cache hits. There are also problems with nested_compile_region causing storage offset errors and compilation failures due to variable scope errors.
  • [issues/201503, issues/201649, issues/201694, issues/201702, issues/201912, issues/201915]
  • Dynamic Shapes and Symbolic Expression Bugs: Bugs in dynamic shape handling cause incorrect boolean comparisons and modulo simplifications without guards, leading to silently incorrect results during tracing and compilation. Recursion errors occur during compilation of tensor-parallel modules with dynamic shapes due to cyclic symbolic integer proxies.
  • [issues/201519, issues/201520, issues/201624]
  • XPU Platform Test Failures and Disabled Tests: Multiple tests on the XPU platform are consistently failing on the main branch, leading to their disabling. These include tests related to dynamic shapes, kernel options selection, and various functional grid sample tests, indicating ongoing instability or incompatibility on XPU devices.
  • [issues/201542, issues/201543, issues/201710, issues/201711, issues/201775, issues/201987, issues/201988, issues/201989, issues/201990, issues/201991, issues/201992, issues/201993, issues/201994, issues/201995, issues/201996]
  • Memory Leaks in CUDA and Quantized Models: Memory leaks are reported in quantized Stable Diffusion 2.1 implementations due to orphaned memory handles during fused operations, and in torch.cuda.CUDAGraph when using conditional nodes where private memory pools are not properly released, causing persistent memory reservation until process termination.
  • [issues/201562, issues/201567]
  • Distributed and Rendezvous Communication Issues: PyTorch's torchelastic shared rendezvous TCPStore reuse causes stale worker keys and indefinite hangs in init_process_group with the Gloo backend after worker restarts. Additionally, dist.recv_object_list raises errors when called with default src=None due to regression requiring explicit ranks.
  • [issues/201560, issues/201638]
  • Compilation and Backend Integration Failures: Compilation failures occur in Inductor with dynamic=True when symbolic expressions cause undefined names, and in Metal Performance Shaders backend due to exceeding constant buffer limits. Bugs in torch.compile cause incorrect stream queries and aliasing issues in torch.cond. Circular import bugs break torch.compile when importing certain modules out of order.
  • [issues/201590, issues/201612, issues/201688, issues/201689, issues/201759, issues/201864]
  • Memory and Resource Management Bugs: Bugs include the PrefixStore.barrier() ignoring configured timeouts, nested memory pool contexts on XPU allocating from outer pools instead of innermost, and NCCL backing memory freed prematurely before deregistration of associated windows, risking resource mismanagement.
  • [issues/201554, issues/201821, issues/201874]
  • Numerical Stability and Precision Issues: Numerical stability bugs affect functions like torch.nn.functional.gumbel_softmax returning NaNs with float16 logits at low temperature, and F.linear_cross_entropy producing NaN gradients or accumulating loss in bf16 precision causing drift. The LKJCholesky.sample method generates incorrect correlation matrices due to Beta distribution parameterization errors.
  • [issues/201627, issues/201658, issues/201659, issues/201656]
  • Test Coverage and CI Gaps: Static analysis reveals 45 test files matching discovery patterns are not executed by any CI shard or workflow, indicating measurable gaps in test coverage and potential undiscovered bugs.
  • [issues/201576]
  • Autograd and Differentiation Bugs: Nested forward-mode AD fails for silu, mish, and logit activations under no_grad or inference_mode due to missing forward-AD formulas. The backward pass for max/min segment reductions incorrectly handles negative gradients, causing over-counting. An AsyncCollectiveTensor input loses gradient connectivity when passed into compiled functions.
  • [issues/201633, issues/201670, issues/201700]
  • Build and Configuration Issues: Build failures occur due to API mismatches in cuDSS 1.0+ and missing cuDNN 9 paths for CUDA 13+ on Windows. A proposal exists to unify build configuration precedence rules prioritizing environment variables over flags and config files.
  • [issues/201664, issues/201812, issues/201879]
  • Memory Format and Tensor Layout Bugs: parameters_to_vector fails on channels_last memory format due to non-contiguous tensors and use of view(-1). Frozen weight fusion in Inductor changes in-memory layout, potentially affecting kernel selection and performance.
  • [issues/201657, issues/201718]
  • CUDA Kernel and Indexing Bugs: CUDA kernels for deterministic index_put_ access out-of-bounds indices without checks, and torch.flip with 32-bit indexing causes integer overflow leading to illegal memory writes. Reduction on expanded tensors with large dimensions triggers assertion failures due to improper dimension splitting.
  • [issues/201574, issues/201634, issues/202079, issues/202080]
  • Memory and Segmentation Faults on Device Enumeration: Calling torch.xpu.is_available() on WSL3 with Intel Arc Pro B70 GPU causes segmentation faults due to hardcoded Sysman initialization ignoring environment variables. CUDA IPC implementation has data races causing segmentation faults during first IPC export.
  • [issues/201917, issues/201942]
  • Softmax and Cross-Entropy Numerical Stability Improvements Requested: A request proposes implementing fixes for known numerical bugs in softmax and cross-entropy functions to improve gradient accuracy and stability based on recent research.
  • [issues/201986]
  • Documentation and Naming Issues: Several docstring examples in torch.fft, torch.linalg, and torch.special contain errors causing runtime exceptions. The torch.testing._internal.common_utils.parametrize method generates test names with problematic characters breaking test selection, requiring sanitization.
  • [issues/201616, issues/202013, issues/202014]
  • Distributed Checkpointing and File Writing Bugs: Using thread_count > 1 in Distributed Checkpointing Protocol writers causes incomplete writes due to exceptions in auxiliary threads not propagating, resulting in missing shard files or tensor entries despite apparently complete checkpoints.
  • [issues/202063]
  • Regression and Performance Slowdowns: PyTorch 2.15.0 regression causes advanced indexing assignment on Intel XPU devices to fail with resource errors. CUDA training loops slow down ~50x starting from PyTorch 2.10.0 when DataLoader with multiple workers iterates in background threads.
  • [issues/201672, issues/201936]
  • Inductor Cache and Compilation Option Preservation Bugs: Inductor's shared on-disk cache can have filename collisions causing incorrect code execution. Triton JIT compilation options like noinline=True are not preserved during serialization, causing discrepancies between eager and serialized kernel behavior.
  • [issues/201688, issues/202098]
  • Symbolic and Expression Evaluation Bugs: ShapeEnv.evaluate_expr truncates float-valued sympy expressions to integers without explicit hints, causing incorrect guards and runtime assertions. Dead guard conditions exist in Dynamo due to always-false type comparisons.
  • [issues/201817, issues/201818]
  • Quantization and Optimizer State Bugs: FSDP's uneven-sharding check rejects multi-tensor payloads for quantized weights due to shape mismatches, causing hangs. The fused SGD optimizer's momentum buffer remains uninitialized when GradScaler skips steps, leading to invalid updates. Optimizer.load_state_dict silently downcasts floating-point states causing precision loss.
  • [issues/201615, issues/201669, issues/202040]
  • Miscellaneous Bugs and Requests: Requests include adding native 1D sliding window min/max functions, variable-length attention support on Windows, and FlyDSL template provider extensibility for out-of-tree device plugins. Bugs include silent input mutations dropped in nested torch.cond branches during compilation and incorrect behavior of hasattr after graph breaks in Dynamo.
  • [issues/201590, issues/201744, issues/201971, issues/202042, issues/202043, issues/202044]

2.4 Closed Issues

This section lists, groups, and then summarizes issues that were closed within the last week in the repository. This section also links the associated pull requests if applicable.

Issues Closed This Week: 122

Summarized Issues:

  • Quantization Support and Stability Issues: Several issues highlight incomplete or problematic support for quantization in PyTorch, including lack of per channel weight observer support for ConvTranspose layers causing errors during per channel quantization, silent failures when dynamically quantizing unsupported modules like MultiheadAttention, and severe accuracy drops when dynamically quantizing convolutional layers or fine-tuned models due to implementation limitations or repeated quantization of shared layers. Additionally, backend support limitations prevent running dynamically quantized models on CUDA, and inconsistencies exist in quantization parameter calculations between PyTorch and fbgemm.
    • issues/54816, issues/58969, issues/70480, issues/74393, issues/78722, issues/82053
  • Dynamic Quantization and CUDA Support: There is a need for supporting quantized low-level int8 operations such as quantized::linear_dynamic on CUDA to enable efficient inference of quantized TorchScript transformer models on GPUs. Interim solutions like manual operator registration or torch.compile-based implementations are being explored, alongside integration with emerging quantization frameworks to facilitate dynamic quantization on CUDA.
    • issues/69364
  • MPS Backend Functional Bugs and Limitations: Numerous bugs affect the Apple MPS backend, including failures in adaptive average pooling with odd-sized inputs, incorrect sorting behavior with negative NaNs, segmentation faults in cross entropy and scatter operations, incorrect gradient accumulation in embedding layers, and inconsistent handling of indexing out of bounds or boolean operations. Some operations silently produce incorrect results or cause crashes, and several issues have been fixed in recent PyTorch versions.
    • issues/84489, issues/84813, issues/86848, issues/94371, issues/96056, issues/101878, issues/103023, issues/104342, issues/115152, issues/116567, issues/121439, issues/124029, issues/132605, issues/140570, issues/143864, issues/144824, issues/154882, issues/160415, issues/161524, issues/163504, issues/200789, issues/200910
  • MPS Backend Performance and Stability Issues: The MPS backend also suffers from performance regressions and stability problems such as hangs during GPU encoding with SentenceTransformer, precision loss in Inductor compiler lowering of expm1 and log1p, and silent correctness bugs in reduction operations causing incorrect outputs without errors.
    • issues/201377, issues/201378, issues/201455
  • ROCm and AMD GPU Backend Issues: Multiple issues affect AMD ROCm support, including runtime errors due to kernel compilation mismatches, intermittent numerical instability in training on gfx950 hardware, failures in Triton kernel linking on rocm-navi31, and missing dependencies causing kernel launch failures on gfx1100 GPUs. Additionally, profiling crashes and HIP compile flag injection bugs affect ROCm workflows.
    • issues/189618, issues/189893, issues/192580, issues/192610, issues/193009, issues/184397, issues/194498
  • Distributed and Collective Operations Bugs: There are bugs related to distributed functional collectives, including missing autograd support for broadcast operations and proposals to add native implementations of reduce, gather, and scatter to improve performance and integration with meta kernels and autograd.
    • issues/200876, issues/200877
  • CUDA Graph and Stream Capture Conflicts: Using NCCL inside CUDA graphs and conditional nodes causes stream capture conflicts leading to cudaErrorStreamCaptureMerge errors, due to assumptions of only one active stream capture per device.
    • issues/191681
  • Tensor Operation Bugs and Crashes on CUDA: Numerous CUDA-related bugs cause crashes or illegal memory accesses, including floating-point exceptions (SIGFPE) in batch normalization and convolution operators with zero-sized inputs or invalid parameters, out-of-bounds indexing errors causing device-side assertions without proper host validation, and silent incorrect results or process aborts due to kernel errors triggered by invalid inputs or shapes.
    • issues/201714, issues/201716, issues/201717, issues/201720, issues/201721, issues/201723, issues/201725, issues/201726, issues/201728, issues/201729, issues/201797, issues/201798, issues/201799, issues/201800, issues/201802, issues/201803, issues/201804, issues/201806, issues/201807, issues/201808
  • Thread Safety and Concurrency Issues: Concurrent in-place operations on the same CPU tensor by multiple Python threads cause lost updates and inconsistent results due to non-atomic read-modify-write behavior, requiring explicit locking or independent tensors to avoid silent data corruption.
    • issues/201805, issues/201832
  • Triton Kernel and Inductor Backend Bugs: Bugs in Triton kernels and Inductor codegen include incorrect pipelining causing wrong results, failure to zero-initialize workspace memory leading to stale reads, and suboptimal shared memory usage causing performance regressions compared to torch.compile.
    • issues/201584, issues/201495, issues/201192
  • PyTorch Compiler and Dynamo Issues: Dynamo compiler bugs include inconsistent dtype inference for torch.full with dynamic fill values, failure to recognize subclass overrides causing validation errors, and silent argument sign flips in torch.compile due to dropped negative zero float arguments, leading to runtime discrepancies from eager mode.
    • issues/196509, issues/198486, issues/201985
  • Windows and Build System Problems: Windows builds face issues such as ROCm SDK path detection failures, improper command-line quoting breaking builds, missing linker directives causing HIP DLL loading failures in LibTorch C++ programs, and slow editable wheel builds due to single-threaded compression.
    • issues/191834, issues/201444, issues/196619
  • Test Failures and CI Instabilities: Various tests are disabled or flaky on XPU and ROCm platforms due to consistent failures, and MI350 test shards on new runners hang or fail to start, blocking progress on main branches until resolved or reverted.
    • issues/196308, issues/196551, issues/196650, issues/201278, issues/201279, issues/201280, issues/201281, issues/190239
  • Numerical Accuracy and Overflow Bugs: Some mathematical functions like torch.i0 and torch.special.i0/i1 overflow prematurely to infinity in float64 for large inputs, and the MPS backend's Inductor compiler lowers expm1 and log1p to less precise expressions causing significant precision loss.
    • issues/201506, issues/201377
  • Distributed Training Deadlocks: A regression in NCCL versions causes deadlocks during ProcessGroupNCCL shutdown when destroying multiple two-rank communicators, leading to indefinite hangs in multi-GPU distributed training.
    • issues/201536
  • Performance Regressions and Workarounds: Performance degradation is observed in scaled dot product attention on AMD iGPUs with non-contiguous inputs, with workarounds involving making inputs contiguous to improve speed, and Triton decode performance regresses in newer versions compared to older ones despite numerical correctness.
    • issues/190154, issues/201139
  • Miscellaneous Bugs and Proposals: Other issues include silent skipping of hash verification in torch.hub.load_state_dict_from_url when check_hash=True, inability to select specific Metal devices by registryID on Macs, and proposals for better CUDA kernels for matrix exponential to improve performance.
    • issues/191194, issues/84813, issues/201551

2.5 Issue Discussion Insights

This section will analyze the tone and sentiment of discussions within this project's open and closed issues that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.

Based on our analysis, there are no instances of toxic discussions in the project's open or closed issues from the past week.


III. Pull Requests

3.1 Open Pull Requests

This section provides a summary of pull requests that were opened in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.

Pull Requests Opened This Week: 343

Key Open Pull Requests

1. [3/6][inductor][XPU] Guard batch_linear_lhs layout-sensitive users: This pull request implements layout-sensitive guards for the batch_linear_lhs operator in the PyTorch Inductor backend on XPU, resolving direct consumer targets against matching ATen schemas and rejecting users that observe or mutate the fused slice layout through graph outputs, mutations, out= overloads, opaque custom or HigherOrder operators, or merging views, while allowing split-only views and reordering aliases to remain traversable, thereby improving fusion correctness and stability as part of a six-part series splitting a larger original PR.

  • URL: pull/201951
  • Associated Commits: cc0b8, 9a915, 3a603, f841d, 5d122, 7eb1e, c8fbd, 18be6, 7d778, 18366, 0e8cc, 9f62b, 5d4b7, 57a91, 72778, 427b1, b93f3, 34558, 09f07, bb9ae, a2148, c7aa6, 6f19f, cf179, e2fdd, 105b6, f705e, 46d7d, 376d8, a1b1d, 2b403, c44e1, a1fc4, e5e6a, 04946, ff083, 8fbcb, 59567, ee683, 78d3b, 97914, 8790e, 12867, 61474, f6b98

2. Add support for fp32 configs for CK-Tile: This pull request adds tuned configurations to support fp32 data types on gfx950 and gfx942 architectures for the CK-Tile group GEMM backend in PyTorch, improving performance for small expert sizes while deferring mixed input type support to a future update.

  • URL: pull/202073
  • Associated Commits: 7fa20, bdc11, 50f64, 5094b, f36ec, 7317a, be52c, 959fd, beea8, cf9e1, 87fcd, 99df4, 1ab42, eacc4, c1d4e, 85281, 18c4a, 6af7f, a203e, 51a0a, d87ce, 561b7, 1f372, 669cc, 0c15e, 45b11, 7483d

3. [4/6][inductor][XPU] Add batch_linear_lhs alias regressions: This pull request adds extended regression tests for batch_linear_lhs aliasing in the PyTorch Inductor XPU backend, covering various layout-sensitive users such as conversion copies, no-op conversions after transpose, out= consumers, dropout aliasing, in-place wrappers, symbolic split views, and attention operators, as part of a multi-part series to improve layout guard coverage and ensure correctness without changing the guard implementation itself.

  • URL: pull/201533
  • Associated Commits: daadb, ee860, 8c86d, 59825, d806c, 34982, dbad0, be5aa, cb46a, 499f9, 8220c, ab6bf, 63651, f34db, 96559, 97f9a, 79c57, b2a7e, 85558, fd0b9, 36401, 508dd, 3e691

Other Open Pull Requests

  • TunableOp Tuning and Benchmarking Enhancements: Multiple pull requests improve the TunableOp system by introducing validation and benchmarking mechanisms for borrowed tuning solutions, enabling safe nearest-shape matching, and adding a dedicated compile-time benchmark worker to prevent crashes during hipBLASLt tuning. These changes ensure more accurate kernel selection, prevent unvalidated guesses, and isolate tuning processes for stability and efficiency.
  • pull/201769, pull/201766, pull/201767
  • Dynamic Dimension GEMM Tuning: A pull request expands GEMM tuning to cover a range of sizes for dynamic dimension symbols, enabling comprehensive runtime performance coverage through benchmarking multiple sizes within declared ranges and practical ceilings. This enhancement improves tuning accuracy for operations with dynamic shapes.
  • pull/201768
  • CUDA Graphs and Dynamo Precompile System: Changes ensure that compiled CUDA graphs embedded in Dynamo artifacts are served exactly as captured, decoupling their behavior from runtime flags and enabling consistent execution regardless of environment settings. This preserves artifact integrity and reproducibility across different loading contexts.
  • pull/201939
  • Inductor Backend Compilation Enhancements: The torch.compiler.precompile.capture() function is enhanced with mode= and options= parameters mirroring torch.compile configurations, allowing more flexible and consistent Inductor backend compilation. Validation checks and error handling for incompatible options like CUDA graphs are also introduced to improve robustness.
  • pull/201940
  • Scaled Matrix Multiplication Testing Refactor: The testing framework for scaled matrix multiplication is refactored to separate CUDA-only FP8 tests, introduce shared helpers and hardware classification, and replace CUDA-specific decorators with device-agnostic ones. Expected failure markers for unsupported XPU features and adjustments for TorchDynamo error messaging differences are also included to improve test coverage and maintainability.
  • pull/201556
  • XPU Backend and Submodule Updates: Updates include pinning the torch-xpu-ops submodule to multiple new commits, removing expected failures, and updating meta registrations for grid sampler 3D on XPU as part of pre-testing efforts. These changes prepare the XPU backend for improved stability and feature support.
  • pull/201788
  • PR Review Process Improvements: The automated PR review system is enhanced to include its own earlier findings and emoji reactions, preserve full conversation context without filtering, prioritize human comments over automated findings under byte limits, and handle reaction lookup limits and failures. These improvements provide better provenance and selection logic for inline comments and replies.
  • pull/201907
  • Performance Optimizations for Guards and Linting: Several pull requests optimize guard mechanisms by adding a no-arguments form of LAMBDA_GUARD to reduce overhead, improving GIL handling to avoid unnecessary drops and reacquisitions, moving FX_ANNOTATION guard checks from Python lambdas to efficient C++ implementations, and caching float32 CUDA matmul precision checks. These collectively reduce runtime costs and introduce linting to encourage efficient usage.
  • pull/201571, pull/201572, pull/201569, pull/201570
  • Convolution Bias Output Precision Fix: A pull request addresses inconsistent numerical precision in Inductor's convolution bias output by adding a rounding step to match the convolution's data type before fusion. This ensures consistent rounding behavior for low-precision outputs like bf16 and fp16 without adding extra kernels or materializing casts.
  • pull/201713
  • Quantized GEMM Operator for XPU: A native oneDNN-based quantized GEMM operator supporting int4-weight and int8-activation formats is introduced for XPU, enabling frameworks such as vLLM to replace direct oneDNN calls with upstream PyTorch operators. This improves integration and performance for quantized LLM inference on XPU devices.
  • pull/201592
  • Blockscaled TMA Kernel Enhancements: The blockscaled_tma functionality is modified to allow batch dimensions to be positioned arbitrarily within input tensors and extended to support 3D batched inputs with a leading batch dimension. These changes enable per-batch scale swizzling for quantization while maintaining constraints on quantization dimensions.
  • pull/201778, pull/201561
  • Profiler GlobalCallbackSession Safeguards: The GlobalCallbackSession in the PyTorch profiler is changed to a leaky singleton with safeguards including an atexit-registered close method to ensure shared resources are drained and protected from access after destruction. This prevents crashes caused by callbacks accessing destroyed state when the profiler is still running at process exit.
  • pull/201655
  • CUDA Storage Device Index Conversion Safety: A single integral narrowing conversion in CUDA storage-sharing device index decoding is migrated from c10::checked_convert to c10::safe_conv<c10::DeviceIndex>, adding a direct include of safe_conv.h while preserving diagnostic arguments. This improves safety and correctness in device index handling.
  • pull/201935
  • Triton Kernel Freeze Fallback Mechanism: An opt-in fallback mechanism is introduced to freeze Triton kernels that never ran or autotuned by capturing and serving their first valid compile result during cache finalization. This enables backward kernels that were never executed to be precompiled and used without causing capture failures.
  • pull/202074
  • Portable Cache Key for Precompiled C++ Kernels: A mechanism is added to key precompiled C++ kernels independently of their install location by normalizing install-root paths and incorporating build and environment details. This allows reuse of frozen binaries across relocatable deployments and avoids unnecessary recompilation at serve time.
  • pull/202075
  • Batch Linear LHS Optimization on XPU: The batch_linear_lhs optimization is re-enabled by default on the XPU backend with device-scoped settings and a minimum fusion group size of two projections. CPU and other backends remain opt-in, with regression tests verifying correctness after prior safety and validation improvements.
  • pull/201535
  • Quantized Tensor CUDA Testing Refactor: A new test case class TestQuantizedTensorCUDA is added with CUDA-specific pinned-memory tests, remaining device tests are migrated to TestQuantizedTensorDevice, hardware classification labels are introduced, and import cleanups are performed. This completes a six-part refactoring of test_transforms.py to improve test organization.
  • pull/201603
  • MPP SDPA Prefill Kernel Speedups on Apple10 GPUs: The MPP SDPA prefill kernel is enhanced to support padded and chunked head dimensions on Apple10 GPUs, resulting in significant speedups compared to previous versions, especially on machines like the M5 Pro.
  • pull/201765
  • FX Autograd Cache Key NaN Handling: The autograd cache key serialization is modified to preserve exact float and complex NaN constants, ensuring that graphs with different NaN signs or payloads produce distinct cache keys. This prevents FX-generated Python code from treating distinct NaN scalars identically while maintaining stability for identical constants.
  • pull/201887

3.2 Closed Pull Requests

This section provides a summary of pull requests that were closed in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.

Pull Requests Closed This Week: 353

Key Closed Pull Requests

1. [XPU] Align XPU unit tests decorators and overrides.: This pull request batches multiple changes to align XPU unit tests and decorators with upstream PyTorch by overriding tolerance levels for non-deterministic XPU operators like conv3d and conv_transpose3d, adjusting gradcheck tolerances for grid_sampler_2d, adding missing dtype arguments, and skipping flaky tests to address accuracy and stability issues documented in related torch-xpu-ops issues.

  • URL: pull/186089
  • Associated Commits: 825e6, 29185, 10e5c, ce357, c6449, 24f41, 418d5, 51697, 77cee, 77e63, 5d466, dc408, a3435, d78f1, c9858, 7f974, 22e30, 16977, 79e53, 8d5c0, fd0ef, 70c8b, 847e6, 264c4, 25d78, a776b, c8a78, 6b49e, c9213, 225b6, 63155, b2bf7, 2e87f, 50e3f, 25770

2. torch.sort: Optimize memory usage with downcasting and upcasting indices for functional variant and direct type for out-variant (Reopen): This pull request aims to optimize the memory usage of the torch.sort function by dynamically determining the data type of indices through downcasting and upcasting techniques, supporting multiple integral types (Byte, UInt16, UInt32, UInt64) for both functional and out-variants, thereby significantly reducing peak memory consumption during sorting operations on CPU and GPU.

  • URL: pull/170978
  • Associated Commits: aed7f, d9d72, 2be6e, 47ea6, 52508, 94ff9, 10be8, cc119, f6467, 61aa0, 2d225, 2055b, 3ead1, 09a16, 26acf, c2dc0, edf18, 9db63, d3eda, be8b8, f9e62, 9ab9b, d17be, 846b8, 3b4bd, 8e601, f2a4b, 1e18b, c9142, eb84f, f828b, fb0f0, c042d, 54660

3. [DTensor] Preserve dense stateful RNG semantics for Shard(i): This pull request aims to preserve the dense stateful random number generator (RNG) semantics for one-dimensional Shard(i) placements in DTensor by mapping them to a private Generator-backed rectangular-shard adapter within the common DTensor RNG dispatch, deriving global and local tensor parameters directly from DTensorSpec without introducing a new RNG protocol, while maintaining existing fallbacks and explicit-generator rankwise replay under full-graph compilation.

  • URL: pull/189546
  • Associated Commits: d8d25, 4ac0d, e0797, 31117, 7a06f, 63d23, 4c072, 35e9d, f194c, 747b2, d2323, 67145, afbc7, 526ef, 3be25, a7509, 929fe, a6303, 747c3, 24f32, e403b, 1eabd, 8bb56, 46372, 67145, f9e9b, 404d9, 7d591, ff59c, e8846, 31d6d, 39b81, 26ecc

Other Closed Pull Requests

  • Dynamo precompile and guard handling: Multiple pull requests improve PyTorch Dynamo's handling of identity guards and fallback frames during precompile artifact capture. These changes ensure that objects pickling as self-references retain their ID_MATCH guards and that fallback frames are recorded and run eagerly with warnings, enhancing artifact robustness and correctness.
    • pull/201315, pull/201314
  • Hardware classification and test refactoring: Several pull requests refactor tests by adding hardware classification metadata and reorganizing device-specific coverage. These updates improve test structure by distinguishing generic from accelerator-specific tests and enable dynamic adaptation to various accelerators, enhancing coverage and maintainability.
    • pull/193120, pull/194350, pull/193271, pull/190156, pull/192981
  • Fully Sharded Data Parallel (FSDP) improvements: Pull requests propose refactoring FSDP by separating preparation and execution of collective copy operations and introducing a C++ implementation for shard copies. These changes improve performance, layout tracking, and error checking while preserving key features and fixing edge cases in sharding and payload sizes.
    • pull/197701, pull/200034
  • Distributed and process group enhancements: Multiple pull requests enhance distributed backend features by improving process group hook documentation, fixing serialization of DistributedDataParallel guards with non-default groups, and adding comprehensive one-sided window API docs. These efforts clarify hook semantics, enable proper serialization, and document experimental APIs for better usability.
    • pull/201436, pull/201319, pull/201405
  • Dynamo graph and serialization fixes: Pull requests address issues in Dynamo related to class creation tracing, guard serialization, and support for instance attributes on exact OrderedDict objects. These fixes improve exception handling, hardware-specific test coverage, and restore functionality broken in recent versions.
    • pull/195626, pull/192981, pull/201289
  • Performance optimizations and deterministic execution: Pull requests optimize configuration reads by caching defaults to reduce latency and add deterministic execution paths for operators with atomic accumulation. These changes improve compile-time performance and ensure reproducible results with minimal speed impact.
    • pull/193160, pull/197506
  • CUDA and NCCL related fixes: Pull requests fix issues with CUDA stream lifetime in nested graph captures and resolve NameErrors in Inductor-generated Triton modules by properly serializing NamedTuple constexpr arguments. These fixes improve stability and correctness of GPU kernel specialization and execution.
    • pull/199439, pull/192531
  • RNG and symbolic tensor support: A pull request introduces a shard RNG adapter supporting symbolic shapes and LocalTensor, along with a Meta implementation preserving symbolic tensor properties. This adds reusable adapters and enhances DTensor tests without changing public RNG protocols.
    • pull/190445

3.3 Pull Request Discussion Insights

This section will analyze the tone and sentiment of discussions within this project's open and closed pull requests that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.

Based on our analysis, there are no instances of toxic discussions in the project's open or closed pull requests from the past week.


IV. Contributors

4.1 Contributors

Active Contributors:

We consider an active contributor in this project to be any contributor who has made at least 1 commit, opened at least 1 issue, created at least 1 pull request, or made more than 2 comments in the last month.

If there are more than 10 active contributors, the list is truncated to the top 10 based on contribution metrics for better clarity.

Contributor Commits Pull Requests Issues Comments
bobrenjc93 3200 39 1 24
liangel-02 405 28 0 0
d4l3k 267 21 2 1
benjaminglass1 155 47 0 4
malfet 139 10 0 55
drisspg 167 17 6 8
Isalia20 124 21 1 10
gplutop7 97 1 0 56
mlazos 129 18 0 0
jananisriram 134 4 0 1

Don't miss what's next. Subscribe to Weekly Project News:
Powered by Buttondown, the easiest way to start and grow your newsletter.