Merged
fix: 修复 pad_v2 GEIR 示例 include 路径与 GetSampleBuffers 声明冲突 #6915
tan_xinAdd on 10 days ago
fix: 修复 pad_v2 GEIR 示例 include 路径与 GetSampleBuffers 声明冲突 #6915
Merged
tan_xinAdd on 10 days ago
tan_xinCollaborators
10 days ago

描述

修复 conversion/pad_v2/examples/arch35/test_geir_pad_v2.cpp(PadV2 算子 GEIR 图模式样例)的编译问题:

  1. 修正 include 相对路径:example 位于 examples/arch35/,与 op_graph/ 相差两级目录,由 #include "../op_graph/pad_v2_proto.h" 改为 #include "../../op_graph/pad_v2_proto.h"(对齐同仓 parallel_concat example 写法)。
  2. 移除未使用的 include:删除 #include "experiment_ops.h"。
  3. 声明一致性:GetSampleBuffers() 前置声明补充 static,与定义处的 static 声明保持一致,消除 linkage 冲突导致的编译错误。

关联的Issue

关联 Issue #4353

测试

  • GEIR 图模式样例 test_geir_pad_v2.cpp 编译验证通过。

文档更新

NA

类型标签

likedislike
Pull Request has been successfully merged by CANN-robot.
(Thank you for tan_xin's contribution.)
Ttan_xinCollaborators
10 days ago Created pull request, commit 9c5f297e
atomgit-bot
atomgit-bot
10 days ago Comments:

变更摘要

本次变更主要围绕算子测试用例与样例的可运行性做适配:circular_pad_grad 的 golden 实现增强了对 torch.Tensor 输入的兼容,并在非法输入场景下由零参考替代异常中断;pad_v2 的 GE IR 样例修正了头文件引用路径与符号链接属性。

主要改动

  • golden 输入兼容 torch.Tensor:circular_pad_grad_golden 与 _aclnn_circular_pad_grad_golden 增加对 grad_output、paddings 为 torch.Tensor 时的 detach().cpu().numpy() 转换,origin_dtype 改为从 torch dtype 字符串获取,bfloat16 判断由等值比较改为 "bfloat16" in origin_dtype 以同时覆盖 numpy 与 torch 两种来源。
  • 新增零参考降级函数 _aclnn_zero_fallback:对数学上必然失败的非法输入(expected_error 用例),返回与输出容器同 shape/dtype 的零张量,使用例继续进入算子侧校验而非直接报 GOLDEN_FAILURE。
  • aclnn spec 的 golden 接口签名调整:AclnnCircularPad2dBackwardSpec.golden 与 AclnnCircularPad3dBackwardSpec.golden 新增 gradInput 入参,并以 try/except 包裹原计算逻辑,异常时回退调用 _aclnn_zero_fallback(gradInput)。
  • pad_v2 样例头文件引用修正:test_geir_pad_v2.cpp 移除不再需要的 experiment_ops.h,并将 pad_v2_proto.h 的引用路径由 ../op_graph/ 调整为 ../../op_graph/。
  • GetSampleBuffers 链接属性调整:样例中的声明由 std::vector<uint8_t*>& GetSampleBuffers(); 改为 static 版本,影响该符号在样例内的链接范围。

🧩 本次 Review 已使用自定义 Skill:

likedislike
Incorrect?
atomgit-bot
atomgit-bot
10 days ago Comments:

代码审查

审查结论

变更文件覆盖确认

  • conversion/circular_pad_grad/tests/assets/golden.py:已审查(3 处问题,见下)。
    • 已核对:golden 新增第 4 个位置参数 gradInput 与仓库 aclnn spec 惯例一致(参考 conversion/circular_pad/tests/assets/golden.py 的 golden(x, padding, out, **kwargs)),未构成签名破坏;origin_dtype 用 str(grad_output.dtype) + "bfloat16" in origin_dtype 对 torch.bfloat16("torch.bfloat16")与 ml_dtypes "bfloat16" 均成立。
  • conversion/pad_v2/examples/arch35/test_geir_pad_v2.cpp:no issues。
    • ../../op_graph/pad_v2_proto.h 由 conversion/pad_v2/examples/arch35/ 解析为 conversion/pad_v2/op_graph/pad_v2_proto.h(该文件确实存在,README 116 行也以 op_graph/pad_v2_proto.h 为 IR 接口引用),旧路径 ../op_graph/ 指向不存在的 examples/op_graph/,此改动是构建路径修正。
    • static std::vector<uint8_t*>& GetSampleBuffers(); 与文件内 222 行的 static 定义保持一致,消除了「非 static 声明后跟 static 定义」的编译错误,属正确修正。
    • 移除 #include "experiment_ops.h":示例使用到的 op::Data/op::PadV2/aclgrphDumpGraph 分别由 array_ops.h/nn_other.h/ge_ir_build.h 与本地 proto 头覆盖,且该示例在本仓无构建目标(无 CMake 引用);受审查范围限制无法读取 GE 外部头核对 op::PadV2 的唯一声明位置,因此不作为问题上报。

发现清单

  • P2:aclnn spec 用裸 except Exception 吞掉 golden 异常并返回全零参考(2d/3d 两处同源)。
  • P2:circular_pad_grad_golden 对 torch 张量直接 .numpy(),bfloat16 会抛 TypeError,与文件内 _torch_to_numpy_tensor 的 bf16 处理分叉。
  • P3(可选强化):_aclnn_zero_fallback 未校验 gradInput 类型,且在 except 分支内二次崩溃会掩盖原始异常;返回类型与正常路径不一致。

整体风险判断

改动方向(补 torch 输入支持、修正构建 include/链接属性)总体合理,C++ 部分风险低;主要风险集中在 golden 侧的异常兜底策略——它把「golden 崩溃」统一转成「全零参考」,会在合法性用例上产生假通过或误导性失败,建议在合入前收窄降级条件并保留异常信息。

类型 数量
🔴 阻塞 0
🟡 建议 2

💬 仅评论


🧩 本次 Review 已使用自定义 Skill:

likedislike
Incorrect?
CANN-robotCANN-robotCollaborators
10 days ago Added label: stat/needs-squash
CANN-robotCANN-robotCollaborators
10 days ago Added label: cann-cla/yes
CANN-robot
CANN-robotCollaborators
10 days ago Comments:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here.
You can get sig-info at here.
You can self-configure the PR merge rules for this repository. For more details, please refer to Here.
For more, you also can visit HICANN.


PR Approval Progress

✅ Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
repo-cann/ops-math ✅ zhanw_coding, 汤平川 (2/2) ✅ zhanw_coding, 汤平川 (2/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

tan_xin, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
CANN-robotCANN-robotCollaborators
10 days ago Set FelixTang7,yue-ma,zhou-qilong,wangrui_,rxtfeng,loov1,zhangzijie,jia0liang,zl_hw,songkai111,chenxingyu18,pingchuantang,llimwang,gubaocheng,andong_hw,xuejinghui,onanfield,zhanw_coding,clinglai0517 as approver
5 event messages are collapsed here。 See more
CANN-robotCANN-robotCollaborators
10 days ago Removed label: stat/needs-squash
CANN-robot
CANN-robotCollaborators
10 days ago Comments:

Notification

This pull request has been changed(code update) or closed, so removes the following label(s): stat/needs-squash.

likedislike
CANN-robotCANN-robotCollaborators
10 days ago Added label: cann-cla/yes
CANN-robotCANN-robotCollaborators
10 days ago Removed approver FelixTang7
CANN-robotCANN-robotCollaborators
10 days ago Removed approver FelixTang7
Ttan_xinCollaborators
10 days ago Change title to "修复pad_v2的geir", originally titled "master-tile".
Ttan_xinCollaborators
10 days ago Change title to "fix: 修复 pad_v2 GEIR 示例 include 路径与 GetSampleBuffers 声明冲突", originally titled "修复pad_v2的geir".
Ttan_xinCollaborators
10 days ago Modify description of pull request
tan_xinCollaborators
10 days ago Comments:

compile

likedislike
Ttan_xinCollaborators
10 days ago Pre merge succeeded (commit_id: 842956e1a3291a0b6600230e26d6b6de3ec9eeba)
CANN-robot
CANN-robotCollaborators
10 days ago Comments:
🚀 CI 流水线已启动
📋 执行详情: 点击查看流水线
likedislike
CANN-robotCANN-robotCollaborators
10 days ago Added label: ci-pipeline-running
CANN-robotCANN-robotCollaborators
10 days ago Removed label: ci-pipeline-running
CANN-robotCANN-robotCollaborators
10 days ago Added label: ci-pipeline-passed
chenyifengCollaborators
10 days ago Comments:

您好,PR已满足合入指标,请尽快联系Committer进行合入。如暂时不需要合入,请在PR标题前加[WIP]

likedislike
zhanw_coding
zhanw_codingCollaborators
10 days ago Comments:

/lgtm
/approve

likedislike
CANN-robotCANN-robotCollaborators
10 days ago Added label: approved
TangPC
TangPCCollaborators
10 days ago Comments:

/lgtm
/approve

likedislike
CANN-robotCANN-robotCollaborators
10 days ago Added label: lgtm
CANN-robotCANN-robotCollaborators
10 days ago Closed associated issue
CANN-robotCANN-robotCollaborators
10 days ago Merged pull request