[CP] acc paddle.sqrt#79308
Conversation
PaddlePaddle-bot
left a comment
There was a problem hiding this comment.
🤖 Paddle-CI-Agent | pr_review |
2026-06-12 12:26:52
📋 Review 摘要
PR 概述:为 GPU rsqrt_grad 增加 FLAGS_use_accuracy_compatible_kernel 分支,兼容路径按输出 dtype 计算梯度。
变更范围:paddle/phi/kernels/funcs/activation_functor.h、paddle/phi/kernels/gpu/activation_grad_kernel.cu
影响面 Tag:Operator Mechanism
问题
| 级别 | 文件 | 概述 |
|---|---|---|
| 🟡 建议 | paddle/phi/kernels/gpu/activation_grad_kernel.cu:267 |
accuracy-compatible rsqrt grad 分支缺少 flag 回归测试 |
📝 PR 规范检查
标题不符合 release cherry-pick 规范,当前 [CP] 不是模板枚举中的标准前缀,且标题未带原 PR 号;Description 缺少本次修改内容、影响范围和验证方式。可直接替换为以下内容。
标题建议(可直接复制):
[Cherry-Pick][Operator Mechanism] Support accuracy-compatible rsqrt grad(#79259)
PR 描述建议(点击展开,可直接复制)
### PR Category
<!-- One of [ User Experience | Execute Infrastructure | Operator Mechanism | CINN | Custom Device | Performance Optimization | Distributed Strategy | Parameter Server | Communication Library | Auto Parallel | Inference | Environment Adaptation ] -->
Operator Mechanism
### PR Types
<!-- One of [ New features | Bug fixes | Improvements | Performance | BC Breaking | Deprecations | Docs | Devs | Not User Facing | Security | Others ] -->
Improvements
### Description
<!-- Describe what you’ve done -->
devPR:https://github.com/PaddlePaddle/Paddle/pull/79259
本 PR 在 GPU `rsqrt_grad` 中接入 `FLAGS_use_accuracy_compatible_kernel`:默认路径继续使用 `MPType` 计算,兼容路径使用输出 dtype 计算 `-0.5 * dout * out^3`,用于对齐 accuracy-compatible 行为。
影响范围:`paddle.rsqrt` 的 GPU 反向 kernel,注册 dtype 为 `float`、`double`、`float16`、`bfloat16`。
验证方式:N/A(当前 diff 未包含新增测试或验证记录)。
### 是否引起精度变化
<!-- one of the following [ 是 | 否 ]-->
否总体评价
实现路径与现有 GPU activation grad 注册机制一致,未发现阻塞性代码问题。主要风险是新增 accuracy-compatible 分支没有对应测试保护,且 PR 标题需要按 release cherry-pick 规范调整。
| const DenseTensor& out, | ||
| const DenseTensor& dout, | ||
| DenseTensor* dx) { | ||
| if (FLAGS_use_accuracy_compatible_kernel) { |
There was a problem hiding this comment.
🟡 建议 新增的 accuracy-compatible rsqrt grad 分支缺少回归测试覆盖。
现有 test_activation_op.py / test_rsqrt.py 只覆盖默认 flag 路径;这次在 FLAGS_use_accuracy_compatible_kernel=true 时切到 CudaRsqrtGradFunctor<T, true>,并且 half/bfloat16 会按 native dtype 截断计算,属于本 PR 的核心行为。如果没有显式设置该 flag 的 GPU 梯度测试,后续改动很容易让兼容路径失效而 CI 不报警。
建议修复方式:补一个 CUDA 单测,在 paddle.set_flags({"FLAGS_use_accuracy_compatible_kernel": True}) 下对 paddle.rsqrt 做 backward,并至少覆盖 float16 和 bfloat16;同时用 try/finally 恢复原 flag,避免影响同进程其它测试。
CI报告基于以下代码生成(30分钟更新一次): 1 Required任务 : 32/33 通过
2 失败详情🔴 Linux-IXUCA / Build and Test — 环境问题:Paddle-iluvatar 补丁冲突(置信度: 高)分析器: 通用分析(fallback)
关键日志:
日志显示失败发生在 修复建议:
关联变更: PR 修改 |
PR Category
Operator Mechanism
PR Types
Improvements
Description
devPR:#79259
是否引起精度变化
否