| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs: 【直播作业】填写 YOLOv13 最优多流配置(#516) Co-authored-by: Wjieee<1731907853@qq.com> # message auto-generated for no-merge-commit merge: !4429 merge develop into develop docs: 【直播作业】填写 YOLOv13 最优多流配置(#516) Created-by: Wjieee Commit-by: Wjieee Merged-by: cann-robot Description: ## 基本信息 - **所选 Example**:YOLOv13 - **CANNLab 环境**:Ubuntu 20.04 + aarch64 - **CANN 版本**:社区版 9.2.0 (Weekly) - **芯片规格**:Ascend910 (NPU Name: 9362),soc_version=Ascend910_9362 - **关联 Issue**:[#516]https://gitcode.com/cann/ge/issues/516 ## 测试命令 ### ATC 编译命令(以最优配置为例) bash atc --model=yolov13n.onnx \ --framework=5 \ --output=./model/yolov13_LoadBalance_55 \ --soc_version=Ascend910_9362 \ --input_shape="images:1,3,640,640" \ --output_type=FP32 \ --multi_stream_parallel_mode=LoadBalance:55 ### 推理测试命令 bash ./out/yolov13_main \ --model=./model/yolov13_LoadBalance_55.om \ --input=./data/bus.bin \ --warmup-runs=10 \ --runs=90 ## 固定参数 - ONNX 模型:yolov13n.onnx(input_shape="images:1,3,640,640") - 输入数据:bus.bin - soc_version:Ascend910_9362 - --warmup-runs=10 - --runs=90 - --multi_stream_parallel_mode 为唯一寻优变量 ## 测试结果 | 配置角色 | 多流配置 | 主评价指标平均耗时(ms) | 正式统计任务数 | |:---|:---|:---|:---| | Base 配置 | 未配置多流参数 | 2.631 | 90 | | 候选配置 | cv | 2.568 | 90 | | 候选配置 | LoadBalance:1 | 2.797 | 90 | | 候选配置 | LoadBalance:2 | 2.613 | 90 | | 候选配置 | LoadBalance:3 | 2.386 | 90 | | 候选配置 | LoadBalance:4 | 2.472 | 90 | | 候选配置 | LoadBalance:5 | 2.281 | 90 | | 候选配置 | LoadBalance:6 | 2.291 | 90 | | 候选配置 | LoadBalance:7 | 2.334 | 90 | | 候选配置 | LoadBalance:8 | 2.270 | 90 | | 候选配置 | LoadBalance:9 | 2.422 | 90 | | 候选配置 | LoadBalance:10 | 2.308 | 90 | | 候选配置 | LoadBalance:11 | 2.421 | 90 | | 候选配置 | LoadBalance:12 | 2.450 | 90 | | 候选配置 | LoadBalance:13 | 2.462 | 90 | | 候选配置 | LoadBalance:14 | 2.277 | 90 | | 候选配置 | LoadBalance:15 | 2.363 | 90 | | 候选配置 | LoadBalance:16 | 2.412 | 90 | | 候选配置 | LoadBalance:17 | 2.281 | 90 | | 候选配置 | LoadBalance:18 | 2.302 | 90 | | 候选配置 | LoadBalance:19 | 2.289 | 90 | | 候选配置 | LoadBalance:20 | 2.428 | 90 | | 候选配置 | LoadBalance:21 | 2.283 | 90 | | 候选配置 | LoadBalance:22 | 2.489 | 90 | | 候选配置 | LoadBalance:23 | 2.285 | 90 | | 候选配置 | LoadBalance:24 | 2.269 | 90 | | 候选配置 | LoadBalance:25 | 2.305 | 90 | | 候选配置 | LoadBalance:26 | 2.277 | 90 | | 候选配置 | LoadBalance:27 | 2.325 | 90 | | 候选配置 | LoadBalance:28 | 2.442 | 90 | | 候选配置 | LoadBalance:29 | 2.416 | 90 | | 候选配置 | LoadBalance:30 | 2.263 | 90 | | 候选配置 | LoadBalance:31 | 2.290 | 90 | | 候选配置 | LoadBalance:32 | 2.423 | 90 | | 候选配置 | LoadBalance:33 | 2.438 | 90 | | 候选配置 | LoadBalance:34 | 2.423 | 90 | | 候选配置 | LoadBalance:35 | 2.419 | 90 | | 候选配置 | LoadBalance:36 | 2.418 | 90 | | 候选配置 | LoadBalance:37 | 2.277 | 90 | | 候选配置 | LoadBalance:38 | 2.270 | 90 | | 候选配置 | LoadBalance:39 | 2.271 | 90 | | 候选配置 | LoadBalance:40 | 2.289 | 90 | | 候选配置 | LoadBalance:41 | 2.271 | 90 | | 候选配置 | LoadBalance:42 | 2.289 | 90 | | 候选配置 | LoadBalance:43 | 2.441 | 90 | | 候选配置 | LoadBalance:44 | 2.414 | 90 | | 候选配置 | LoadBalance:45 | 2.424 | 90 | | 候选配置 | LoadBalance:46 | 2.269 | 90 | | 候选配置 | LoadBalance:47 | 2.274 | 90 | | 候选配置 | LoadBalance:48 | 2.272 | 90 | | 候选配置 | LoadBalance:49 | 2.301 | 90 | | 候选配置 | LoadBalance:50 | 2.275 | 90 | | 候选配置 | LoadBalance:51 | 2.270 | 90 | | 候选配置 | LoadBalance:52 | 2.438 | 90 | | 候选配置 | LoadBalance:53 | 2.413 | 90 | | 候选配置 | LoadBalance:54 | 2.429 | 90 | | **最优配置** | **LoadBalance:55** | **2.261** | **90** | | 候选配置 | LoadBalance:56 | 2.267 | 90 | | 候选配置 | LoadBalance:57 | 2.295 | 90 | | 候选配置 | LoadBalance:58 | 2.287 | 90 | | 候选配置 | LoadBalance:59 | 2.279 | 90 | | 候选配置 | LoadBalance:60 | 2.277 | 90 | | 候选配置 | LoadBalance:61 | 2.445 | 90 | | 候选配置 | LoadBalance:62 | 2.421 | 90 | | 候选配置 | LoadBalance:63 | 2.428 | 90 | | 候选配置 | LoadBalance:64 | 2.272 | 90 | | 候选配置 | MainStream:1 | 2.644 | 90 | | 候选配置 | MainStream:2 | 2.741 | 90 | | 候选配置 | MainStream:3 | 2.662 | 90 | | 候选配置 | MainStream:4 | 2.489 | 90 | | 候选配置 | MainStream:5 | 2.651 | 90 | | 候选配置 | MainStream:6 | 2.613 | 90 | | 候选配置 | MainStream:7 | 2.622 | 90 | | 候选配置 | MainStream:8 | 2.618 | 90 | | 候选配置 | MainStream:9 | 2.453 | 90 | | 候选配置 | MainStream:10 | 2.472 | 90 | | 候选配置 | MainStream:11 | 2.628 | 90 | | 候选配置 | MainStream:12 | 2.625 | 90 | | 候选配置 | MainStream:13 | 2.491 | 90 | | 候选配置 | MainStream:14 | 2.631 | 90 | | 候选配置 | MainStream:15 | 2.466 | 90 | | 候选配置 | MainStream:16 | 2.480 | 90 | | 候选配置 | MainStream:17 | 2.471 | 90 | | 候选配置 | MainStream:18 | 2.483 | 90 | | 候选配置 | MainStream:19 | 2.469 | 90 | | 候选配置 | MainStream:20 | 2.480 | 90 | | 候选配置 | MainStream:21 | 2.505 | 90 | | 候选配置 | MainStream:22 | 2.644 | 90 | | 候选配置 | MainStream:23 | 2.488 | 90 | | 候选配置 | MainStream:24 | 2.643 | 90 | | 候选配置 | MainStream:25 | 2.617 | 90 | | 候选配置 | MainStream:26 | 2.618 | 90 | | 候选配置 | MainStream:27 | 2.612 | 90 | | 候选配置 | MainStream:28 | 2.461 | 90 | | 候选配置 | MainStream:29 | 2.464 | 90 | | 候选配置 | MainStream:30 | 2.623 | 90 | | 候选配置 | MainStream:31 | 2.618 | 90 | | 候选配置 | MainStream:32 | 2.488 | 90 | | 候选配置 | MainStream:33 | 2.625 | 90 | | 候选配置 | MainStream:34 | 2.468 | 90 | | 候选配置 | MainStream:35 | 2.473 | 90 | | 候选配置 | MainStream:36 | 2.475 | 90 | | 候选配置 | MainStream:37 | 2.478 | 90 | | 候选配置 | MainStream:38 | 2.474 | 90 | | 候选配置 | MainStream:39 | 2.479 | 90 | | 候选配置 | MainStream:40 | 2.502 | 90 | | 候选配置 | MainStream:41 | 2.644 | 90 | | 候选配置 | MainStream:42 | 2.494 | 90 | | 候选配置 | MainStream:43 | 2.650 | 90 | | 候选配置 | MainStream:44 | 2.615 | 90 | | 候选配置 | MainStream:45 | 2.623 | 90 | | 候选配置 | MainStream:46 | 2.619 | 90 | | 候选配置 | MainStream:47 | 2.454 | 90 | | 候选配置 | MainStream:48 | 2.471 | 90 | | 候选配置 | MainStream:49 | 2.629 | 90 | | 候选配置 | MainStream:50 | 2.625 | 90 | | 候选配置 | MainStream:51 | 2.493 | 90 | | 候选配置 | MainStream:52 | 2.630 | 90 | | 候选配置 | MainStream:53 | 2.467 | 90 | | 候选配置 | MainStream:54 | 2.480 | 90 | | 候选配置 | MainStream:55 | 2.471 | 90 | | 候选配置 | MainStream:56 | 2.484 | 90 | | 候选配置 | MainStream:57 | 2.470 | 90 | | 候选配置 | MainStream:58 | 2.481 | 90 | | 候选配置 | MainStream:59 | 2.505 | 90 | | 候选配置 | MainStream:60 | 2.638 | 90 | | 候选配置 | MainStream:61 | 2.489 | 90 | | 候选配置 | MainStream:62 | 2.641 | 90 | | 候选配置 | MainStream:63 | 2.618 | 90 | | 候选配置 | MainStream:64 | 2.616 | 90 | ## 最优配置 - **最优配置**:--multi_stream_parallel_mode=LoadBalance:55 - **Base 配置平均耗时**:2.631 ms - **最优配置平均耗时**:2.261 ms - **性能提升**:约 14.1% ## 关键日志 ### Base 配置日志 [INFO] load model /mnt/workspace/projects/ge/examples/acl/5_sample_yolov13/model/yolov13.om success. [INFO] BENCHMARK aclmdlExecute run=0 latency_us=2625 [INFO] BENCHMARK aclmdlExecute run=1 latency_us=2630 [INFO] BENCHMARK aclmdlExecute run=2 latency_us=2633 [INFO] BENCHMARK aclmdlExecute run=3 latency_us=2632 [INFO] BENCHMARK aclmdlExecute run=87 latency_us=2632 [INFO] BENCHMARK aclmdlExecute run=88 latency_us=2628 [INFO] BENCHMARK aclmdlExecute run=89 latency_us=2631 [INFO] Average aclmdlExecute latency: 2.631 ms [INFO] YOLOv13 SAMPLE PASSED. ### 最优配置 LoadBalance:55 日志 [INFO] load model /mnt/workspace/projects/ge/examples/acl/5_sample_yolov13/model/yolov13_LoadBalance_55.om success. [INFO] BENCHMARK aclmdlExecute run=0 latency_us=2269 [INFO] BENCHMARK aclmdlExecute run=1 latency_us=2267 [INFO] BENCHMARK aclmdlExecute run=2 latency_us=2266 [INFO] BENCHMARK aclmdlExecute run=3 latency_us=2258 [INFO] BENCHMARK aclmdlExecute run=87 latency_us=2257 [INFO] BENCHMARK aclmdlExecute run=88 latency_us=2280 [INFO] BENCHMARK aclmdlExecute run=89 latency_us=2285 [INFO] Average aclmdlExecute latency: 2.261 ms [INFO] YOLOv13 SAMPLE PASSED. See merge request: cann/ge!4429 | 22 天前 | |
【PR】:rename user-guides Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !3814 merge develop into develop 【PR】:rename user-guides Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: # Pull Request ## 描述 重命名docs目录下的user-guides为user_guides。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 根据最新目录进行测试 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3814 | 2 个月前 | |
docs: 补充 AnnotatedArgs 地址刷新 Python 资料与样例 Co-authored-by: shangdf<shangdongfang1@huawei.com> # message auto-generated for no-merge-commit merge: !4316 merge feature/annotated-args-python-docs-example into develop docs: 补充 AnnotatedArgs 地址刷新 Python 资料与样例 Created-by: shangdf Commit-by: shangdf Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 从 PR 4254 中拆出 AnnotatedArgs 地址刷新接口 Python 化的资料与可运行样例,降低核心实现 PR 的检视规模。 变更内容: - 更新 GE Python 自定义算子中英文资料,补充 declare_launch_args、AnnotatedArgsContext、显式刷新模式及老 OM 兼容说明。 - 新增 examples/custom_op/annotated_args_refresh_add_custom/python/,覆盖 Python 构图、ATC 离线编译、无 Python 环境加载以及两轮地址刷新执行。 - 本 PR 不包含接口实现和 UT/ST;核心能力由 PR 4254 提供。 依赖关系:本 PR 依赖 PR 4254,需在 PR 4254 合入后再合入。本 PR 暂以 [wip] 标记。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 依赖 PR:https://gitcode.com/cann/ge/pull/4254 ## 如何测试 1. 对全部 15 个变更文件运行 pre-commit run --files ...,所有检查通过。 2. 对 python/run.sh 运行 bash -n,并对 3 个 Python 源文件运行 AST 语法解析,检查通过。 3. example 文件与 PR 4254 拆分前完成 NPU 端到端验证的版本一致;待 PR 4254 核心能力合入后,可按 python/README.md 在真机重新执行完整验证。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 源分支:feature/annotated-args-python-docs-example - 基线:develop(创建分支时对应提交 7494a9777) - 本 PR 仅包含资料和 example,便于与核心实现分别检视。 See merge request: cann/ge!4316 | 29 天前 | |
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: add format continuity check in GraphNodeSettedFormatPass Co-authored-by: lushiming0<lushiming1@h-partners.com> # message auto-generated for no-merge-commit merge: !4338 merge lsmge_20260811 into develop feat: add format continuity check in GraphNodeSettedFormatPass Created-by: lushiming0 Commit-by: lushiming0 Merged-by: cann-robot Description: # Pull Request ## 描述 检查配置文件中修改了 format 的节点,增加检查其输入/输出端口与直连节点之间的 format 是否连续。 ## 变更类型 请选择本次引入的变更类型: <!-- [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!4338 | 28 天前 | |
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: 支持图属性配置自动多流并新增执行打点 变更目的: 为自动多流寻优提供 GE 主仓侧能力,使候选配置可由自定义 Pass 通过根图属性注入, 并让执行侧在调测身份非空时输出可解析的单步耗时打点,供寻优工具采集。 关键改动: 1. 自动多流配置统一化(编译侧) - StreamUtils 新增 GetAutoMultistreamParallelMode/ParseAutoMultistreamParallelMode, 按“根图属性优先、上下文 option 兜底”读取 ge.autoMultistreamParallelMode, 并统一解析为 AutoMultistreamConfig(default/cv/LoadBalance:N/MainStream:N/ WeightedLoadBalance:N,N 取值 [1, 64])。 - dag_stream_allocator_pass、dynamic_stream_allocator、engine_partitioner 改用统一解析, 删除各处重复的格式校验代码。 - register_custom_pass 的 MiniDAGStreamPass 跳过判断同步支持图属性, default 模式仅允许由图属性设置(寻优基准)。 - SingleStreamPass 改为按图属性+option 取值校验,修复图属性方式配置自动多流时 与 ge.enableSingleStream=true 冲突被静默忽略的问题。 2. 调测身份属性透传 - 新增 ATTR_MODEL_AUTO_MULTISTREAM_TUNING_MODE(_auto_multistream_tuning_mode), ModelBuilder 将其从根图写入 Model,随 GeModel/OM 保存。 - GeExecutor/ModelManager/DavinciModel/HybridDavinciModel/ModelV2ExecutorBuilder 补充获取接口,覆盖 V1、Hybrid、V2 三条加载链路。 3. 执行打点 - 新增 base/common/multi_stream_tuning:model_tuning_config 负责从模型取调测身份, step_recorder 负责 STEP 记录(GEEVENT 输出 api/mode/step/start_us/end_us/cost_us/ sync_us/ret,异步接口按 stream 或 device 同步界定完成边界)。 - Session::RunGraph/RunGraphAsync/RunGraphWithStreamAsync/ExecuteGraphWithStreamAsync、 GeSession 同名接口、aclmdlExecute/aclmdlExecuteV2/aclmdlExecuteAsync 接入打点; 调测身份为空时不构造上下文,保持零开销。 4. 配套:base/acl_mdl_impl 构建依赖、设计文档(新增 auto_multistream_tuning.md, 更新 stream_allocator 特性与约束文档)、UT/ST 及 acl/ascendcl 测试桩。 风险与兼容性: - 未配置 ge.autoMultistreamParallelMode 或未设置调测身份属性时行为不变,打点不生效。 - 打点为寻优调测用途,含同步等待,不应在生产态开启。 - OM2、aclmdlExecuteAsyncV2、DFlow 执行链路不打点。 - 行为变更:图属性配置自动多流且同时开启单流时,由静默跳过改为返回参数错误。 验证:新增/补充 UT(stream_utils、model_builder、dag_stream_allocator_pass、 logical_stream_allocator、davinci_model、hybrid_davinci_model、 model_v2_executor_builder、register_custom_pass、step_recorder)与 ST (test_multi_stream_tuning_step_recorder)。 回滚:单独 revert 本提交即可,不影响 examples 目录样例。 | 21 天前 | |
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 个月前 | |
docs: 【直播作业】填写 Recommendation 最优多流配置-v3 (#516) Co-authored-by: nimj<mengjunni00@gmail.com> # message auto-generated for no-merge-commit merge: !4435 merge develop into develop docs: 【直播作业】填写 Recommendation 最优多流配置-v3 (#516) Created-by: nimj Commit-by: nimj Merged-by: cann-robot Description: ## 备注 首次pull request(https://gitcode.com/cann/ge/merge_requests/4433) 使用邮箱错误,cla-check失败,重新提交 ## 描述 【直播作业】填写 Recommendation(DCN v2)样例的最优多流增强参数。 在 CANNLab(Ascend 910C)环境、CANN 社区版 9.2.0-beta.1 下,对 ge.autoMultistreamParallelMode 的 19 个配置(Base + cv + LoadBalance:N + MainStream:N)进行寻优,主评价指标为 Average ExecuteGraphWithStreamAsync latency,最优配置为 **MainStream:9**(0.113322 ms,较 Base 0.189378 ms **降低约 40%**)。 本次变更将 examples/recommendation/README.md 与 README_en.md 中的 <待填写>/<to-be-determined> 替换为 MainStream:9,中英文结论一致。 ## 变更类型 - [x] 📝 文档内容更新 ## 关联的 Issue #516 ## 如何测试 **环境**: - CANNLab:Ascend 910C(Ascend910_9362,单 NPU 双 die,64G HBM),驱动 npu-smi 25.5.5 - CANN 社区版 9.2.0-beta.1(Weekly,A3 系列,AArch64,openEuler,离线安装) - 代码分支:develop **测试环境截图**:  **CANN版本**  **步骤**(每个配置完全一致,仅 --multiStreamParallelMode 变化): bash cd examples/recommendation/build ./recomand_exec --runs=100 --batchSize=128 --multiInstanceNum=1 --multiStreamParallelMode=<模式> 1. Base 配置不传 --multiStreamParallelMode;候选分别传入 cv / LoadBalance:N / MainStream:N 2. 前 10 个成功任务预热不计入,后 90 个成功任务计算算术平均时延 3. 主评价指标:Average ExecuteGraphWithStreamAsync latency(ExecuteGraphWithStreamAsync + aclrtSynchronizeStream) 4. 每个配置日志均显示 Success count: 100,结果有效 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(docs:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 ### 完整测试结果 | 配置角色 | 多流配置 | 主评价指标平均耗时(ms) | 正式统计任务数 | |---|---|---|---| | Base 配置 | 未配置多流参数 | 0.189378(复测 0.189767) | 90 | | 候选配置 | cv | 0.171900 | 90 | | 候选配置 | LoadBalance:2 | 0.164244 | 90 | | 候选配置 | LoadBalance:4 | 0.146511 | 90 | | 候选配置 | LoadBalance:8 | 0.152900 | 90 | | 候选配置 | LoadBalance:16 | 0.144589 | 90 | | 候选配置 | MainStream:2 | 0.148067 | 90 | | 候选配置 | MainStream:4 | 0.124722 | 90 | | 候选配置 | MainStream:6 | 0.120200 | 90 | | 候选配置 | MainStream:7 | 0.118400 | 90 | | 候选配置 | MainStream:8 | 0.117856 | 90 | | **最优配置** | **MainStream:9** | **0.113322** | 90 | | 候选配置 | MainStream:10 | 0.118489 | 90 | | 候选配置 | MainStream:11 | 0.119244 | 90 | | 候选配置 | MainStream:12 | 0.112567 | 90 | | 候选配置 | MainStream:13 | 0.115256 | 90 | | 候选配置 | MainStream:14 | 0.121322 | 90 | | 候选配置 | MainStream:16 | 0.124833 | 90 | ### 最优配置结论 text ge.autoMultistreamParallelMode=MainStream:9 --multiStreamParallelMode=MainStream:9 - Base: 0.189378 ms(复测 0.189767 ms,稳定) - 最优 MainStream:9: 0.113322 ms(复测 0.113233 / 0.114222 ms,波动 <1%,稳定最优) - 时延降低约 40%(0.1894 → 0.1133 ms) > 说明: MainStream:12 初测 0.112567 ms 略低于 MainStream:9,但两次复测为 0.117122 / 0.117811 ms(回落),初测值为波动低点;MainStream:9 三次测量均稳定在 0.113~0.114 ms,故选 MainStream:9 为最优配置。 ### 关键日志(复核用) Base 配置: Run 100 inferences in 1.21777 seconds. Success count: 100 Average ExecuteGraphWithStreamAsync latency: 0.189378 ms 最优配置 MainStream:9(三次测量): Run 100 inferences in 1.99051 seconds. Success count: 100 Average ExecuteGraphWithStreamAsync latency: 0.113322 ms Run 100 inferences in 1.87045 seconds. Success count: 100 Average ExecuteGraphWithStreamAsync latency: 0.113233 ms Run 100 inferences in 1.27304 seconds. Success count: 100 Average ExecuteGraphWithStreamAsync latency: 0.114222 ms **测试截图**  See merge request: cann/ge!4435 | 22 天前 | |
feat: 新增多流自动寻优样例 变更目的: 在 examples 下提供多流自动寻优的最小闭环,基于本仓「图属性配置自动多流 + 执行打点」 能力遍历候选配置并推荐最优配置,覆盖在线与离线(编译机/目标机分离)两种场景。 关键改动: 1. 通用自定义 Pass examples/multi_stream_autotune/custom_pass/ - ge_ms_autotune_pass.cpp 在 kBeforeInferShape 阶段按环境变量 GE_AUTO_MULTISTREAM_PARALLEL_MODE 写入根图的 ge.autoMultistreamParallelMode 与 _auto_multistream_tuning_mode 属性,被测样例无需改代码即可切换候选。 2. 寻优驱动 ge_ms_autotune.py(单入口,仅依赖 Python 3.7+ 标准库) - 在线模式:本机重复执行被测命令,合并 stdout 与 plog 解析 [GE_MS_TUNE][STEP]; - 离线模式:编译机逐候选编译 OM(候选经环境变量注入、属性由 Pass 固化进模型)、 一次性上传目标机,每轮 ssh 执行前清空远端 plog 目录,执行后回传 plog 统一解析, 结束后删除远端工作目录;认证密钥优先,密码仅经 GE_MS_TARGET_PASSWORD 环境变量 和 SSHPASS 传入,不落配置文件、不出现在命令行; - 两种模式共用统计与门禁:按中位耗时排名、相对 default 计算加速比并推荐配置; 退出码、日志格式、STEP mode 与候选一致性、ret/sync_ret、有效步数下限、 STEP 区间重叠六项检查,不合规数据不参与排名并给出原因; - 输出 summary.csv/summary.json 与每轮 stdout.log、steps.csv、独立 plog 目录, 离线另有 om/ 编译产物与远端操作日志。 3. 最小被测样例 sample_run.py:四条独立分支的静态图 + Session 反复执行, 用于验证链路打通,实际寻优应指向真实业务命令。 4. 文档:新增中英文 README,覆盖原理、Pass 安装与卸载、在线与离线用法、目标机配置、 参数、结果解读、数据门禁、STEP 日志格式、常见问题;examples 索引补充入口。 风险与兼容性: - 纯新增样例目录,不参与主仓产品编译,不影响既有功能。 - 依赖本仓「图属性配置自动多流 + 执行打点」提交提供的能力,需配套使用。 - 寻优 Pass 与 STEP 打点含调测同步,仅用于寻优,不可带入生产环境。 - 离线目标机的 remote_workdir 在寻优结束后会被整目录删除,配置已校验为不少于两级的 绝对路径,仍不应指向已有数据目录。 - 不支持断点续跑,长时间离线寻优中断后需重跑,可用 --configs 拆批。 - 寻优需在稳定、独占的性能测试环境执行,结论与环境强相关。 验证: - ruff check / ruff format 通过; - 在线链路:以模拟 STEP 日志的被测命令覆盖正常排名与推荐、Pass 未生效(mode 不一致)、 STEP 区间重叠、日志格式错误、离线 model 身份、参数与结果目录错误等路径; - 离线链路:以 ssh/scp/atc/推理程序桩完成「逐候选编译 → 上传 → 远端执行 → 回传 plog → 解析排名 → 清理远端」全流程验证,并覆盖编译失败中止、单轮远端执行失败仅作废该轮、 目标机配置字段校验(缺字段、workdir 层级、run_command 占位符、端口、私钥、 无 sshpass)与命令行参数组合校验。 回滚:删除 examples/multi_stream_autotune 目录并回退 examples/README* 即可。 | 21 天前 | |
feat: 新增多流自动寻优样例 变更目的: 在 examples 下提供多流自动寻优的最小闭环,基于本仓「图属性配置自动多流 + 执行打点」 能力遍历候选配置并推荐最优配置,覆盖在线与离线(编译机/目标机分离)两种场景。 关键改动: 1. 通用自定义 Pass examples/multi_stream_autotune/custom_pass/ - ge_ms_autotune_pass.cpp 在 kBeforeInferShape 阶段按环境变量 GE_AUTO_MULTISTREAM_PARALLEL_MODE 写入根图的 ge.autoMultistreamParallelMode 与 _auto_multistream_tuning_mode 属性,被测样例无需改代码即可切换候选。 2. 寻优驱动 ge_ms_autotune.py(单入口,仅依赖 Python 3.7+ 标准库) - 在线模式:本机重复执行被测命令,合并 stdout 与 plog 解析 [GE_MS_TUNE][STEP]; - 离线模式:编译机逐候选编译 OM(候选经环境变量注入、属性由 Pass 固化进模型)、 一次性上传目标机,每轮 ssh 执行前清空远端 plog 目录,执行后回传 plog 统一解析, 结束后删除远端工作目录;认证密钥优先,密码仅经 GE_MS_TARGET_PASSWORD 环境变量 和 SSHPASS 传入,不落配置文件、不出现在命令行; - 两种模式共用统计与门禁:按中位耗时排名、相对 default 计算加速比并推荐配置; 退出码、日志格式、STEP mode 与候选一致性、ret/sync_ret、有效步数下限、 STEP 区间重叠六项检查,不合规数据不参与排名并给出原因; - 输出 summary.csv/summary.json 与每轮 stdout.log、steps.csv、独立 plog 目录, 离线另有 om/ 编译产物与远端操作日志。 3. 最小被测样例 sample_run.py:四条独立分支的静态图 + Session 反复执行, 用于验证链路打通,实际寻优应指向真实业务命令。 4. 文档:新增中英文 README,覆盖原理、Pass 安装与卸载、在线与离线用法、目标机配置、 参数、结果解读、数据门禁、STEP 日志格式、常见问题;examples 索引补充入口。 风险与兼容性: - 纯新增样例目录,不参与主仓产品编译,不影响既有功能。 - 依赖本仓「图属性配置自动多流 + 执行打点」提交提供的能力,需配套使用。 - 寻优 Pass 与 STEP 打点含调测同步,仅用于寻优,不可带入生产环境。 - 离线目标机的 remote_workdir 在寻优结束后会被整目录删除,配置已校验为不少于两级的 绝对路径,仍不应指向已有数据目录。 - 不支持断点续跑,长时间离线寻优中断后需重跑,可用 --configs 拆批。 - 寻优需在稳定、独占的性能测试环境执行,结论与环境强相关。 验证: - ruff check / ruff format 通过; - 在线链路:以模拟 STEP 日志的被测命令覆盖正常排名与推荐、Pass 未生效(mode 不一致)、 STEP 区间重叠、日志格式错误、离线 model 身份、参数与结果目录错误等路径; - 离线链路:以 ssh/scp/atc/推理程序桩完成「逐候选编译 → 上传 → 远端执行 → 回传 plog → 解析排名 → 清理远端」全流程验证,并覆盖编译失败中止、单轮远端执行失败仅作废该轮、 目标机配置字段校验(缺字段、workdir 层级、run_command 占位符、端口、私钥、 无 sshpass)与命令行参数组合校验。 回滚:删除 examples/multi_stream_autotune 目录并回退 examples/README* 即可。 | 21 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 22 天前 | ||
| 2 个月前 | ||
| 29 天前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 28 天前 | ||
| 2 个月前 | ||
| 21 天前 | ||
| 2 个月前 | ||
| 22 天前 | ||
| 21 天前 | ||
| 21 天前 |