| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs: 重构 onnx_plugin 样例文档并新增 parse_operator 对照样例 Co-authored-by: gentle-knight<522025150054@smail.nju.edu.cn> # message auto-generated for no-merge-commit merge: !4906 merge docs/onnx-plugin-readme into develop docs: 重构 onnx_plugin 样例文档并新增 parse_operator 对照样例 Created-by: gentle-knight Commit-by: gentle-knight Merged-by: cann-robot Description: # Pull Request ## 描述 重构 examples/onnx_plugin 样例文档并新增 parse_operator 对照样例,解决测试反馈的文档可读性与回调场景理解问题: - README/README_en 对齐仓库样例文档统一结构(功能描述 / 目录结构 / 使用方法 / 插件与回调用法); - "准备cann包"改为引用统一安装文档《环境准备》(docs/zh/quick_install.md),不再在样例内重复安装步骤; - "准备Python依赖"以表格明确依赖清单与版本要求(PyTorch 2.7~2.8,两个版本均已实测;onnx 包非必需;acl 由 CANN 自带),并附已验证版本表; - "分步运行"补充 mkdir -p output 前置步骤(原命令在全新环境必现 FileNotFoundError:output/ 目录不会自动创建); - "结果校验"仅展示最终输出(输入与两路输出张量、成功标志),不罗列编译中间过程; - 修正 README/README_en 中指向 docs/ 的相对链接层级错误(../../../ → ../../:onnx_plugin 位于两层深目录,原三级相对路径逃逸出仓库根,导致 CI md_check 的 link-validity 拦截告警"本地路径链接无法访问"); - "验证算子结果":GE 图 dump 命令 + 指引查看 graph_dump/pid_*/ge_onnx_*.pbtxt(ONNX 格式图文件),ThresholdedRelu 分解结果(Threshold + Mul,含 /ThresholdedRelu 原始类型标记)与 MyElu 映射结果(Elu)分开说明;编译日志查看方式为 atc 命令增加 --log=debug 参数并设置 ASCEND_SLOG_PRINT_TO_STDOUT=1(对齐 atc_tools/CLI_options/--log.md 官方说明); - "插件与回调用法"章节以用例为单位说明 parse_node / parse_operator / decompose 三种回调的区别与选择方法,不搬运代码实现,实现说明见插件文件内的中文注释; - 新增 plugin/my_elu_plugin.py 对照样例:MyElu 一对一映射到已有 Elu 算子(parse_operator,从 source 算子 attribute JSON 串解析 alpha 转写 target),与 ThresholdedRelu(parse_node + decompose 分解为 Threshold + Mul)形成对照,一次运行覆盖全部三种回调; - export_onnx.py 同一模型导出两个自定义算子、两路输出;run_model.py 打印输入与两路输出张量并分别校验;插件 decompose 增加内省式分解结果打印(打印内容来自构建出的图对象); - 中英双 README 同步修改(符合 CONTRIBUTING.md 对样例中英文 README 的要求)。 ## 变更类型 - [x] ✨ 新功能(样例执行过程输出增强、parse_operator 对照样例) - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 已在本机端到端实测(Ascend910_9362 / Atlas A3、CANN 9.2.0、Python 3.12、PyTorch 2.7.1 与 2.8.0 CPU 版双版本、NumPy 1.26.4):SOC_VERSION=Ascend910_9362 bash run.sh 全链路通过(导出 → 双插件解析(parse_operator 映射 Elu + decompose 展开 Threshold×Mul)→ atc 编译 → ACL 执行 → 双输出比对),文档中输出均为实测捕获; 2. 图 dump 独立校验:DUMP_GE_GRAPH=3 落盘后确认 ge_onnx_*.pbtxt 图文件包含 ge:Elu、ge:Threshold、ge:Mul 节点,Threshold 节点携带 /ThresholdedRelu 原始类型标记; 3. Elu 设备端输出与 NumPy 参考存在约 1e-4 量级差异(设备端 exp 实现精度),已实测确认,校验容差设为 1e-3;ThresholdedRelu 输出语义精确,容差 1e-5; 4. 已用 CI 同款 docs-ci 工具(staticcheck md_check)本地复现并验证:修复后 link-validity / resource-existence / tag-closed / compliance / markdownlint 全部通过(仅存 Thresholded/Relu 算子名的非拦截 codespell 提示);远端流水线已通过(ci-pipeline-passed); 5. ruff check / ruff format 对改动 .py 文件无新增告警(仅存与既有文件同类的头部风格项,上游 CI 本就通过);markdown 格式检查(行尾空白 / EOF 换行 / 冲突标记)全部通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本 PR 为单个 commit(已按贡献指南 squash),基于上游 develop 分支,不包含任何个人本地开发内容;已按行内评审意见完成多轮修改。 See merge request: cann/ge!4906 | 2 天前 | |
docs: 重构 onnx_plugin 样例文档并新增 parse_operator 对照样例 Co-authored-by: gentle-knight<522025150054@smail.nju.edu.cn> # message auto-generated for no-merge-commit merge: !4906 merge docs/onnx-plugin-readme into develop docs: 重构 onnx_plugin 样例文档并新增 parse_operator 对照样例 Created-by: gentle-knight Commit-by: gentle-knight Merged-by: cann-robot Description: # Pull Request ## 描述 重构 examples/onnx_plugin 样例文档并新增 parse_operator 对照样例,解决测试反馈的文档可读性与回调场景理解问题: - README/README_en 对齐仓库样例文档统一结构(功能描述 / 目录结构 / 使用方法 / 插件与回调用法); - "准备cann包"改为引用统一安装文档《环境准备》(docs/zh/quick_install.md),不再在样例内重复安装步骤; - "准备Python依赖"以表格明确依赖清单与版本要求(PyTorch 2.7~2.8,两个版本均已实测;onnx 包非必需;acl 由 CANN 自带),并附已验证版本表; - "分步运行"补充 mkdir -p output 前置步骤(原命令在全新环境必现 FileNotFoundError:output/ 目录不会自动创建); - "结果校验"仅展示最终输出(输入与两路输出张量、成功标志),不罗列编译中间过程; - 修正 README/README_en 中指向 docs/ 的相对链接层级错误(../../../ → ../../:onnx_plugin 位于两层深目录,原三级相对路径逃逸出仓库根,导致 CI md_check 的 link-validity 拦截告警"本地路径链接无法访问"); - "验证算子结果":GE 图 dump 命令 + 指引查看 graph_dump/pid_*/ge_onnx_*.pbtxt(ONNX 格式图文件),ThresholdedRelu 分解结果(Threshold + Mul,含 /ThresholdedRelu 原始类型标记)与 MyElu 映射结果(Elu)分开说明;编译日志查看方式为 atc 命令增加 --log=debug 参数并设置 ASCEND_SLOG_PRINT_TO_STDOUT=1(对齐 atc_tools/CLI_options/--log.md 官方说明); - "插件与回调用法"章节以用例为单位说明 parse_node / parse_operator / decompose 三种回调的区别与选择方法,不搬运代码实现,实现说明见插件文件内的中文注释; - 新增 plugin/my_elu_plugin.py 对照样例:MyElu 一对一映射到已有 Elu 算子(parse_operator,从 source 算子 attribute JSON 串解析 alpha 转写 target),与 ThresholdedRelu(parse_node + decompose 分解为 Threshold + Mul)形成对照,一次运行覆盖全部三种回调; - export_onnx.py 同一模型导出两个自定义算子、两路输出;run_model.py 打印输入与两路输出张量并分别校验;插件 decompose 增加内省式分解结果打印(打印内容来自构建出的图对象); - 中英双 README 同步修改(符合 CONTRIBUTING.md 对样例中英文 README 的要求)。 ## 变更类型 - [x] ✨ 新功能(样例执行过程输出增强、parse_operator 对照样例) - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 已在本机端到端实测(Ascend910_9362 / Atlas A3、CANN 9.2.0、Python 3.12、PyTorch 2.7.1 与 2.8.0 CPU 版双版本、NumPy 1.26.4):SOC_VERSION=Ascend910_9362 bash run.sh 全链路通过(导出 → 双插件解析(parse_operator 映射 Elu + decompose 展开 Threshold×Mul)→ atc 编译 → ACL 执行 → 双输出比对),文档中输出均为实测捕获; 2. 图 dump 独立校验:DUMP_GE_GRAPH=3 落盘后确认 ge_onnx_*.pbtxt 图文件包含 ge:Elu、ge:Threshold、ge:Mul 节点,Threshold 节点携带 /ThresholdedRelu 原始类型标记; 3. Elu 设备端输出与 NumPy 参考存在约 1e-4 量级差异(设备端 exp 实现精度),已实测确认,校验容差设为 1e-3;ThresholdedRelu 输出语义精确,容差 1e-5; 4. 已用 CI 同款 docs-ci 工具(staticcheck md_check)本地复现并验证:修复后 link-validity / resource-existence / tag-closed / compliance / markdownlint 全部通过(仅存 Thresholded/Relu 算子名的非拦截 codespell 提示);远端流水线已通过(ci-pipeline-passed); 5. ruff check / ruff format 对改动 .py 文件无新增告警(仅存与既有文件同类的头部风格项,上游 CI 本就通过);markdown 格式检查(行尾空白 / EOF 换行 / 冲突标记)全部通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本 PR 为单个 commit(已按贡献指南 squash),基于上游 develop 分支,不包含任何个人本地开发内容;已按行内评审意见完成多轮修改。 See merge request: cann/ge!4906 | 2 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 天前 | ||
| 2 天前 |