| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: improve log usability Co-authored-by: m0_50621083<hongyuecheng@huawei.com> # message auto-generated for no-merge-commit merge: !4556 merge CANN-log-evaluation-develop into develop fix: improve log usability Created-by: m0_50621083 Commit-by: m0_50621083 Merged-by: cann-robot Description: # Pull Request ## 描述 本次修改针对 GE 代码中的日志易用性问题进行整改,主要包括: - 修复日志中的英文拼写及语法问题; - 优化日志提示语义和表达; - 补充部分日志中的单位及上下文信息; - 统一部分日志及注释的英文表达; - 优化个别不规范的日志输出方式。 本次修改主要涉及日志和提示文本,不改变核心功能逻辑。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无关联Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 使用 git diff 对本次修改内容进行检查,确认修改范围均属于日志易用性整改。 2. 使用 git diff --check 检查代码格式,确认不存在 trailing whitespace 等格式问题。 3. 检查日志字符串修改前后的参数及格式化占位符,确认日志参数与原有逻辑保持一致。 4. 确认本次修改主要涉及日志、提示信息及相关文本,不影响原有核心功能逻辑。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次为日志易用性专项整改,修改范围涉及多个模块,主要针对现有日志中的拼写、语法、语义表达、单位信息以及日志输出规范进行优化。 相关修改不涉及对外接口变更,不改变现有业务流程及核心功能逻辑。 See merge request: cann/ge!4556 | 19 天前 | |
【质量加固】补充成员函数 const 修饰以符合编码规范(#517) Co-authored-by: qoosong<qoosong.seu@qq.com> # message auto-generated for no-merge-commit merge: !4608 merge fix/quality-hardening-warnings into develop 【质量加固】补充成员函数 const 修饰以符合编码规范(#517) Created-by: qoosong Commit-by: qoosong Merged-by: cann-robot Description: ## 描述 响应 #517 "质量加固" 社区活动,修复 ge 仓中不符合规则1(成员函数 const 修饰)的代码问题。 不会修改成员变量的成员函数应使用 const 修饰。本次共修复 15 处成员函数缺少 const 修饰的问题,涉及 10 个文件,与既有 PR(#4597/#4594/#4497/#4572/#4496)无重复或冲突。 涉及文件及修复点: | 文件 | 修复的成员函数 | 说明 | |------|--------------|------| | inc/graph_metadef/register/graph_optimizer/buffer_fusion/buffer_fusion_pass_base.h | BufferFusionPassBase::GetName() | 返回 name_,不修改状态 | | inc/graph_metadef/register/ffts_node_converter_registry.h | SkipCtxRecord::GetCtxNum() | 仅读取 ctx_id_v->size() | | inc/framework/runtime/subscriber/global_profiler.h | GlobalProfilingWrapper::GetRecordCount() | 调用 const 的 GetCount() | | inc/framework/runtime/subscriber/global_profiler.h | GlobalProfilingWrapper::IsEnabled() | 仅读取 atomic load() | | inc/framework/runtime/subscriber/global_dumper.h | GlobalDumper::GetHandleSize() | 仅读取 size(),mutex 改为 mutable | | inc/graph_metadef/common/blocking_queue.h | BlockingQueue::GetRemainItems() / IsFull() / Size() | 仅读取,mutex 改为 mutable | | runtime/v1/graph/load/model_manager/data_inputer.h | DataInputer::Size() | 转调 const 的 queue_.Size() | | runtime/v1/graph/load/model_manager/davinci_model.h | DavinciModel::GetDataInputerSize() | 转调 const 的 data_inputer_.Size() | | compiler/analyzer/analyzer.h | Analyzer::IsEnableNetAnalyzeDebug() | 仅读取环境变量 | | compiler/engines/nn_engine/fusion/.../fusion_rule_parser_utils.h | FusionRuleParserUtils::GetEngineName() | 仅返回 engine_name_,mutex 改为 mutable | | compiler/engines/nn_engine/fusion/.../fusion_rule_json_pattern.h | FusionRuleJsonNode::GetName() / FusionRuleJsonAnchor::GetSrcNode() / FusionRuleJsonAnchor::GetName() | 仅返回成员变量 | 对于需要加锁的只读访问(GlobalDumper::GetHandleSize、BlockingQueue::IsFull/Size/GetRemainItems、FusionRuleParserUtils::GetEngineName),将互斥量声明为 mutable,以支持 const 成员函数内部的加锁,与既有 PR #4597 中 NodeDoneManager::Cond/DeployPlan 的处理方式一致。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #517 ## 如何测试 1. 本地执行 pre-commit 检查(clang-format/codespell/end-of-file-fixer 等)全部 Passed 2. 变更均为添加 const 修饰及 mutable 互斥量,不改变运行时行为,编译期即可验证 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 See merge request: cann/ge!4608 | 21 天前 | |
【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 | 15 天前 | |
feat: 自定义算子注册支持 engine and priority,常量折叠适配 Co-authored-by: du-hua1024<duhua2@huawei.com> # message auto-generated for no-merge-commit merge: !4918 merge new into develop feat: 自定义算子注册支持 engine and priority,常量折叠适配 Created-by: du-hua1024 Commit-by: du-hua1024 Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 主要实现自定义算子按 engine、priority 和 backend 注册/查询/创建,并将其适配到常量折叠 Host CPU 执行路径,同时保留原有注册接口的兼容行为。 主要变更: - 新增 OpRegistrationPriority(kTop / kBottom)、OpEngine,扩展 CustomOpRegistry 的注册、查询、实例创建和能力获取接口,注册维度为 (op_type, engine_type, priority, backend)。 - 扩展 CustomOpFactory 与 CustomOpCreatorRegister,新增带 priority/engine 的 API;默认接口保持使用 engine = OpEngine::kCustom、priority = kTop。 - 新增 REG_OP_WITH_PRIORITY 宏,支持为自定义算子显式指定 backend、priority 和 engine,并保留既有注册宏。 - ConstantFoldingPass::RunOpKernel 优先处理 OpEngine::kHostCpu engine 下的 bottom-priority Host CPU 自定义算子;命中后通过 HostCpuExecuteOp 执行,未命中时回退原有 OpKernelRegistry 路径,创建失败不错误回退。 - 补充 registry priority/engine 及常量折叠执行路径 UT,覆盖注册查询、实例缓存与隔离、非法/重复注册、优先级选择和 legacy kernel 回退行为。 - 辅助修复 stub graph target 体积:将 ge_log.h 从公共头 args_format_desc.h 移到实际使用日志宏的实现文件,减少 Ascend031 tiny.arm runtime 包中 libgraph.so 的链接依赖。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 新增的 custom-op registry 与 constant-folding UT 覆盖 engine/priority 注册、实例缓存、优先级选择、执行失败及 legacy kernel 回退场景。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 See merge request: cann/ge!4918 | 5 天前 | |
fix:消除静态告警 Co-authored-by: Chang-an-HW<machangan@huawei.com> # message auto-generated for no-merge-commit merge: !4992 merge fix_warning_0916 into develop fix:消除静态告警 Created-by: Chang-an-HW Commit-by: Chang-an-HW Merged-by: cann-robot Description: # Pull Request ## 描述 fix:消除静态告警 析构函数不得抛出异常 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4992 | 3 天前 | |
【质量加固】补充 const 修饰、参数 const 修饰与 lambda 显式捕获 Co-authored-by: worry<2428405332@qq.com> # message auto-generated for no-merge-commit merge: !4572 merge quality-fix into develop 【质量加固】补充 const 修饰、参数 const 修饰与 lambda 显式捕获 Created-by: m0_63918125 Commit-by: worry Merged-by: cann-robot Description: ## 修改内容 共 16 处代码质量修复,覆盖 3 条编码规范规则,涉及 11 个文件。 ### 规则1:成员函数 const 修饰(8处) - compiler/graph/passes/base_pass.h:6 个只读 getter 添加 const - compiler/graph/partition/base_cluster.h:GetPartitionedCallName() 添加 const - inc/.../graph_fusion_pass.h:GetName() 添加 const ### 规则2:参数 const 修饰(4处) - api/atc/omg.cc:CheckDigitStr/StringToInt 的 string 参数添加 const - compiler/.../te_file_utils.h/.cc:IsFileUsed 的 filePath 参数添加 const - parser/.../acl_graph_parser_util.cc:CheckDigitStr 的 string 参数添加 const ### 规则9:lambda 避免默认捕获模式(4处) - 3 处 call_once 中 [&] → [](静态成员无需捕获) - 1 处 [=] → [runnable](显式捕获所需变量) See merge request: cann/ge!4572 | 16 天前 | |
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 | 2 个月前 |