AGENT PULSESJCPal Special EditionAI 行业证据与趋势
2026年8月29日 · PyTorch

viable/strict/1788025796: [MPS] Fix linear backward SIGABRT with a 1-D weight (#187989)

To D
发生了什么

PyTorch 修复了 MPS 后端 linear 反向传播中 1-D 权重导致的 SIGABRT 崩溃。问题源于 backward 未像 forward 那样对 1-D 权重进行 unsqueeze,导致 rank-1 矩阵乘法验证失败。修复在 mps_linear_backward 顶部统一处理 1-D 权重,复用 2-D 反向图,并保持 2-D 快速路径不变。

EVENT STORY

发展脉络

  1. 首次出现viable/strict/1788025796: [MPS] Fix linear backward SIGABRT with a 1-D weight (#187989)PyTorch Core
  2. 行业反馈trunk/1782e8ec673e736ffda3414fd921f3c1b1b62002: [MPS] Fix linear backward SIGABRT with a 1-D weight (#187989)PyTorch Core
  3. 当前判断此修复体现了 PyTorch 对 MPS 后端稳定性的持续投入,确保 Apple Silicon 上的训练和推理可靠性。对于依赖 PyTorch MPS 的开发者,此类修复减少了崩溃风险,提升了开发体验。这也反映了跨平台框架在维护多后端时面临的挑战,需要持续修复边缘情况。Agent Pulse · 分析
改变了什么

PyTorch 在 MPS 后端修复了一个 linear 反向传播的崩溃问题。当 linear 接受 1-D 权重(形状 [in_features])时,forward 通过 unsqueeze 权重为 [1, in_features] 处理,但 backward 未镜像此操作,导致 grad_input 和 grad_weight 被降为无效的 rank-1 × rank-1 矩阵乘法,在 MPSGraph 验证时触发 SIGABRT。修复在 mps_linear_backward 顶部统一处理 1-D 权重:将权重 unsqueeze 为 [1, K],grad_output 的尾维匹配隐式 out_features=1,复用现有 2-D 反向图,最后将 grad_weight 压缩回 1-D。此修复不影响标准 nn.Linear(2-D 权重)的快速路径。

能力边界怎么变了

该修复揭示了 MPS 后端在算子实现中 forward 与 backward 对称性的重要性。1-D 权重在 forward 中被隐式视为 out_features=1,但 backward 未同步处理,导致形状不匹配。修复通过统一在 backward 入口处规范化权重形状,复用 2-D 图,避免了重复实现。这提示在自定义算子中,应确保 backward 与 forward 的形状处理逻辑一致,并考虑通过 unsqueeze/squeeze 复用通用路径。

为什么重要

此修复体现了 PyTorch 对 MPS 后端稳定性的持续投入,确保 Apple Silicon 上的训练和推理可靠性。对于依赖 PyTorch MPS 的开发者,此类修复减少了崩溃风险,提升了开发体验。这也反映了跨平台框架在维护多后端时面临的挑战,需要持续修复边缘情况。

对谁有影响

此修复降低了 PyTorch MPS 用户在生产环境中遇到崩溃的风险,提升了框架的稳定性,有助于维护 PyTorch 在 Apple 生态中的开发者信任,对依赖 MPS 进行模型训练和推理的企业有直接价值。

接下来观察

未来可关注 PyTorch MPS 后端是否还有其他类似的前后向不对称问题,以及是否会有更系统的形状处理机制。此外,可观察此修复是否被移植到其他分支或影响相关算子。