| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 个月前 | |
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 个月前 | |
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 个月前 | |
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 个月前 | |
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 | 12 天前 | |
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 | 12 天前 | |
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 | 12 天前 | |
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 | 12 天前 | |
feat: part2 完善HostCPU自定义算子运行时与常量折叠支持 Co-authored-by: du-hua1024<duhua2@huawei.com> # message auto-generated for no-merge-commit merge: !4538 merge new into develop feat: part2 完善HostCPU自定义算子运行时与常量折叠支持 Created-by: du-hua1024 Commit-by: du-hua1024 Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 完善后端感知自定义算子的 HostCPU 执行链路,打通编译期识别与分流、Runtime V2 下沉执行、ShapeInfer、常量折叠及配套单元测试。HostCPU 自定义算子使用独立的 lowering 标识和执行上下文,避免被当作 Device 自定义算子编译或按 AI Core 归属分区。 ## 主要修改点 ### 1. HostCPU 自定义算子编译与分区 - 在 DNNEngineManager 中识别注册到 OpBackend::kHostCPU 的自定义算子,并将其设置为 Custom Engine、Custom Op Kernel Lib,同时写入 host_cpu_custom_op_lower_func lowering 属性。 - 在 HostcpuEngineUpdatePass 中保留 HostCPU 自定义算子的 Custom Engine 归属,避免被错误迁移到普通 HostCPU 或 Device 执行路径。 - 在 EnginePartitioner 二次分区时区分 Device 自定义算子和 HostCPU 自定义算子:前者跟随 AI Core,后者跟随 DNN_VM_HOST_CPU。 - 在动态 Shape 分区及未知 Shape 标记流程中,将 HostCPU 自定义算子按 HostCPU 节点处理。 - 在 Custom Engine 编译任务生成阶段跳过 HostCPU 自定义算子的 Device 编译;算子支持性检查改为使用后端感知注册信息。 ### 2. Runtime V2 HostCPU 自定义算子执行 - 新增 HostCPU 自定义算子 converter: - 从 Host 侧 lowering 结果构造输入 Tensor 和地址; - 使用 Host allocator 分配输出; - 注册 host_cpu_custom_op_lower_func 对应的节点 converter; - 增加输出内存释放及输入地址生命周期依赖。 - 新增 HostCPU 自定义算子 kernel: - 查找 HostCPU 自定义算子实例; - 支持 ExecuteHostCustomOp 和 ExecuteHostCustomOpWithInferShape; - 使用 HostCpuOpExecutionContext 调用 HostCpuExecuteOp::Execute; - 补充输出创建、Trace 和 Profiling 逻辑。 - ShapeInfer 链路改为通过 kShapeInfer 能力获取 ShapeInferOp,新增 FindCustomShapeInferOp kernel,避免先获取通用 BaseCustomOp 再转换。 - 抽取公共输出模板 Tensor 处理逻辑,兼容 Device 和 HostCPU 两类自定义算子执行路径。 ### 3. HostCPU 自定义算子常量折叠 - 在常量折叠阶段优先尝试执行注册为 HostCpuExecuteOp 的自定义算子。 - 新增 HostCPU 常量折叠专用内存分配器、TensorData 管理和 HostCpuOpExecutionContext 构造逻辑。 - 将 GE Tensor 转换为 GERT Tensor,执行 HostCPU 自定义算子后再转换回 GE Tensor。 - HostCPU 自定义算子执行失败时,继续回退到已有 HostCPU Kernel 和内置 Kernel 路径。 ### 4. 执行上下文、构建及可观测性 - 将 MakeOutputRefInput 调整为非 const 接口,移除内部 const_cast,同步更新实现、头文件及离线 stub。 - 增加 HostCPU 自定义算子 lowering 常量、Profiler 类型注册及 compiler 对 gert 的链接依赖。 - 更新相关 Runtime V2、编译器和 ShapeInfer 接口声明。 ### 5. 测试覆盖 新增或扩展以下单元测试: - HostCPU 自定义算子引擎更新、DNN Engine 选择及图分区; - 动态/未知 Shape 分区; - HostCPU 自定义算子常量折叠; - Runtime V2 custom converter、kernel 及 ShapeInfer; - 自定义算子 Kernel Info Store 后端感知检查。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 如何测试 - 编译 GE compiler、Runtime V2 及相关单元测试目标。 - 执行 HostCPU 自定义算子引擎更新、图分区、常量折叠、Runtime V2 converter/kernel 相关 UT。 - 验证 Device 自定义算子路径保持原有编译、分区和执行行为。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已补充相关单元测试 - [x] 我已更新全部相关文档 - [x] 我在标题中使用了合适的类型标签(如:feat:、fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守其中的相关规定 ## 其他信息 本 PR 相对目标分支涉及 33 个文件,新增约 1384 行、删除约 50 行。Device 自定义算子与 HostCPU 自定义算子通过后端注册信息和 lowering 属性区分,HostCPU 路径不会进入 Device 自定义算子编译流程。 See merge request: cann/ge!4538 | 2 天前 | |
【feature】: HostCPU 调度优化 Co-authored-by: SeasonChu<zhuxincheng2@huawei.com> # message auto-generated for no-merge-commit merge: !3626 merge hostcpu into develop 【feature】: HostCPU 调度优化 Created-by: SeasonChu Commit-by: SeasonChu Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 新增hostCpu调度特性如果DATA设置了 _host_tensor=true ,该DATA节点会被放在host上 主要变更: 1. 完善 HostCPU anchor 识别 - Data 节点支持通过 _host_tensor=true 作为 HostCPU 传播起点。 2. 新增 _host_tensor_as_model_input 标记 - HostcpuEngineUpdatePass BFS 传播完成后,对 host_exe_ops_ 中的 Data 节点追加 _host_tensor_as_model_input=true。 - 该标记用于区分“前端 host tensor 标记”和“运行时需要保持 Host placement 的模型输入”。 3. 运行时按新标记处理模型输入 - HybridModelRtV2Executor 初始化 host model input 索引。 - 对标记为 host model input 的输入跳过 H2D,直接保持 Host placement。 - 增加 device placement 校验,避免 HostCPU 节点误消费 Device 地址。 - runtime/v2/engine/gelocal/inputs_converter.cc 改为基于 _host_tensor_as_model_input 设置 feed data placement。 4. 补充相关 UT/ST - 更新 HostcpuEngineUpdatePass 单测。 - 增加 HybridModelRtV2Executor host model input 场景测试。 - 回归 fast runtime v2/autofuse 相关用例适配。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 执行 HostcpuEngineUpdatePass 相关 UT,验证 BFS 传播后的 Data 节点会被标记为 _host_tensor_as_model_input=true。 2. 执行 HybridModelRtV2Executor 相关 UT/ST,验证 host model input 跳过 H2D 并保持 Host placement。 3. 回归 fast runtime v2/autofuse 相关测试,确认普通 Device 输入路径不受影响。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 该修改将 HostCPU 传播结果固化到 Data 节点,供运行时统一判断模型输入 placement,避免仅依赖前端 _host_tensor 标记导致输入仍被搬运到 Device。 See merge request: cann/ge!3626 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 12 天前 | ||
| 12 天前 | ||
| 12 天前 | ||
| 12 天前 | ||
| 2 天前 | ||
| 1 个月前 |