| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: fix clean code warnings Co-authored-by: likun104<likun104@h-partners.com> # message auto-generated for no-merge-commit merge: !3941 merge br_fix_clean_code_warnings_0709 into develop fix: fix clean code warnings Created-by: likun104 Commit-by: likun104 Merged-by: cann-robot Description: # Pull Request ## 描述 清理ge仓中的clean code告警 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 流水线跑通过 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3941 | 2 个月前 | |
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 | 4 个月前 | |
fix: 修正ATC内部错误提示 Co-authored-by: gentle-knight<522025150054@smail.nju.edu.cn> # message auto-generated for no-merge-commit merge: !4462 merge fix/atc-internal-error-message into develop fix: 修正ATC内部错误提示 Created-by: gentle-knight Commit-by: gentle-knight Merged-by: cann-robot Description: # Pull Request ## 描述 将 ATC 未知内部错误提示由 E19999: Inner Error! 修正为 E19999: Internal Error!。本 PR 仅修改这一处提示文本。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 执行 git diff --check upstream/develop...HEAD,检查通过。 2. 按本次提交要求,未触发 CI。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 本修改不涉及文档更新 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本 PR 相对最新 develop 仅包含一个提交和一行提示文本修改。 See merge request: cann/ge!4462 | 2 个月前 | |
feat: run Python custom op infer_meta at compile time and RT2 Co-authored-by: lfz<220252399@seu.edu.cn> # message auto-generated for no-merge-commit merge: !4414 merge develop3 into develop feat: run Python custom op infer_meta at compile time and RT2 Created-by: lfz2812 Commit-by: lfz Merged-by: cann-robot Description: # Pull Request ## 描述 在 Python 自定义算子原型注册、Bridge、Adapter 和 canonical IR 链路的基础上,接通 Python infer_meta 回调,使注册的 Python 原型可以参与编译期和 RT2 动态 Shape 推导。 本次主要包含: 1. 接通 Python infer_meta 回调: - 将 register_op 装饰函数作为 Python infer_meta 函数使用。 - 根据 canonical IR 组装 required、optional、dynamic 输入。 - 根据属性 IR 类型读取运行时属性。 - 将输入转换为 TensorDesc,将属性转换为 Python 参数。 - 支持 required、optional、dynamic 输入和 required、dynamic 输出。 - 支持多输出和动态输出实例数量校验。 - 校验 Python 返回值类型、结构和输出数量。 2. 新增 InferShape native context: - 提供输入 shape 和 data type 读取能力。 - 提供动态输入实例数量查询。 - 提供运行时属性读取能力。 - 提供动态输出实例数量查询。 - 提供输出 shape 写回能力。 - callback 结束后使 borrowed context 及其派生对象失效。 3. 接通编译期 Meta 推导: - 在 Graph Metadef 编译期识别 CustomOpInferMetaProvider。 - 每个算子节点只调用一次 Python infer_meta。 - 推导成功后统一更新输出 shape、data type 和 origin data type。 - 使用临时 OpDesc 承载推导结果,所有校验成功后再提交到原始 OpDesc。 - 任意推导、返回值或格式转换失败时,不提交部分输出结果。 4. 接通 RT2 动态 Shape 推导: - RT2 的 custom op shape kernel 优先复用 infer_meta 回调。 - Python callback 读取当前运行时输入元信息和属性。 - 运行期只更新输出 shape,已编译的 data type 不被覆盖。 - 保留普通 C++ custom op 的 ShapeInferOp fallback 路径。 5. 扩展 Bridge、Adapter 和注册结构: - 扩展 Bridge C ABI,传递 Python infer_meta callback。 - 扩展 Python custom op Adapter 的 infer_meta 能力。 - 支持 Python proto-only、Python proto + impl 和 infer-only 场景。 - 保持现有 Python execute、schema-bound execute 和 legacy execute(ctx) 行为。 - 保持 callback、holder、runtime registry 和卸载生命周期管理方式不变。 6. 补充测试和设计说明: - 补充 Python infer_meta 参数组装、属性读取、返回值校验和动态输出测试。 - 补充 InferShapeContext native binding 测试。 - 补充 C++ Adapter、Bridge callback 和 infer-only adapter 测试。 - 补充 Graph Metadef 编译期 shape/dtype/origin dtype 回写及失败原子性测试。 - 补充 RT2 Python infer_meta 动态 Shape ST。 - 同步更新中英文 Python 自定义算子设计文档。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 建议执行: bash cmake --build build_ut \ --target install_ge_py_for_tests \ ut_exe_graph \ ut_libge_multiparts_utest \ ut_fast_runtime2_test \ -j4 python3 -m pytest \ tests/ge/ut/ge/graph/pyge_tests/python_custom_op_infer_meta_test.py \ -q ctest --test-dir build_ut \ -R 'ut_exe_graph|ut_libge_multiparts_utest|ut_fast_runtime2_test' \ --output-on-failure cmake --build build_st --target graph_engine_test -j4 ctest --test-dir build_st \ -R graph_engine_test \ --output-on-failure git diff --check ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 本次仅接通 Python infer_meta 的编译期和 RT2 动态 Shape 链路。 - 本次不新增公开 API,不修改 register_op API 文档,不修改 user_guides。 - 不支持 data-dependent infer、InferShapeRange、format inference、symbolic inference 和 shape rule generation。 - 不修改 OM 格式、DavinciModel 接口或 RT2 到 V1 的边界数据。 - 不修改 build_fwk.sh 等公共构建脚本。 - 保持 Python native、Bridge 和 Adapter 按同一 ABI 版本整体构建和替换。 See merge request: cann/ge!4414 | 2 个月前 | |
【feat】:jit调度和切图解耦,开启自动融合便走jit执行,SliceSchedule只控制是否切图 Co-authored-by: chengyutao3<chengyutao3@huawei.com> # message auto-generated for no-merge-commit merge: !4476 merge develop into develop 【feat】:jit调度和切图解耦,开启自动融合便走jit执行,SliceSchedule只控制是否切图 Created-by: chengyutao3 Commit-by: chengyutao3 Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 将 JIT 执行器(自动融合 autofuse)与"切片调度(slice schedule)"进行解耦,形成两级开关,使 autofuse 开启但 slice schedule 未开启时,图以**整图模式**(不做切分)走 JIT 执行路径,而非回退到传统编译路径。 主要变更如下: 1. **新增 EnableAutoFuse() 开关**(compiler/api/aclgrph/option_utils.{h,cc}) - EnableAutoFuse():仅判断 kAutoFuseEnableOption == "true",表示是否走 JIT 执行器。 - 原 EnableSliceSchedule() 收窄为在 autofuse 基础上再叠加 kSliceScheduleOption == "true",表示是否真正切图。 2. **切图判断下沉到 ExecutionOrder**(api/session/jit_execution/exe_points/execution_order.{h,cc}、api/session/jit_execution/user_graph_ctrl.h) - UserGraph 新增 slice_supported 字段,由 EnableSliceSchedule() && IsGraphSupportSliceSchedule(graph, graph_options) 决定。 - AddNewSlice() 仅在 slice_supported 时执行符号推断与 BinaryPartitioner::Partition 切图;否则走整图模式(sliced_graph = graph,remaining_graph = nullptr)。 - SetOutputSizeIfNeed() 对 netout_node == nullptr 的情况改为直接返回 SUCCESS,避免整图模式下误报错误。 3. **UserGraphsManager 分发逻辑重构**(api/session/jit_execution/user_graphs_manager.{h,cc}) - 删除 ShouldUseSliceSchedule() 与 slice_schedule_unsupported_set_ 黑名单(含 mutex、clear/erase 相关清理代码)。 - 所有分发入口(AddGraph/BuildGraph/RunGraphAsync/CompileGraph/LoadGraph/RemoveGraph/GetCompiledFlag 等)的判断统一改为 EnableAutoFuse()。 4. **API 限制范围扩大**(api/session/client/ge_api.cc、api/session/client/ge_api_v2.cc) - SetGraphConstMemoryBase、UpdateGraphFeatureMemoryBase、SetGraphFixedFeatureMemoryBaseWithType、UpdateGraphRefreshableFeatureMemoryBase 四个接口的守卫由 EnableSliceSchedule() 改为 EnableAutoFuse(),报错文案由 "slice scheduler" 更新为 "JIT executor"。 5. **测试适配** - tests/ge/st/testcase/autofuse/autofuse_canfuse_test.cc:改用 CompileGraph(1) 触发真实编译,并通过新增的 GetJitCompiledGraph() 从 JIT 内部对象链(inner_session->user_graphs_manager_->GetUserGraphControl()→order_.GetFirstPoint()→models_.GetCache())获取编译后的图来断言融合结果(融合结果现在位于 GEP 编译副本上)。 - tests/framework/ge_runtime_stub/src/share_graph.cc:BuildStaticTwoReduceNodeGraph 中 data1 的 shape 由 {2,2,2} 调整为 {2,2,16}。 - 单测更新:同步错误日志断言;tests/ge/ut/ge/session_v2/ge_api_v2_unittest.cc 新增 EnableAutoFuse() 的 stub 重载与 AutoFuseStubGuard RAII 守卫。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> (无,本 PR 为 slice schedule 与 autofuse 解耦重构,未关联具体 Issue。如存在对应设计文档或 Issue,请补充链接。) ## 如何测试 描述测试此变更的步骤和前提条件: 1. 编译 ST 测试目标 autofuse_test,运行 tests/ge/st/testcase/autofuse/ 下的 TestCanfusePass 用例,确认基于 CompileGraph 与 GetJitCompiledGraph 的融合断言全部通过。 2. 编译并运行单测: - tests/ge/ut/ge/jit_execution/user_graph_manager_unittest.cc(set_memory_skip_by_slice_scheduler_enable 等用例,确认错误日志断言匹配新文案)。 - tests/ge/ut/ge/session_v2/ge_api_v2_unittest.cc(SliceSchedule_UnsupportedPaths 用例,确认 AutoFuseStubGuard 下命中新分支)。 3. 分别以 --enable_autofuse=true 且开启/关闭 --experimental_enable_jit_executor_v2(slice schedule)两套选项运行,验证: - slice 开启:仍按切图执行; - slice 关闭:以整图模式走 JIT 执行路径(不切图、不 fallback 传统路径),结果正确。 4. 回归确认四个内存基址接口(SetGraphConstMemoryBase 等)在 autofuse 开启时报 "JIT executor" 不支持提示。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - **行为变化**:原先"图不支持 slice schedule 则回退传统 graph_manager 路径"的保底机制已移除。现在只要 autofuse 开启,所有图均走 JIT 执行路径;不支持切图的图以整图模式执行,需要确认该路径已完备。 - **测试访问内部实现**:autofuse_canfuse_test.cc 中 GetJitCompiledGraph() 直接访问了 user_graphs_manager_、order_、models_ 等私有成员,依赖测试框架的内部访问机制(如 #define private public),属 ST 测试特例。 - EnableAutoFuse()/EnableSliceSchedule() 使用 static 局部变量缓存选项值,进程内仅读取一次,改动选项后需重启进程生效。 See merge request: cann/ge!4476 | 2 个月前 | |
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 | 4 个月前 |