[Operator Mechanism] Fix baddbmm_grad input_grad overflow for large tensors#79455
[Operator Mechanism] Fix baddbmm_grad input_grad overflow for large tensors#79455feixi139 wants to merge 2 commits into
Conversation
risemeup1111
left a comment
There was a problem hiding this comment.
发现一个会影响广播输入梯度正确性的阻塞问题,具体位置和建议修复已放在 inline review comment 里。CI 仍有部分任务运行中,当前已完成的非审批检查没有暴露额外问题。
risemeup1111
left a comment
There was a problem hiding this comment.
已复查,新提交恢复了 input_grad 在广播和非广播路径上的统一 beta 缩放,上一轮阻塞问题已解决。当前未发现新的需要阻塞合入的问题,CI 以最终运行结果为准。
PaddlePaddle-bot
left a comment
There was a problem hiding this comment.
🤖 Paddle-CI-Agent | pr_review |
2026-07-10 17:11:34
📋 Review 摘要
PR 概述:修复 baddbmm_grad 在 input_grad 大 tensor 场景下使用 BLAS VCOPY/SCAL 的 int 长度溢出问题。
变更范围:paddle/phi/kernels/impl/baddbmm_grad_kernel_impl.h
影响面 Tag:[Operator Mechanism]
问题
未发现阻塞性问题。PR 规范问题在下面章节报,不要在这里重复
📝 PR 规范检查
符合规范。
总体评价
本轮按 PR diff 和 Paddle Phi kernel checklist 审查了 input_grad 计算路径、BCopyOrScaleFunctor / ForRange 被调用方、baddbmm_grad YAML 与 CPU/GPU kernel 注册。新增实现用 ForRange 承接 int64_t total_elems 并避开 BLAS int n 限制,未发现需要阻塞合入的新问题。
CI报告基于以下代码生成(30分钟更新一次): 1 Required任务 : 41/48 通过
2 失败详情🔴 Mac-CPU / Build and test — 未知(置信度: 低)分析器: 通用分析(fallback)
关键日志:
修复建议:
关联变更: 未分析(缺少失败用例和 traceback) 🔴 Coverage build — 环境问题(置信度: 高)分析器: 通用分析(fallback)
关键日志:
修复建议:
关联变更: 未分析(失败发生在容器启动/镜像仓库访问阶段,与 PR 代码执行无关) 🔴 Check approval — 需要 Approval(置信度: 高)该 Job 需要人工 Approval,完成审批后 CI 才会继续执行。
|
|
你的PR提交成功,感谢你对开源项目的贡献! |
PR Category
Operator Mechanism
PR Types
Bug fixes
Description
input_grad = beta * out_grad
但这两个 BLAS 接口的长度参数是 int n。当 input_grad.numel() 超过 INT_MAX 时,长度参数会发生溢出,导致 input_grad 没有被正确写入,最终出现梯度为 0 或保留旧内存内容的问题。
本次修改改为使用 ForRange elementwise kernel 直接计算:
input_grad[i] = beta * out_grad[i]
从而避开 BLAS int n 的限制,使 baddbmm backward 在超大 tensor 场景下能够正确计算 input_grad。
是否引起精度变化
否