Skip to content

[CP] acc paddle.sqrt#79308

Merged
sneaxiy merged 1 commit into
PaddlePaddle:release/3.4from
zhengshengning:cp_acc_rsqrt
Jun 16, 2026
Merged

[CP] acc paddle.sqrt#79308
sneaxiy merged 1 commit into
PaddlePaddle:release/3.4from
zhengshengning:cp_acc_rsqrt

Conversation

@zhengshengning

Copy link
Copy Markdown
Contributor

PR Category

Operator Mechanism

PR Types

Improvements

Description

devPR:#79259

是否引起精度变化

@PaddlePaddle-bot PaddlePaddle-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 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.hpaddle/phi/kernels/gpu/activation_grad_kernel.cu
影响面 TagOperator 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) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 建议 新增的 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,并至少覆盖 float16bfloat16;同时用 try/finally 恢复原 flag,避免影响同进程其它测试。

@PaddlePaddle-bot

PaddlePaddle-bot commented Jun 14, 2026

Copy link
Copy Markdown

🤖 Paddle-CI-Agent | ci_status_monitor | 2026-06-15 20:45:34

CI报告基于以下代码生成(30分钟更新一次):
PR commit: 0765bf2 | Merge base: d3c4748 (branch: release/3.4)


1 Required任务 : 32/33 通过

总执行(rerun次数) 总任务 ✅ 通过 ❌ 失败 ⏳ 运行中 ⏸️ 等待中 跳过
92(11) 81 80 1 0 0 0
任务 错误类型 置信度 日志
Linux-IXUCA / Build and Test 环境问题:Paddle-iluvatar 补丁冲突 Job

2 失败详情

🔴 Linux-IXUCA / Build and Test — 环境问题:Paddle-iluvatar 补丁冲突(置信度: 高)

分析器: 通用分析(fallback)
失败用例: 无,失败发生在构建前的 Paddle-iluvatar 集成构建步骤 Build paddlepaddle-iluvatar,后续安装和测试均被跳过。

用例 错误摘要
Build paddlepaddle-iluvatar 集成脚本执行 git rebase/git revert 时发生补丁冲突

关键日志:

Auto-merging paddle/phi/CMakeLists.txt
Auto-merging cmake/cupti.cmake
error: Failed to merge in the changes.
Patch failed at 0001 [release/3.4][CINN] Make CINN compilable with arm CPU and add missing `nvidia-*` dependencies for arm wheel (#78730)
CONFLICT (content): Merge conflict in paddle/phi/kernels/gpu/adam_kernel.cu
error: could not revert f4014bfa7b... [Performance] Optimize Adam GPU kernel and change learning rate type to float64 (#78972)
##[error]Error: failed to run script step: command terminated with non-zero exit code: Error executing in Docker Container: 1
  • 根因摘要: Paddle-iluvatar 补丁栈与 release/3.4 当前代码冲突

日志显示失败发生在 Build paddlepaddle-iluvatar 步骤,集成脚本在应用/回滚 release/3.4 相关补丁时遇到冲突,涉及 cmake/cupti.cmakepaddle/phi/CMakeLists.txtpaddle/phi/kernels/gpu/adam_kernel.cu。本 PR 仅修改 paddle/phi/kernels/funcs/activation_functor.hpaddle/phi/kernels/gpu/activation_grad_kernel.cu,未触及日志中的冲突文件,因此当前失败不指向本 PR 的 rsqrt 改动。

修复建议:

  1. 同步或修复 Paddle-iluvatar 集成分支中的 release/3.4 补丁栈,解决上述 git rebase / git revert 冲突后 rerun Linux-IXUCA / Build and Test
  2. 本 PR 作者通常无需修改 rsqrt 相关代码;若该任务持续失败,请由 IXUCA/Paddle-iluvatar 维护侧处理补丁冲突。

关联变更: PR 修改 paddle/phi/kernels/funcs/activation_functor.hpaddle/phi/kernels/gpu/activation_grad_kernel.cu;日志冲突文件为 cmake/cupti.cmakepaddle/phi/CMakeLists.txtpaddle/phi/kernels/gpu/adam_kernel.cu,未发现直接关联。

@wanghuancoder wanghuancoder left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@sneaxiy sneaxiy merged commit c739a81 into PaddlePaddle:release/3.4 Jun 16, 2026
90 of 93 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants