viable/strict/1788175532: [XPU] Fix accuracy issue in addmm for bf16/f16 dtypes (#174864)
PyTorch 在 2026 年 8 月 31 日发布的版本中修复了 XPU 上 addmm 和 baddbmm 在 bf16/f16 数据类型下的精度问题。问题源于 oneDNN 三步 post-op 链在每一步将中间结果舍入到降低的精度。修复方法是将 self 预复制到 result 中,并使用 post_sum 在 oneDNN 内部 f32 累加器中累加,从而匹配 CPU/CUDA 行为。该修复解决了 intel/torch-xpu-ops#2837,并已合入 PyTorch 主分支。
Development
- First Reportviable/strict/1788175532: [XPU] Fix accuracy issue in addmm for bf16/f16 dtypes (#174864)PyTorch Core
- Industry Responsetrunk/40e238cee98065a2526d8420affade6be07912d7: [XPU] Fix accuracy issue in addmm for bf16/f16 dtypes (#174864)PyTorch Core
- Current Assessment该修复反映了 PyTorch 对 XPU 后端精度问题的持续关注,有助于提升 Intel 硬件上 AI 计算的可靠性。随着 XPU 在 AI 领域的应用增加,此类修复将增强 PyTorch 在多种硬件上的兼容性。Agent Pulse · analysis
PyTorch 在 2026 年 8 月 31 日发布的版本中修复了 XPU 上 addmm 和 baddbmm 在 bf16/f16 数据类型下的精度问题。问题源于 oneDNN 三步 post-op 链在每一步将中间结果舍入到降低的精度。修复方法是将 self 预复制到 result 中,并使用 post_sum 在 oneDNN 内部 f32 累加器中累加,从而匹配 CPU/CUDA 行为。该修复解决了 intel/torch-xpu-ops#2837,并已合入 PyTorch 主分支。
该修复表明 oneDNN 的 post-op 链在低精度数据类型下存在精度损失,通过使用内部 f32 累加器可以避免中间舍入。这提示在 XPU 上实现类似操作时,应优先使用支持 f32 累加的原语,并注意 post-op 链的精度影响。
该修复反映了 PyTorch 对 XPU 后端精度问题的持续关注,有助于提升 Intel 硬件上 AI 计算的可靠性。随着 XPU 在 AI 领域的应用增加,此类修复将增强 PyTorch 在多种硬件上的兼容性。
该修复提升了 PyTorch 在 Intel XPU 上的数值准确性,使依赖 bf16/f16 精度的 AI 应用(如推理和训练)在 Intel 硬件上更可靠,可能增强 Intel 在 AI 硬件市场的竞争力。
未来可能看到更多针对 XPU 后端的精度修复,以及 oneDNN 原语在低精度下的行为改进。建议关注 PyTorch 后续版本中 XPU 相关更新。