| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: 接入ONNX Plugin Python bridge到真实ParseParamsFn Co-authored-by: gentle-knight<522025150054@smail.nju.edu.cn> # message auto-generated for no-merge-commit merge: !4455 merge feat/onnx-plugin-python-pr2-bridge into develop feat: 接入ONNX Plugin Python bridge到真实ParseParamsFn Created-by: gentle-knight Commit-by: gentle-knight Merged-by: cann-robot Description: ## 描述 在PR1(#4421 native bindings)基础上,以独立bridge SO完成Python descriptor/registry到parser真实ParseParamsFn的闭环。 PR2新增内容: - 新增 ge_python_onnx_plugin_bridge独立SO,复用现有loader/registry/OpRegistrationTbe/OpRegistry,不新增第二套注册表或扫描器 - PrepareBeforeParse在C++插件初始化成功后、ASCEND_CUSTOM_OPP_PATH非空时按需dlopen bridge - bridge以py::cast(NodeProto*, reference)借用parser已有对象构造native OnnxNode,不取得所有权 - ge::Operator地址作为ctypes借用句柄传入Python callback,callback结束后失效 - callback返回None映射SUCCESS,返回非None映射PARAM_INVALID,Python异常映射FAILED - OpRegistry使用已有完整(target, origin_type)键检查保持C++优先,Python不覆盖已有C++注册 - 删除Python bridge UT中的SimpleNamespace测试接缝,改为C++ parser UT直接构造真实ge::onnx::NodeProto - 新增成功/异常/非None返回/C++优先四类场景测试 不包含ParseParamsByOperatorFn、ParseOpToGraphFn、ParseSubgraph、ES子图构图、Tensor/TensorDesc/DataType、通用PluginContext。 ## 变更类型 - [x] ✨ 新功能 ## 关联的Issue 依赖PR1 #4421(native bindings),当前为stacked PR。 ## 如何测试 1. 编译ge_python_onnx_plugin_bridge和fmk_onnx_parser目标 2. 编译ut_parser并运行OnnxPythonPluginBridge测试用例 3. 设置ASCEND_CUSTOM_OPP_PATH指向测试Python插件,验证真实ONNX parser闭环 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 工作代码约221行,测试代码约168行,未超出PR2预算 - bridge为独立SO,不进入graph_metadef,不向Python暴露protobuf指针 - 未修改生产native OnnxNode模块,未增加测试工厂 - 本地编译通过:ge_python_onnx_plugin_bridge、fmk_onnx_parser、ut_parser - pre-commit全部通过 See merge request: cann/ge!4455 | 1 个月前 | |
fix: ONNX插件桥接按入口扫描触发并透出加载失败详情 Co-authored-by: huangfuqixun<3045324663@qq.com> # message auto-generated for no-merge-commit merge: !5177 merge fix/onnx-plugin-bridge-load-fail into develop fix: ONNX插件桥接按入口扫描触发并透出加载失败详情 Created-by: gentle-knight Commit-by: huangfuqixun Merged-by: cann-robot Description: # Pull Request ## 描述 修复 DT 问题单 1952: ASCEND_CUSTOM_OPP_PATH 非空即触发 ONNX Python 插件桥接加载,而该变量同时是 C++ 自定义算子的标准交付变量——纯 C++ 算子环境(目录无 python 插件入口、环境无桥接产物)下桥接加载必失败,且失败直接阻断该环境下所有 ONNX 模型解析,控制台仅报 E19999: LoadOnnxPythonPluginBridge failed. 泛化信息,具体原因仅进 plog。 **根因**:onnx_plugin 复用该环境变量作为触发判据,却缺失姊妹特性 custom_op 已有的入口存在性扫描(CheckNeedLoadPythonCustomOps),仅凭变量非空即触发桥接加载。 **修改内容**: 1. NeedLoad() 对齐 custom_op 模式:仅当环境变量各路径段存在可加载的 python 插件入口(.py 文件,或目录下单层非下划线开头的 .py 文件 / 含 __init__.py 的子目录)时才加载桥接;纯 C++ 自定义算子目录不再误触发,解析不再被环境阻断。新增可测试接口 HasPythonOnnxPluginEntryInEnv。 2. Python 运行时准备失败与桥接产物不匹配两类失败的根因详情(runtime key、可用产物清单、loader 路径、PYTHONPATH、修复指引)经 REPORT_INNER_ERR_MSG 透出到 ATC 控制台,替换原先仅进 plog 的泛化信息。 3. UT:入口扫描 11 种路径形态单测、纯 C++ 目录下 ModelParseToGraph 解析不阻断、产物缺失时失败详情上报断言;LoadThroughCommonLoader 改用真实临时目录适配新触发条件。 4. ST:test_onnx_parser 两处虚构路径改为真实插件入口目录(共享 helper 新增 ScopedPluginEntryDir)。 5. 文档:onnx_plugin_design.md 中英同步 3.2 节触发条件与第 2 节失败提示说明。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue DT 问题单 1952(pyPTO 模块功能测试:【自定义算子编译 OM 时报 LoadOnnxPythonPluginBridge failed】,Pegasus Auto V200R001C20B001,必现)。 ## 如何测试 1. 设置 ASCEND_CUSTOM_OPP_PATH 指向纯 C++ 自定义算子目录(无任何 .py 文件),ATC 编译任意 ONNX 模型 → 修复前报 E19999: LoadOnnxPythonPluginBridge failed.,修复后正常产出 OM 模型; 2. 设置变量指向含 .py 插件入口的目录但环境无匹配桥接产物(如 python 版本与产物 tag 不一致)→ 仍失败,但控制台报错包含 runtime key、可用产物清单与修复指引; 3. 单元/系统测试:ut_onnx_plugin_bridge_utest、ut_parser、st_parser。 测试结果:ut_onnx_plugin_bridge_utest 10/10、ut_parser 656/656、st_parser 65/65 全部通过;pre-commit 全部通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 行为变化说明:环境变量路径段无 python 插件入口时,桥接加载从"失败阻断编译"变为"跳过并打 INFO 日志",这是本次修复的目的(对齐 custom_op 特性既有行为);真插件用户环境不满足时仍失败,但报错可定位。 - 本分支基于 upstream/develop 最新(460147bb6)创建。 See merge request: cann/ge!5177 | 13 天前 | |
fix: preserve empty dimensions in TensorFlow Mean output shapes Co-authored-by: KaranocaVe<karanocave@qq.com> # message auto-generated for no-merge-commit merge: !5216 merge fix/tensorflow-mean-empty-shape-develop into develop fix: preserve empty dimensions in TensorFlow Mean output shapes Created-by: KaranocaVe Commit-by: KaranocaVe Merged-by: cann-robot Description: # fix: preserve empty dimensions in TensorFlow Mean output shapes ## 描述 TensorFlowUtil::TransTensorDescriptor collapses a Mean output shape such as [0, 3] to [0]. This removes the Mean zero-dimension rewrite while keeping the existing FusedBatchNormGrad handling unchanged. ## 变更类型 - [x] Bug 修复 ## 关联的 Issue ## 如何测试 UtestTensorflowParser.tensorflow_MeanPreservesEmptyOutputShape_test checks [0, 3] and the [2, 3] control; both pass with the fix. The ut_parser target builds successfully, and CI against develop has passed. ## 核对清单 - [x] 代码遵循项目风格 - [x] 已完成自测 - [x] 已更新相关设计文档 - [x] 标题使用 fix: 类型标签 - [x] 已阅读并遵循 CONTRIBUTING.md 关联 Issue: https://gitcode.com/cann/ge/issues/594 See merge request: cann/ge!5216 | 10 天前 | |
fix: precommit整改 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3726 merge dev-precommit into develop fix: precommit整改 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 precommit整改 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.NA ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3726 | 3 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 13 天前 | ||
| 10 天前 | ||
| 3 个月前 |