| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(om2): 新增OM2运行时变量管理器(RTVarManager) Co-authored-by: wuzheng-hw<wuzheng14@huawei.com> # message auto-generated for no-merge-commit merge: !4297 merge om2_varmanager into develop feat(om2): 新增OM2运行时变量管理器(RTVarManager) Created-by: wuzheng-hw Commit-by: wuzheng-hw Merged-by: cann-robot Description: # Pull Request ## 描述 新增OM2运行时变量管理器(RTVarManager),用于在运行时管理变量的内存分配、地址映射、格式转换及数据拷贝。 主要变更: - 新增 RTVarResource 数据结构,描述运行时变量条目(RTVarEntry),包含变量名、逻辑地址、tensor描述、格式转换路径等 - 新增 BuildRTVarResource 接口,从编译期 VarManager 构建运行时变量资源并序列化到 OM2 模型文件 - 新增 Om2RTVarManager,负责运行时变量内存分配、地址管理、格式转换及数据拷贝 - 新增 Om2RTVarManagerPool 单例池,按 session 管理 RTVarManager 实例 - OM2 codegen 侧新增变量元数据序列化 - 模型执行器集成 RTVarManager,支持从 OM2 文件解析变量资源并初始化 - 任务码构建适配变量地址刷新逻辑 - 新增完整的 UT/ST 测试用例 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 运行 UT 用例:om2_rt_var_manager_unittest、rt_var_resource_unittest、om2_var_resource_builder_unittest 2. 运行 ST 用例:test_om2、test_om2_online 3. 验证 OM2 模型编译和运行时变量管理功能正常 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 涉及 57 个文件变更,新增约 4500 行代码。 See merge request: cann/ge!4297 | 6 天前 | |
【PR】: [feat] [autofuse] add ut. Co-authored-by: xingzhixiong<xingzhixiong@huawei.com> # message auto-generated for no-merge-commit merge: !4401 merge develop_openSource_exercise into develop 【PR】: [feat] [autofuse] add ut. Created-by: xingzhixiong Commit-by: xingzhixiong Merged-by: cann-robot Description: # Pull Request ## 描述 补充autofuse相关ut。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的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!4401 | 3 天前 | |
【PR】: 对外头文件整改,新增转发头文件后修改引用和配置 Co-authored-by: jikai-tyler<jikai5@huawei.com> # message auto-generated for no-merge-commit merge: !3568 merge jk_external into develop 【PR】: 对外头文件整改,新增转发头文件后修改引用和配置 Created-by: jikai-tyler Commit-by: jikai-tyler Merged-by: cann-robot Description: # Pull Request ## 描述 对外头文件整改,新增转发头文件后修改引用和配置。 ## 变更类型 请选择本次引入的变更类型: <!-- [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!3568 | 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 | 1 个月前 | |
【feat】: upgrade json to v3.12.0 Co-authored-by: kantao1<kantao1@huawei.com> # message auto-generated for no-merge-commit merge: !4283 merge upgrade_json into develop 【feat】: upgrade json to v3.12.0 Created-by: kantao1 Commit-by: kantao1 Merged-by: cann-robot Description: # Pull Request ## 描述 1. 将 json 升级到 v3.12.0 以及修改相关的文档、脚本 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. DT 验证即可 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4283 | 8 天前 | |
fix: aclnn fallback支持算子级确定性配置 Co-authored-by: ClarkXie<xiezhengkai@huawei.com> # message auto-generated for no-merge-commit merge: !4322 merge batch_deterministic into develop fix: aclnn fallback支持算子级确定性配置 Created-by: ClarkXie Commit-by: ClarkXie Merged-by: cann-robot Description: # Pull Request ## 描述 完善 ACLNN fallback 的算子级 deterministic 配置处理:算子执行前临时覆盖确定性配置,执行结束后恢复模型基线配置;离线模型加载时校验 process global option 与模型配置的一致性。 确定性配置统一直接使用最新 runtime set 接口。 deterministic 仅用于与 deterministic_level 做一致性校验,真正下发到 runtime 的值只使用 deterministic_level;不再查询 runtime 或算子包版本,也不再做 capability 分档和 kernel 侧配置对齐。 ## 主要变更 - base/common/op_tiling/op_tiling_rt2.{h,cc} - 独立读取 graph/node 的 deterministic 和 deterministic level 属性。 - 在 SetDeterministicConfig 内校验两者是否同为 0 或同为非 0。 - process/context runtime 配置统一直接下发 deterministic level,并保留全局设置加锁。 - runtime/v2/engine/aicore/converter/aclnn_node_converter.cc - 保存算子级 deterministic/level 属性及存在标记。 - 创建并保存模型原始 deterministic 基线配置。 - 移除 runtime、ops_math、ops_nn、ops_transformer、ops_cv、ops_legacy 版本查询及 capability 组装。 - runtime/v2/engine/aicore/kernel/aclnn_op_execute_kernel.{h,cc} - 复用 FwkData 传递算子级配置和原始基线配置。 - 一体式执行和两阶段 prepare 前按需临时覆盖 runtime 配置,并在成功/失败路径恢复基线。 - 两阶段 launch 不消费 deterministic 配置;kernel 不负责 deterministic/level 对齐。 - runtime/v2/api/api.cc - 离线模型加载时校验模型 global option 与进程 global option 的一致性。 - 增加 root graph 属性、进程 option、比较结果及跳过原因的 INFO 日志,便于定位校验未生效问题。 - UT/ST - 更新确定性配置下发、level 透传、不一致配置拒绝、算子级覆盖与恢复、离线 global option 校验相关用例。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] ♻️ 重构 - [ ] 📦 构建过程或辅助工具 - [ ] 📝 文档内容更新 ## 关联的 Issue 无。 ## 如何测试 按要求未执行 UT/ST;已完成 git diff --check。 ## 核对清单 - [x] 代码遵循项目代码风格 - [x] 已完成静态差异检查(git diff --check) - [x] 已执行 UT/ST - [x] 已更新设计文档(按要求不修改文档) See merge request: cann/ge!4322 | 4 小时前 | |
fix: dflow对aclInit重复初始化场景做兼容处理 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !4441 merge fix/dflow-acl-repeat-init into develop fix: dflow对aclInit重复初始化场景做兼容处理 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: # Pull Request ## 描述 dflow 两处 aclInit 调用(dflow_api.cc 的 DFlowInitialize 和 engine_daemon.cc 的 InitializeWithArgs)用进程内局部 acl_initialized flag 判断是否已初始化,存在两个问题: ### 问题1:重复初始化被误判为致命错误 当同进程其他组件已调过 aclInit() 时,dflow 重复调用会得到 ACL_ERROR_REPEAT_INITIALIZE(100002),被 ret != ACL_SUCCESS 误判为致命错误返回 FAILED。按 ACL 文档定义,此返回码表示"重复初始化或重复加载",ACL 已处于正确的已初始化状态,不应视为错误。 ### 问题2:重复初始化场景下误调用 aclFinalize aclInit 返回 ACL_ERROR_REPEAT_INITIALIZE 时表示外部已初始化 ACL,但 dflow 仍将 acl_initialized 置为 true,导致 DFlowFinalize/EngineDaemon::Finalize 时调用 aclFinalize 把外部初始化的 ACL 给 teardown 了。 ### 修复方案 1. **兼容重复初始化**:两处调用点将 ACL_ERROR_REPEAT_INITIALIZE 当成功处理(置 acl_initialized = true,继续执行),同时失败日志补充 acl 返回码便于定位 2. **正确管理 ACL 生命周期**:引入 acl_owned_by_dflow 标志区分 ACL 生命周期归属,仅当 dflow 自己 aclInit 成功(返回 ACL_SUCCESS)时才置 true,Finalize 时仅在该标志为 true 时才调用 aclFinalize | 场景 | aclInit 返回 | acl_owned_by_dflow | Finalize 时调 aclFinalize? | |------|---------------|---------------------|-------------------------------| | dflow 自己初始化 | ACL_SUCCESS | true | 是 | | 外部已初始化 | ACL_ERROR_REPEAT_INITIALIZE | false | 否 | | 初始化失败 | 其他错误码 | false | 否 | ## 变更类型 - [x] 🐛 Bug 修复 ## 关联的Issue ## 如何测试 ### UT(ut_libge_helper_utest) 1. DFlowInitialize_acl_repeat_init:mock aclInit 返回 ACL_ERROR_REPEAT_INITIALIZE,断言 DFlowInitialize 返回 SUCCESS,且 DFlowFinalize 后不调用 aclFinalize 2. DFlowInitialize_acl_init_failed:mock aclInit 返回 ACL_ERROR_INVALID_PARAM,断言 DFlowInitialize 返回 FAILED,且不调用 aclFinalize 3. TestEngineDaemonAclRepeatInit:同上,针对 EngineDaemon::InitializeWithArgs 4. TestEngineDaemonAclInitFailed:同上,针对 EngineDaemon::InitializeWithArgs ### ST(helper_runtime_test) 1. DataFlowApiTest.DFlowInitialize_acl_repeat_init:同 UT 场景1 2. DataFlowApiTest.DFlowInitialize_acl_init_failed:同 UT 场景2 3. STEST_helper_runtime.TestEngineDaemonAclRepeatInit:同 UT 场景3 4. STEST_helper_runtime.TestEngineDaemonAclInitFailed:同 UT 场景4 ### 覆盖率 UT 和 ST 新增分支覆盖率均为 **100%**(4/4 分支),覆盖了 ACL_SUCCESS、ACL_ERROR_REPEAT_INITIALIZE、其他错误码三个路径。 ### 回归验证 - UT 28 个相关用例全部通过 - ST 8 个相关用例全部通过 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/ge!4441 | 4 小时前 | |
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 | 1 个月前 | |
feat: host cpu算子支持codegen融合 Co-authored-by: @SeasonChu<zhuxincheng2@huawei.com> # message auto-generated for no-merge-commit merge: !4246 merge hostcpu-private-cabi-poc into develop feat: host cpu算子支持codegen融合 Created-by: SeasonChu Commit-by: @SeasonChu Merged-by: cann-robot Description: ## 变更目的 在动态 Shape/小 Shape 场景下,将满足条件的 HostCPU 算子链融合为 FusedHostCpu,通过 JIT 生成融合编排 SO,并由 Runtime2 在 Host 上直接执行,减少逐算子调度和参数构造开销,打通 Compiler、HostCpuEngine、CPU Engine 与 Runtime2 的端到端融合链路。 ## 主要变更 ### 1. 融合区域识别与图改写 - 在最终 HostCPU 引擎归属刷新后执行 HostCpuFusionPass,递归处理根图及其子图。 - 仅选择 HostCPU engine/kernel store、SmallShapeHostcpu、输入输出合法且存在 CpuKernel 实现的节点作为候选。 - 基于候选数据边构建连通分量,支持汇聚 DAG 保持和非汇聚多 sink 分支的 Clone-and-Split。 - 先完成所有区域的代码生成与编译,再统一提交图修改;失败时保留原图,并同步维护 atomic/composite engine map。 - 将融合节点所需的注册名、SO key、原始节点信息和输出映射写入 FusedHostCpu 属性。 ### 2. HostCPU Fusion JIT Codegen - 根据融合区域生成 HostCPU 编排源码,保持外部输入、外部输出及内部节点的拓扑和绑定关系。 - 支持计算相关属性序列化、内部临时 Tensor 管理和多输出映射。 - 在内存中编译生成 SO,并校验 ELF 后再进入图提交阶段。 - 使用确定性 chain id/register name,将 SO 数据存储在根图属性中,避免节点迁移到子图后无法定位产物。 ### 3. HostCpuEngine 与 CPU Engine - 增加 IsCpuConstantFoldingFusedOpSupported 查询,仅允许已注册的 V1/V2 CpuKernel 进入融合。 - 增加融合链 plan 的创建、销毁、执行和 Tensor binding/rebind 能力。 - 对运行时地址、Shape、dtype 和 format 变化进行增量重绑,复用已创建的内部 CpuKernel plan。 - 统一 JIT SO 与 Runtime2 之间的 private C ABI,提供注册校验及 create/destroy/run 入口。 ### 4. Runtime2 加载与直接执行 - 从根图读取融合 SO,完成 ELF 校验、动态加载、注册校验和 private entry 解析。 - 将 FusedHostCpu lowering 为专用 FusedHostCpuCompute ExecuteGraph kernel。 - 在执行时构造 Host Tensor binding,调用融合入口完成 Host 侧直调,并回传输出地址和 Shape。 - 在模型 DeInit 阶段释放 kernel state 和模型引用,保留进程级安全缓存,避免注册回调悬空。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新 - [ ] ♻️ 重构 - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 如何测试 算子满足host执行,且hostcpu算子节点数大于等于2 ## 测试结果 连续的hostcpu算子融合为一个fused算子 ## 关联 Issue 无。 See merge request: cann/ge!4246 | 4 小时前 | |
feat: 语言无关Custom Task Info 适配 OM2 Co-authored-by: fary86<fary.fanrui@huawei.com> # message auto-generated for no-merge-commit merge: !4407 merge dev_custom_op_new into develop feat: 语言无关Custom Task Info 适配 OM2 Created-by: fary86 Commit-by: fary86 Merged-by: cann-robot Description: # Pull Request ## 描述 ### 变更摘要 此 PR 为 OM2 模型管线新增了自定义算子(Custom Op)的完整支持。在数据结构侧, Om2ModelData 新增 custom_kernel_binaries 与 custom_shared_libs 字段;在打包阶段,Om2PackageHelper 新增 CollectUsedCustomOpTypes 遍历图中自定义算子类型并调用 PortableOp::Serialize 序列化算子二进制,同时封装自定义算子动态库入库;在代码生成阶段,新增 MODEL_TASK_CUSTOM_KERNEL 任务类型与 CustomTaskCodeBuilder 类,生成 KernelCustTaskDistribute 分发函数及 DeserializeCustKernelBinaries 反序列化辅助函数;在运行时阶段,om2_model_executor.cc 新增对自定义 so 的 mmDlopen 加载及自定义内核二进制到 kernel_bin_info 的合并。 **主要改动** - **新增 CustomTaskCodeBuilder 类与 DISPATCH_CUSTOM_KERNEL 分发类型**:新增 custom_task_code_builder.cc/h,实现 CustomTaskCodeBuilder 类处理 MODEL_TASK_CUSTOM_KERNEL 任务,生成 RenderDispatchCustomKernel 等分发逻辑;OpDispatchType 枚举扩展增加 DISPATCH_CUSTOM_KERNEL = 21,TaskDispatchInfo 联合体新增 CustomDispatchInfo custom 字段 - **新增自定义算子二进制收集与序列化逻辑**:Om2PackageHelper 新增 CollectUsedCustomOpTypes(遍历 root 图及游离子图收集 CustomOpFactory 注册的自定义算子类型)、BuildCustomKernelBinaries(调用 PortableOp::Serialize 序列化)、BuildCustomSharedLibs(读取自定义 op so 文件),并集成到 BuildOm2ModelData 流程中;同时重构多个 Build 方法接口,将分散的 Om2ProgramBody/Om2ModelMeta/Om2ConstantsData 等参数统一改为传递 Om2ModelData 引用 - **新增代码生成中的自定义算子运行时辅助代码**:stable_part_provider.cc 新增 kCreateClassCustomOpFactory 与 kCustomTaskHelpers 两个 StablePart,分别生成 CustomOpFactory 类声明和 CustKernelContextHolder、KernelCustTaskDistribute、DeserializeCustKernelBinaries 等辅助函数;program_generator.cc 在存在自定义 kernel 时引入 graph/custom_op.h 头文件并嵌入相应 StablePart - **运行时支持自定义 so 加载与内核反序列化**:om2_model_executor.cc 新增 CustSharedLibInfo 结构体,在 HandleArchiveEntry 中解析 data/custom_ops/shared_libs 和 data/custom_ops/binaries_* 条目;模型加载时对自定义 so 执行 mmDlopen,并将 custom_kernel_binaries 合并到 kernel_bin_info 供后续 DeserializeCustKernelBinaries 使用 - **新增 OM2_CUSTOM_KERNELS_DIR_FORMAT 路径常量与 ZIP 序列化方法**:om2_package_contants.h 新增 OM2_CUSTOM_KERNELS_DIR_FORMAT 宏;om2_zip_saver.cc 新增 SerializeCustomKernelBinaries 和 SerializeCustomKernelSharedLibs,分别将自定义算子二进制和共享库写入 data/custom_ops/ 目录下的 ZIP 条目 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4407 | 1 天前 | |
【PR】: Host tensor value symbolize Co-authored-by: chengyutao3<chengyutao3@huawei.com> # message auto-generated for no-merge-commit merge: !4443 merge develop into develop 【PR】: Host tensor value symbolize Created-by: chengyutao3 Commit-by: chengyutao3 Merged-by: cann-robot Description: # Pull Request ## 描述 本次提交为 host tensor(host 侧输入张量)新增**值符号化(value symbolization)**能力,使依赖输入 tensor 具体数值(如 Reshape 的 shape 输入)进行符号推导的场景不再需要把输入搬到 device,从而提升 JIT 执行与符号推导的准确性和性能。 核心变更包括: 1. **新增 graph 级 option ge.inputHintValue**:支持通过 input_index:[v0,v1,...] 的形式为指定输入指定符号化提示值(与已有 ge.inputHintShape 对齐),并在 option_supportion_checker 中将该 option 登记为受支持项。 2. **值符号化实现**(symbolic_shape_symbolizer.cc): - 新增 SymbolizeInputValue,优先使用真实 host 数据(支持 INT32/INT64/UINT32/UINT64,元素数上限 200)生成逐元素符号;无真实数据时回退到 ge.inputHintValue 配置值。 - 新增 InputValueElementSource,生成可在运行时读取 GetGraphInputTensor(idx) 对应元素数值的 source 串。 3. **值依赖输入识别**(symbolic_infer_util.cc):新增 IsValueDependentDataNode / GetValueDependentInputIdxs,通过算子的 IsInputDataDependency 与 op_infer_depends 判定哪些图输入是"值依赖"的,结果缓存到图 attr 中。 4. **JIT 执行路径适配**(jit_executor.cc): - CopyHostInputsToDevice 支持 keep_on_host_idxs,值依赖的 host 输入不再拷贝到 device。 - BuildCompileInputs 对已在 host 的输入跳过重复拷贝。 - MarkHostTensorOnDataNodes 改为直接基于 ComputeGraph 处理。 5. **option 解析重构**(option_utils.cc/h):将 ge.inputHintShape 的解析逻辑抽象为通用模板 ParseIndexedListOption,并复用其实现新增 ParseHintInputValue。 6. **测试补充与适配**:新增 UT symbolic_value_inference_unittest.cc、ST test_symbolize_value_and_infer.cc 的 hint value/真实数据用例;JIT 相关用例将 shape 输入由 INT32 调整为 INT64 并置为 host placement;user_graph_manager 用例按"值符号化后 reshape 不再切分执行点"的预期更新。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 运行符号值推导相关用例:tests/ge/ut/ge/graph/optimize/symbolic/symbolic_value_inference_unittest.cc(compile_path_reshape_with_hint_value、execute_path_reshape_with_real_data)。 2. 运行 autofuse ST:tests/ge/st/testcase/autofuse/test_symbolize_value_and_infer.cc(reshape_symbolize_infer_with_input_hint_value、reshape_symbolize_infer_with_real_data)。 3. 运行 JIT 执行相关用例:jit_executor_unittest.cc、user_graph_manager_unittest.cc(验证值符号化后图不再切分、host 输入不被重复拷贝)。 4. 构造含 Reshape 且 shape 输入为 host tensor 的模型,配置 ge.inputHintValue(如 1:[5, 400]),确认符号化推导结果符合预期,且无 device 拷贝开销。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 值符号化优先级:真实 host data > ge.inputHintValue 配置值;当已存在符号化 value 时跳过。 - 阈值 kMaxSymbolizeValueElemNum = 200 与 symbolic_shape_inference.cc 中的 kMaxSymbolicValueSize 保持一致,仅对 shape/索引类小 tensor 进行值符号化。 - 值依赖输入识别结果以图 attr _ge_value_dependent_idxs 缓存,避免重复计算。 See merge request: cann/ge!4443 | 4 小时前 | |
fix: 修复llt失败问题 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !4362 merge dev-llt0813 into develop fix: 修复llt失败问题 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 修复llt失败问题 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的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!4362 | 5 天前 | |
【feat】: atc support onnx int4 Co-authored-by: kantao1<kantao1@huawei.com> # message auto-generated for no-merge-commit merge: !4420 merge support_onnx_int4 into develop 【feat】: atc support onnx int4 Created-by: kantao1 Commit-by: kantao1 Merged-by: cann-robot Description: # Pull Request ## 描述 ### 需求背景 ATC 支持 ONNX INT4 的图转 OM。GE 下游(compiler/runtime/OM 序列化)已支持 DT_INT4,但 ONNX parser 层缺少 INT4 类型映射,导致含 INT4 的 ONNX 模型无法解析。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: - UT(5 个用例):类型映射、raw_data 路径、int32_data 对齐场景、padding 截断、数据不足防越界 - ST(1 个用例):端到端解析含 INT4 Constant 的 ONNX 模型,验证类型映射和数据正确性 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4420 | 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 | 1 个月前 | |
【Bugfix】: Use Internal Error instead inner error Co-authored-by: zhanj<zhanjun6@hisilicon.com> # message auto-generated for no-merge-commit merge: !4340 merge b_fix_inner_error into develop 【Bugfix】: Use Internal Error instead inner error Created-by: zhanj Commit-by: zhanj Merged-by: cann-robot Description: # Pull Request ## 描述 【Bugfix】: Use Internal Error instead inner error ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的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!4340 | 6 天前 | |
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 | 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 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 6 天前 | ||
| 3 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 8 天前 | ||
| 4 小时前 | ||
| 4 小时前 | ||
| 1 个月前 | ||
| 4 小时前 | ||
| 1 天前 | ||
| 4 小时前 | ||
| 5 天前 | ||
| 1 天前 | ||
| 1 个月前 | ||
| 6 天前 | ||
| 1 个月前 | ||
| 1 个月前 |