| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: SubgraphRewriter带ctx重载自动上报ReportMatch修复match/effect统计不对齐 Co-authored-by: DazhouCao<caodazhou@huawei.com> # message auto-generated for no-merge-commit merge: !5266 merge fix/fusion-sample-report-match into develop fix: SubgraphRewriter带ctx重载自动上报ReportMatch修复match/effect统计不对齐 Created-by: Dazhou_Cao Commit-by: DazhouCao;qq_45842700 Merged-by: cann-robot Description: # Pull Request ## 描述 复现 examples/fusion_pass/graph_base_pass/2_move_relu_before_concat_pass 样例时,fusion_result.json 中 match_times=0 而 effect_times=1,不符合 match_time(结构匹配全集)≥ effect_time(融合生效子集)的规律。进一步排查确认:**所有走带 ctx 的 SubgraphRewriter::Replace 路径的代码均存在 match_time 偏小问题**(包括 python SubgraphRewriter.replace(b, g, context=))。 **根因分析**: 1. 带 ctx 的 SubgraphRewriter::Replace 内部会自动调用 ReportFuse 累加 effect_time,但 match_time 的累加完全依赖调用方显式调用 GraphFuseInspectorUtils::ReportMatch(match_time 偏小的直接原因); 2. python binding 未暴露 report_match 接口,python 侧即使想手动上报也无接口可用; 3. PatternFusionPass/DecomposePass 走不带 ctx 的 2 参重载且统计自管理,不受影响。 **修复内容**: 1. **框架自动上报**:带 ctx 的 SubgraphRewriter::Replace 重载内部在 CanFuse 之前自动调用 ReportMatch(无论融合条件是否通过均计入 match_time,与 ReportMatch 接口语义对齐),彻底保证 match_time >= effect_time;上报失败仅告警不阻断替换流程; 2. **python 能力补齐**:binding 补齐 report_match 绑定及导出链路(_native.py/fuse_inspector.py/__init__.py/_ge_pass_native.pyi),供手动改图(不走 SubgraphRewriter)场景使用; 3. **样例对齐**:样例 2 回退手动上报(避免与框架自动上报双计),改为注释说明带 ctx 重载的自动上报行为; 4. **文档同步**:ReportMatch.md 约束说明、SubgraphRewriter/Replace.md 参数说明、compiler.md 机制描述均已更新,明确"带 ctx 重载自动上报,调用方不应重复手动调用"。 ## 变更类型 - [x] 🐛 Bug 修复 ## 关联的Issue 无 ## 如何测试 1. 单元测试:UtestMatchReplacer.ReplaceWithCtxReportsMatchAndEffectTimes(替换成功后 match=1/effect=1)、UtestMatchReplacer.ReplaceWithCtxReportsMatchWhenCanFuseFailed(CanFuse 失败时 match=1/effect=0) 2. 样例验证:编译安装样例 so → python es_gen_air.py 导出 air → atc --model=./graph.air --framework=1 --soc_version=xxx(或 torch_forward.py 在线推理)→ 查看 fusion_result.json,确认样例 pass 的 match_times=1、effect_times=1 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 本机验证情况:graph_rewriter.cc、graph_fuse_inspector_binding.cc、graph_rewriter_unittest.cc 均通过单文件编译验证(-Wall -Wextra -Werror);python 文件通过 py_compile 语法验证 - 本机无 NPU 环境,上板功能验证待 CI 或有环境时补充(预期 fusion_result.json 中 match_times=1, effect_times=1) See merge request: cann/ge!5266 | 14 天前 | |
docs: 修正dflow设计文档评审问题:gRPC连线方向、同device输入连边规划与N-Mapping介绍 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !5472 merge docs/dflow-deploy-review-fix into develop docs: 修正dflow设计文档评审问题:gRPC连线方向、同device输入连边规划与N-Mapping介绍 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: # Pull Request ## 描述 修正 dflow 设计文档评审发现的三个问题,中英文文档同步修改(docs/zh/design/modules/dflow/dflow.md 与 docs/en/design/modules/dflow/dflow.md): 1. **gRPC 连线箭头方向**(4.3.2 进程层级体系图):deployer_daemon 作为 gRPC 服务端监听,请求由头节点 RemoteDeployer(gRPC 客户端)发起,原图箭头方向反了,改为 RD → DAEMON,与 4.3.3 通信链路表格一致。 2. **同 device 输入复用的连边规划**(4.3.7 部署连边物理图):A、B 的输入 0 来自同一份 FlowData0 且同在 Device 0 时,头节点不会拷贝两次,而是只创建一个源队列 Q1,应用入队一次,由 Device 0 的 flowGW 引用分发(零拷贝)到 A、B 各自的输入队列;同步按 device 粒度改写"根模型输入的一对多"与"应用侧按 device 直发"两处描述,与代码行为(deploy_planner.cc 的 GetOrCreateMappingEntry 按 device 共享映射队列)一致。 3. **N-Mapping 节点首次出现缺介绍**(4.3.7 路由模型与 Group):补充行内定义(输入输出条数非一一映射的节点,如 batch 聚合、数据拆分)及 4.4 节锚点链接;4.4 节同步补充编译期 batch 属性转换与流式输入 UDF 的自动标记说明。 ## 变更类型 请选择本次引入的变更类型: - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 文档变更,无需运行测试;已通过本地 pre-commit 检查(codespell、end-of-file-fixer、trailing-whitespace 等)。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/ge!5472 | 3 天前 | |
docs(es-graph): 对齐历史原型库文档的 gen_esb 模式参数 Co-authored-by: dududu121<1595630181@qq.com> # message auto-generated for no-merge-commit merge: !5473 merge sync/pr-5196-develop into develop docs(es-graph): 对齐历史原型库文档的 gen_esb 模式参数 Created-by: ClarkXie Commit-by: dududu121 Merged-by: cann-robot Description: ## 描述 修正中英文历史原型库设计/RFC 文档中的 gen_esb 模式参数:将不受当前 CLI 支持的独立 --extract-history 写法统一为 --es_mode=extract_history,避免参数解析失败。改动覆盖六份文档中的 14 处引用;两处完整示例保留原有输出目录和版本参数,仅更正模式选项。不修改程序实现或运行时行为。 ## 关联的Issue 关联Issue #588 ## 测试 - gen_esb --help:本机 CANN 9.1.0 输出历史生成模式 --es_mode=extract_history。 - 旧命令参数探针:实际输出 ERROR: unknown command line flag 'extract_history'。合法模式参数、输出目录和版本参数后追加故意无效的哨兵参数,实际只报告该哨兵未知;据此确认前述参数通过解析,且未启动数据生成。 - 静态核对 tests/ge/ut/ge/graph/eager_style_graph_builder/es_generator/main_unittest.cc 中现有的合法模式解析用例;本 PR 不改生产代码或测试代码。 - 六份文档中四段 Bash 示例将 <out>/<ver> 替换为安全占位值后执行 bash -n,均退出 0;扫描确认旧独立参数已全部消失且正确参数共 14 处。 - 对六个受影响文档运行 pre-commit run --files docs/en/design/modules/es_graph/design/es_cxx_compatibility_design.md docs/en/design/modules/es_graph/design/history_op_registry_protocol.md docs/en/design/modules/es_graph/rfc/rfc-001-feature-cxx_compatibility.md docs/zh/design/modules/es_graph/design/es_cxx_compatibility_design.md docs/zh/design/modules/es_graph/design/history_op_registry_protocol.md docs/zh/design/modules/es_graph/rfc/rfc-001-feature-cxx_compatibility.md:全部适用钩子通过,包括空白、文件结尾、codespell 和 OAT 检查。 - git diff --check:通过。 以上为命令行帮助及文档静态核对;未运行历史数据生成,不需要 NPU。 ## 文档更新 - docs/en/design/modules/es_graph/design/history_op_registry_protocol.md - docs/en/design/modules/es_graph/design/es_cxx_compatibility_design.md - docs/en/design/modules/es_graph/rfc/rfc-001-feature-cxx_compatibility.md - docs/zh/design/modules/es_graph/design/history_op_registry_protocol.md - docs/zh/design/modules/es_graph/design/es_cxx_compatibility_design.md - docs/zh/design/modules/es_graph/rfc/rfc-001-feature-cxx_compatibility.md ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ### 当前PR是否有AI参与: [] 否 [x] 是 __1. Agent平台信息: Codex CLI 0.153.4 __2. 模型信息: gpt-5.6-luna __3. Prompt摘要: 对照 gen_esb 源码、实际帮助输出和中英文历史原型库文档,复核过期模式参数并仅修正文档引用。 ### 希望检视人员了解: 1. 人工参与说明:源码比对、命令复现和中英文位置核查由代理执行;人工尚未独立修改,账号贡献者将负责提交后的维护者沟通与评审反馈。 See merge request: cann/ge!5473 | 3 天前 | |
fix(python): reject TensorDesc dimensions outside the native range (#638) Co-authored-by: gcw_Z57idahf<liaopinyi714@outlook.com> # message auto-generated for no-merge-commit merge: !5299 merge codex/fix-ge-tensor-desc-dimension-range-batch03-final into develop fix(python): reject TensorDesc dimensions outside the native range (#638) Created-by: gcw_Z57idahf Commit-by: gcw_Z57idahf Merged-by: cann-robot Description: ## AI 参与情况 - [x] 是:Codex 辅助核查、修复与回归,验证边界如实列出。 ## 描述 / 合入原因 ### TensorDesc 超出 int64 范围的维度被 ctypes 静默截断 触发与原始结果:TensorDesc([2**64+7]) 传给实际 C API 边界的维度为 7,Shape 仍保留原值;构造、set_shape 与 set_origin_shape 都经过同一无范围校验。 根因:_normalize_dims 只检查 Python int 类型,ctypes.c_int64 接受大整数并按 64 位截断。 修改:共享维度归一化加入有符号 64 位范围校验,覆盖 Shape/TensorDesc 的构造和两个 shape setter。 修复后:原生 int64 无法表示的维度在构造 ctypes 数组前抛 ValueError,设备入口不调用;int64 边界、0 和现有动态维度 -1/-2 保留。 影响与等级建议:描述符携带与调用方不同的实际维度,形状计算和原生推导可能错误。仅确认边界数值截断,不声称已复现设备越界。 建议 L2,最终由维护者确认。 回归:11 项:构造、set_shape、set_origin_shape 三入口各覆盖过大/过小/回绕为合法正数的维度,Shape 入口拒绝及合法 signed-int64/动态标记控制。核对实际 ctypes 缓冲区。 tests/ge/ut/ge/graph/pyge_tests/tensor_desc_dimension_range_cpu_test.py,原版 10 failed, 1 passed in 0.13s;修复后 11 passed in 0.07s。 ## 关联 Issue Fixes #638:https://gitcode.com/cann/ge/issues/638 同一生产文件的 1 项修复集中在本 PR,各 Issue 保留独立触发与根因,不按 PR 链接出现次数累计问题。 ## 修改范围与目标 目标 cann/ge:develop,基线 ba12e592e8f84bc59709464bd3ad6ca010498d8b,提交 1ae402ba839d2a63b186bbe5cbf3795e311a743d。基于发布前刷新的上游建立,只有一个任务提交。 生产实现 api/python/ge/ge/graph/tensor_desc.py,新增对应回归;GE 配套中英文设计说明。Python 文件通过项目配置下 Ruff 0.14.14 check/format;必要的原文件等价整理和折行不另计问题。 ## 如何测试 本地 Windows / Python 3.12.14;测试执行实际生产 Python 实现。实际 enum 类、ctypes 缓冲区和 Python getter/setter/Shape/TensorDesc;只在 graph C API 边界使用局部替身。未验证真实 ABI 或设备,未分配巨大张量。 bash python -m pytest -q -p no:cacheprovider tests/ge/ut/ge/graph/pyge_tests/tensor_desc_dimension_range_cpu_test.py 最终分组:**11 passed in 0.07s**。git diff --check 通过。原实现与修复使用相同最终回归对照。 本地组合验证:26 passed in 0.18s;组合对象:!5294: DataType write dispatch。未验证真实 CANN/NPU、全量 C++ UT/ST。远端完整 CI 以当前 PR 提交对应 run 的实际终态为准,本地通过不代表远端门禁通过。 ## 重复核查 核查全部作者、全部状态 Issue/PR 的标题正文,并读取涉及四个仓库的 443 个开放 PR 实际文件差异。 ## 类型与核对清单 - [x] Bug 修复,标题使用 fix,关联独立 Issue - [x] 写明实际/预期行为、根因、影响及等级依据 - [x] 执行上述本地回归,列明替身与未验证范围 - [x] 核查当前目标分支、单任务提交与重复问题 - [ ] 当前提交远端完整 CI 已通过(创建后触发,结果以实际门禁为准) ## 希望检视人员了解 没有降低门禁或增加产品运行依赖。烦请帮助检查修复范围、兼容性及测试组织,后续按具体意见完善。感谢! See merge request: cann/ge!5299 | 1 天前 | |
【PR】: 新增接口对应的头文件和库文件 Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !4187 merge develop into develop 【PR】: 新增接口对应的头文件和库文件 Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: # Pull Request ## 描述 1 合入GE图引擎接口对应的头文件和库文件 2 修改en目录下英文内容不全的问题 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 不涉及 ## 如何测试 根据最新资料进行测试 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4187 | 2 个月前 | |
feat(rt2): remove launch critical free edge Co-authored-by: Mexyy<xiaguozheng1@hisilicon.com> # message auto-generated for no-merge-commit merge: !3914 merge f_rt2_remove_launch_free_squashed into develop feat(rt2): remove launch critical free edge Created-by: Mexyy Commit-by: Mexyy Merged-by: cann-robot Description: # Pull Request ## 描述 本次 PR 涉及以下 RT2 功能点: - launch kernel 标记与调度分类。 - remove launch critical free edge。 - copy flow launch 拆分与设备 copy size 执行期计算。 - launch submit 水位线等待与 mixed launch memory barrier。 - launch copy scheduling 对齐及相关 RT2 UT/ST 覆盖。 - RT2 运行时设计文档和约束说明更新。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. git diff --check upstream/develop..HEAD 2. git push -u origin f_rt2_remove_launch_free_squashed,远端 Git hooks 返回 PASSED。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无。 See merge request: cann/ge!3914 | 2 个月前 |