| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【feat】: 补充split_pass UT Co-authored-by: wang-yan-male<wangyan220@huawei.com> # message auto-generated for no-merge-commit merge: !4399 merge develop into develop 【feat】: 补充split_pass UT Created-by: WangYanMale Commit-by: wang-yan-male Merged-by: cann-robot Description: # Pull Request ## 描述 请清晰准确地描述本次 Pull Request 的意图和变更内容。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4399 | 1 个月前 | |
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 个月前 | |
【feat】: Support PCIe Through Co-authored-by: kantao1<kantao1@huawei.com> # message auto-generated for no-merge-commit merge: !4394 merge pcie_through into develop 【feat】: Support PCIe Through Created-by: kantao1 Commit-by: kantao1 Merged-by: cann-robot Description: # Pull Request 接口评审时间:2026/08/06(周四) ## 描述 PCIE Through 是 Ascend NPU 硬件能力,允许 device 端算子通过 PCIE 总线直接访问 host 内存。当前单算子场景可用,但在模型编译场景下,编译期无法确定输入 tensor 的真实的地址范围,导致 tiling 阶段无法选择正确 kernel。 本特性通过编译期能力识别 + TilingContext 注入 + 执行期上下文扩展(动态 shape),解决此问题。 ### 核心设计 **编译阶段(lowering)**: - BuildTilingPcieThroughInput 从 DefaultOpImplSpaceRegistryV2 查询算子是否支持 PCIe Through,同时通过 IsPcieThroughEnabled 检查运行环境(option 开关、芯片能力、设备连接类型),两者均满足时将 pcie_through_flag 初始值设为 true - IsPcieThroughEnabled 结果通过 thread_local static 缓存,每个线程仅计算一次 - BuildTilingCommonInputs 在 input_addrs 可用时,通过 BuildRefTensor 将输入从 StorageShape 升级为包含设备地址的 Tensor,使运行时能通过 GetInputTensor(i)->GetAddr() 获取实际输入地址 **运行时(executor)**: - UpdatePcieThroughFlag 读取 pcie_through_flag,为 false 时直接跳过;为 true 时通过 IsAnyInputInPcieRange 遍历输入地址,检查是否落在 PCIe 地址范围内 - 若存在 PCIe 地址 → flag 保持 true;否则改为 false - GetPcieThroughFlag() 接口供 Tiling 函数和缓存键计算使用 **关键修复**: - fwk_data_idx 恢复后向计算(input_num - kFwkDataOffset),修复 symbol tiling 路径中前向计算导致的 702 行 ASSERT 失败 - GetPcieThroughFlag 改为后向 GetInputNum() - 1,与 pcie_through_flag 作为最后一个输入的布局一致 - TilingForAtomic 补充 BuildTilingPcieThroughInput 调用,保证输入布局一致性 - BuildGeneralTilingCacheKey 简化为直接读 GetPcieThroughFlag(),消除运行时查 space_registry 的版本不一致问题 ## 变更类型 - [x] ✨ 新功能 - [x] 🐛 Bug 修复 ## 关联的Issue <!-- 请在右侧关联对应 Issue --> ## 如何测试 1. 编译 UT:make -C cmake-build-gcov ut_fast_runtime2_test ut_exe_graph ut_register -j$(nproc) 2. 运行 PCIe Through 相关 UT:--gtest_filter='*PcieThrough*' 3. 运行 TilingContextBuilder UT:--gtest_filter='TilingContextBuilderUT.*' 4. 在 PCIe 直通环境上执行模型推理,验证 pcie_through 算子正确识别地址并优化搬运 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签 - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 ### 涉及文件 | 仓库 | 文件 | 改动说明 | |------|------|---------| | ge | runtime/v2/graph_builder/bg_tiling.cc | 新增 IsPcieThroughEnabled、BuildTilingPcieThroughInput;BuildTilingCommonInputs 支持 BuildRefTensor;TilingForAtomic 补充 pcie through 输入 | | ge | runtime/v2/kernel/common_kernel_impl/tiling.cc | 新增 IsAnyInputInPcieRange、UpdatePcieThroughFlag;fwk_data_idx 恢复后向计算;BuildGeneralTilingCacheKey 简化 | | ge | runtime/v2/kernel/common_kernel_impl/tiling.h | 新增 kPcieThroughFlag 枚举项 | | metadef | inc/external/exe_graph/runtime/tiling_context.h | GetPcieThroughFlag 改为后向计算 | | ge | tests/ | 新增 PCIe Through 相关 UT/ST 用例 | See merge request: cann/ge!4394 | 1 个月前 | |
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 个月前 | |
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 个月前 | |
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 个月前 | |
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 个月前 | |
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 个月前 | |
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 个月前 | |
【PR】refactor: 移除llm_datadist冗余的对外头文件 Co-authored-by: A-Liuhao<liuhao276@hisilicon.com> # message auto-generated for no-merge-commit merge: !4022 merge move_llm_datadist_external_inc into develop 【PR】refactor: 移除llm_datadist冗余的对外头文件 Created-by: A-Liuhao Commit-by: A-Liuhao Merged-by: cann-robot Description: # Pull Request ## 描述 ge仓对外的llm-datadist头文件和hixl仓重复了,安装打包时会相互覆盖,存在冗余动作。 本PR移除ge仓中对外的llm-datadist头文件,只保留hixl仓的对外头文件。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4022 | 2 个月前 | |
fix: 修复 LLT 测试插件和日志桩依赖 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !4735 merge fix/llt-cann-test-stubs-tests-only into develop fix: 修复 LLT 测试插件和日志桩依赖 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: ## 描述 修复新 CANN 环境下 GE LLT 测试对真实 toolkit 插件和日志生命周期的隐式依赖,所有修改仅位于 tests/ 目录。 ## 变更类型 - [x] Bug 修复 - [ ] 新功能 - [ ] 代码风格更新(格式化,局部变量) - [ ] 重构(既不修复错误也不增加功能的代码变动) - [ ] 构建过程或辅助工具的变动 - [ ] 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 在新 CANN 镜像中执行 ge_common UT,14/14 测试通过。 2. 验证 FE 日志桩不再触发退出阶段 heap-use-after-free。 3. 执行 pre-commit 检查,全部 hooks 通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 测试侧过滤 liboptf_plugin_hccl.so 的加载,并将日志级别映射改为无静态析构对象的 switch 实现。 See merge request: cann/ge!4735 | 1 个月前 | |
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 个月前 | |
[binary]feat: 新增算子符号化Shape推导与SymbolicValue计算 Co-authored-by: chengyutao3<chengyutao3@huawei.com> # message auto-generated for no-merge-commit merge: !4571 merge develop into develop [binary]feat: 新增算子符号化Shape推导与SymbolicValue计算 Created-by: chengyutao3 Commit-by: chengyutao3 Merged-by: cann-robot Description: # Pull Request ## 描述 完善 GE Symbolic Shape 相关算子的符号化 Shape 推导和 SymbolicValue 计算能力。 本次变更新增或完善了多类算子的符号化处理能力,包括动态 Shape 推导、Shape 广播、SymbolicValue 透传、逐元素计算、归约计算、索引更新和矩阵计算等场景。同时补充相关 UT/ST 用例,并更新 JIT 分区测试用例以适配当前符号化推导后的实际分区行为。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> 无 ## 如何测试 描述测试此变更的步骤和前提条件: ut st用例验证 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 1. 最近一次提交为 d655598bb,提交原始标题为 add ops symbolic shape infer and conpute。 2. 本次提交共涉及 31 个文件,新增约 3622 行,删除约 174 行。 3. 新增或完善的符号化 Shape 推导算子包括 ApplyRotaryPosEmb、GroupedMatmul、RmsNorm、Shape 和 Flatten。 4. 新增或完善的 Symbolic Kernel 包括 Add、Sub、Mul、Cast、Identity、Range、Reshape、Rsqrt、Slice、Transpose、SoftmaxV2、TensorScatterUpdate、SelectV2。 5. 删除原独立 Add Symbolic Kernel,统一使用二元逐元素 Symbolic Kernel 实现广播加减乘计算。 6. 符号表达式系统新增 Exp 表达式构造能力,用于支持 SoftmaxV2 的符号化计算。 See merge request: cann/ge!4571 | 1 个月前 | |
【feat】: Support PCIe Through Co-authored-by: kantao1<kantao1@huawei.com> # message auto-generated for no-merge-commit merge: !4394 merge pcie_through into develop 【feat】: Support PCIe Through Created-by: kantao1 Commit-by: kantao1 Merged-by: cann-robot Description: # Pull Request 接口评审时间:2026/08/06(周四) ## 描述 PCIE Through 是 Ascend NPU 硬件能力,允许 device 端算子通过 PCIE 总线直接访问 host 内存。当前单算子场景可用,但在模型编译场景下,编译期无法确定输入 tensor 的真实的地址范围,导致 tiling 阶段无法选择正确 kernel。 本特性通过编译期能力识别 + TilingContext 注入 + 执行期上下文扩展(动态 shape),解决此问题。 ### 核心设计 **编译阶段(lowering)**: - BuildTilingPcieThroughInput 从 DefaultOpImplSpaceRegistryV2 查询算子是否支持 PCIe Through,同时通过 IsPcieThroughEnabled 检查运行环境(option 开关、芯片能力、设备连接类型),两者均满足时将 pcie_through_flag 初始值设为 true - IsPcieThroughEnabled 结果通过 thread_local static 缓存,每个线程仅计算一次 - BuildTilingCommonInputs 在 input_addrs 可用时,通过 BuildRefTensor 将输入从 StorageShape 升级为包含设备地址的 Tensor,使运行时能通过 GetInputTensor(i)->GetAddr() 获取实际输入地址 **运行时(executor)**: - UpdatePcieThroughFlag 读取 pcie_through_flag,为 false 时直接跳过;为 true 时通过 IsAnyInputInPcieRange 遍历输入地址,检查是否落在 PCIe 地址范围内 - 若存在 PCIe 地址 → flag 保持 true;否则改为 false - GetPcieThroughFlag() 接口供 Tiling 函数和缓存键计算使用 **关键修复**: - fwk_data_idx 恢复后向计算(input_num - kFwkDataOffset),修复 symbol tiling 路径中前向计算导致的 702 行 ASSERT 失败 - GetPcieThroughFlag 改为后向 GetInputNum() - 1,与 pcie_through_flag 作为最后一个输入的布局一致 - TilingForAtomic 补充 BuildTilingPcieThroughInput 调用,保证输入布局一致性 - BuildGeneralTilingCacheKey 简化为直接读 GetPcieThroughFlag(),消除运行时查 space_registry 的版本不一致问题 ## 变更类型 - [x] ✨ 新功能 - [x] 🐛 Bug 修复 ## 关联的Issue <!-- 请在右侧关联对应 Issue --> ## 如何测试 1. 编译 UT:make -C cmake-build-gcov ut_fast_runtime2_test ut_exe_graph ut_register -j$(nproc) 2. 运行 PCIe Through 相关 UT:--gtest_filter='*PcieThrough*' 3. 运行 TilingContextBuilder UT:--gtest_filter='TilingContextBuilderUT.*' 4. 在 PCIe 直通环境上执行模型推理,验证 pcie_through 算子正确识别地址并优化搬运 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签 - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 ### 涉及文件 | 仓库 | 文件 | 改动说明 | |------|------|---------| | ge | runtime/v2/graph_builder/bg_tiling.cc | 新增 IsPcieThroughEnabled、BuildTilingPcieThroughInput;BuildTilingCommonInputs 支持 BuildRefTensor;TilingForAtomic 补充 pcie through 输入 | | ge | runtime/v2/kernel/common_kernel_impl/tiling.cc | 新增 IsAnyInputInPcieRange、UpdatePcieThroughFlag;fwk_data_idx 恢复后向计算;BuildGeneralTilingCacheKey 简化 | | ge | runtime/v2/kernel/common_kernel_impl/tiling.h | 新增 kPcieThroughFlag 枚举项 | | metadef | inc/external/exe_graph/runtime/tiling_context.h | GetPcieThroughFlag 改为后向计算 | | ge | tests/ | 新增 PCIe Through 相关 UT/ST 用例 | See merge request: cann/ge!4394 | 1 个月前 | |
fix: 修复 LLT 测试插件和日志桩依赖 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !4735 merge fix/llt-cann-test-stubs-tests-only into develop fix: 修复 LLT 测试插件和日志桩依赖 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: ## 描述 修复新 CANN 环境下 GE LLT 测试对真实 toolkit 插件和日志生命周期的隐式依赖,所有修改仅位于 tests/ 目录。 ## 变更类型 - [x] Bug 修复 - [ ] 新功能 - [ ] 代码风格更新(格式化,局部变量) - [ ] 重构(既不修复错误也不增加功能的代码变动) - [ ] 构建过程或辅助工具的变动 - [ ] 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 在新 CANN 镜像中执行 ge_common UT,14/14 测试通过。 2. 验证 FE 日志桩不再触发退出阶段 heap-use-after-free。 3. 执行 pre-commit 检查,全部 hooks 通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 测试侧过滤 liboptf_plugin_hccl.so 的加载,并将日志级别映射改为无静态析构对象的 switch 实现。 See merge request: cann/ge!4735 | 1 个月前 | |
【PR】: 内部头文件重名整改 -- 同名不同内容 Co-authored-by: jikai-tyler<jikai5@huawei.com> # message auto-generated for no-merge-commit merge: !3497 merge ge_header_internal_2 into develop 【PR】: 内部头文件重名整改 -- 同名不同内容 Created-by: jikai-tyler Commit-by: jikai-tyler Merged-by: cann-robot Description: # Pull Request ## 描述 | 原文件路径 | 原名 | 修改后名称 | |-----------|------|-----------| | base/common/helper/mobile/ | model.h | mobile_model.h | | base/common/math/ | math_util.h | ge_math_util.h | | compiler/engines/cpu_engine/common/util/ | log.h | aicpu_log.h | | compiler/engines/cpu_engine/inc/ | graph_pass.h | cpu_engine_graph_pass.h | | compiler/engines/cpu_engine/inc/ | pass.h | cpu_engine_pass.h | | compiler/engines/cpu_engine/tf_engine/tf_optimizer/ | tensorflow_util.h | tf_optimizer_tensorflow_util.h | | compiler/engines/hccl_engine/hcom_graph_adaptor/ge_plugin/calculation_tool/ | model.h | hcom_model.h | | compiler/engines/hccl_engine/hcom_graph_adaptor/ge_plugin/ | plugin_manager.h | hcom_plugin_manager.h | | compiler/engines/local_engine/ops_kernel_store/op/ | op.h | ge_local_op.h | | compiler/engines/local_engine/ops_kernel_store/op/ | op_factory.h | ge_local_op_factory.h | | compiler/engines/manager/engine/ | engine_manager.h | dnn_engine_manager.h | | compiler/engines/manager/opskernel_manager/ | ops_kernel_manager.h | dnn_ops_kernel_manager.h | | compiler/engines/nn_engine/inc/common/ | math_util.h | nn_engine_math_util.h | | compiler/engines/nn_engine/optimizer/ops_kernel_builder/task_builder/ | dsa_task_builder.h | ops_kernel_dsa_task_builder.h | | compiler/engines/nn_engine/utils/common/ | plugin_manager.h | nn_engine_plugin_manager.h | | compiler/engines/rts_engine/common/util/ | log.h | rts_log.h | | compiler/graph/build/stream/ | stream_allocator.h | graph_stream_allocator.h | | compiler/graph/common/compress/inc/ | log.h | compress_log.h | | compiler/graph/eager_style_graph_builder/es_generator/ | utils.h | es_generator_utils.h | | compiler/graph/passes/ | pass.h | compiler_pass.h | | compiler/opcompiler/op_compile_adapter/source/compile/ | fusion_manager.h | opcompiler_fusion_manager.h | | dflow/llm_datadist/v1/common/ | cache_manager.h | llm_datadist_cache_manager.h | | dflow/llm_datadist/v1/common/ | llm_common.h | llm_datadist_common.h | | dflow/llm_datadist/v1/common/ | mem_utils.h | llm_datadist_mem_utils.h | | dflow/pydflow/wrapper/ | utils.h | pydflow_utils.h | | dflow/udf/execute/ | memory_statistic_manager.h | udf_memory_statistic_manager.h | | dflow/udf/flow_func/ | flow_model.h | udf_flow_model.h | | inc/framework/common/ | op_types.h | framework_op_types.h | | inc/graph_metadef/common/ge_common/debug/ | log.h | ge_common_log.h | | inc/graph_metadef/graph/utils/ | mem_utils.h | graph_mem_utils.h | | inc/graph_metadef/register/graph_optimizer/graph_fusion/ | connection_matrix.h | fusion_connection_matrix.h | | inc/graph_metadef/register/graph_optimizer/graph_fusion/ | graph_pass.h | graph_fusion_graph_pass.h | | inc/graph_metadef/register/graph_optimizer/graph_fusion/ | pass.h | graph_fusion_pass.h | | parser/parser/common/ | graph_pass.h | parser_graph_pass.h | | parser/parser/common/ | pass.h | parser_pass.h | | runtime/v1/graph/load/model_manager/task_info/ffts_plus/ | ffts_plus_proto_transfer.h | v1_ffts_plus_proto_transfer.h | | runtime/v1/graph/manager/ | host_mem_allocator.h | v1_host_mem_allocator.h | | runtime/v1/hybrid/model/infer/ | shape_utils.h | hybrid_shape_utils.h | | runtime/v2/core/utils/ | executor_utils.h | rt2_executor_utils.h | | runtime/v2/core/utils/ | tensor_utils.h | rt2_tensor_utils.h | | runtime/v2/utils/ | utils.h | rt2_utils.h | ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3497 | 2 个月前 | |
【fix】: Revert "remove aclrtGetStreamAvailableNum" Co-authored-by: kantao1<kantao1@huawei.com> # message auto-generated for no-merge-commit merge: !4186 merge develop into develop 【fix】: Revert "remove aclrtGetStreamAvailableNum" Created-by: kantao1 Commit-by: kantao1 Merged-by: cann-robot Description: # Pull Request ## 描述 回退:https://gitcode.com/cann/ge/pull/3723 ## 变更类型 请选择本次引入的变更类型: <!-- [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!4186 | 2 个月前 | |
feat: 支持自定义输入输出offset的内存分配 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4015 merge feat/custom-input-output-memory-offset into develop feat: 支持自定义输入输出offset的内存分配 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: ## 描述 性能优化,为了减少一次片内拷贝,HcomAllgather算子输入输出共用一块内存,输入节点直接按偏移量写入内存指定位置,由优化pass设置属性,内存分配按属性进行偏移(本PR只实现内存分配部分)。 新增 ATTR_NAME_CUSTOM_INPUT_OUTPUT_OFFSET 属性,用于区分普通 ref 场景,实现自定义输入输出 offset。 主要变更: 1. 新增 _custom_input_output_offset 属性定义(ge_attr_define.cc/h) 2. 新增 GetOffsetFromPeerOutputList/GetOffsetFromPeerInputList/GetCustomOffset 三个函数,通过 ATTR_NAME_OUTPUT_OFFSET_LIST_FOR_CONTINUOUS(输入peer)和 ATTR_NAME_INPUT_OFFSET_LIST_FOR_CONTINUOUS(输出peer)计算输出相对输入的偏移量,两个属性互斥校验,同时检测 ref/atomic 冲突 3. CheckRefNodeOffset 中使用 GetCustomOffset 计算自定义 offset 后校验 4. UpdateRefOpOutputOffset 中 custom_offset != 0 时跳过输出 offset 刷新 5. AssignContinuousOutputMemory 中 NoPadding 分支增加 UpdateOffsetsByOffsetListAttr 调用 6. 修复 UpdateOffsetsByOffsetListAttr 日志中 output/input 索引描述错误 7. 补充 4 个 UT 用例和 1 个 ST 用例 ## 变更类型 - [x] ✨ 新功能 - [x] 🐛 Bug 修复 ## 关联的Issue 无 ## 如何测试 1. 对需要自定义输入输出 offset 的算子节点设置 _custom_input_output_offset 和 _output_reuse_input 属性为 true 2. 在输入 peer 设置 _output_offset_list_for_continuous 或在输出 peer 设置 _input_offset_list_for_continuous 指定偏移量 3. 编译图并检查内存分配结果,验证 output_offset - input_offset 是否等于自定义偏移量 4. 验证未设置该属性的算子行为不受影响 5. UT:CustomInputOutputOffset_WithOutputOffsetList_Success、CustomInputOutputOffset_WithInputOffsetList_Success、CustomInputOutputOffset_PeerOutputIsAtomic_Failed、CustomInputOutputOffset_PeerInputIsRef_Failed 6. ST:CustomInputOutputOffset_WithInputOffsetList_Success ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 该属性用于支持特定场景下输入输出需要不同 offset 的内存排布需求,避免 ref 机制强制将输出 offset 刷新为与输入一致。GetCustomOffset 仅在同时设置 ATTR_NAME_CUSTOM_INPUT_OUTPUT_OFFSET 和 ATTR_NAME_OUTPUT_REUSE_INPUT 时生效,且仅支持单输入单输出节点。 See merge request: cann/ge!4015 | 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 | 3 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 |