| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 20 天前 | |
【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 个月前 | |
feat: Python 自定义算子原型执行样例 Co-authored-by: lfz<220252399@seu.edu.cn> # message auto-generated for no-merge-commit merge: !4519 merge develop4-pr3-base into develop feat: Python 自定义算子原型执行样例 Created-by: lfz2812 Commit-by: lfz Merged-by: cann-robot Description: # Pull Request ## 描述 完善 Python 自定义算子公开资料,并将现有 args_refresh_add_custom/python 样例升级为 Python 原型注册、infer-meta 和 PyPTO 执行的端到端样例。 主要变更: - 在 src/ge/add_custom.py 中使用 @register_op 注册 AddPythonCustomOp 原型和 infer-meta。 - infer-meta 校验输入 shape 和 data type,并通过 TensorDesc 返回输出元信息。 - 使用 @register_op_impl 注册 schema-bound execute(x, y) 实现。 - 使用 PyPTO 实现与 add_custom.asc 等价的 z = x + y NPU kernel。 - 通过 DLPack 将 GE device Tensor 零拷贝转换为 torch_npu Tensor,并在 GE 当前 stream 上执行 PyPTO kernel。 - 删除样例原有的 Bisheng 编译、AI Core binary 提取、_load_kernel()、ACL binary 加载和 kernel launch 流程。 - 更新 run.sh,仅生成和安装 ES Python API,并运行 Python Session 样例。 - 移除构图阶段的 _out_shape_locked 属性和手工设置输出 shape、format、data type 的逻辑,输出元信息由 Python infer-meta 提供。 - C++ REG_OP 仅作为 gen_esb 生成 ge.es.custom.AddPythonCustomOp 构造器的输入,不参与运行时原型注册。 - 将 C++ schema 输出名改为 output0,与 Python register_op 对普通非别名输出生成的默认名称保持一致,避免 canonical IR 兼容性检查失败。 - 增加 ge.runtime.TensorDesc 中文 API 文档,并说明其与 ge.graph.TensorDesc 的区别。 - 同步更新中英文设计文档和自定义算子样例说明。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue [#299](https://gitcode.com/cann/ge/issues/299) ## 如何测试 已执行以下静态检查: bash python3 -m py_compile \ examples/custom_op/args_refresh_add_custom/python/src/ge/add_custom.py \ examples/custom_op/args_refresh_add_custom/python/src/run.py bash -n examples/custom_op/args_refresh_add_custom/python/run.sh git diff --check 已针对全部变更文件执行 pre-commit,以下检查均通过: - trim trailing whitespace - fix end of files - clang-format - ruff check - ruff format - codespell - OAT Compliance Check NPU 环境验收步骤: source ${ASCEND_HOME_PATH}/set_env.sh cd examples/custom_op/args_refresh_add_custom/python bash run.sh ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - args_refresh_add_custom/cpp/add_custom_kernel/add_custom.asc 继续供 C++ 样例使用,并作为 PyPTO 加法实现的逻辑参考;Python 样例运行时不再编译或加载该文件。 - 当前 PyPTO 样例支持 DT_FLOAT 和连续的确定 Storage Shape。 - GE 保持输入和输出 device memory 的所有权,DLPack deleter 仅释放 Python 侧临时元数据。 - C++ REG_OP 输出名必须与 Python canonical proto 保持一致。当前普通非别名输出使用默认名称 output0。 - 当前环境未配置完整的 CANN、PyPTO 和 torch_npu NPU 运行环境,真机执行需要在对应 NPU 环境完成。1. - See merge request: cann/ge!4519 | 7 天前 | |
fix: 用户指定soc version和设备数量时跳过npu-smi调用 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !4670 merge dflow_clean into develop fix: 用户指定soc version和设备数量时跳过npu-smi调用 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: # Pull Request ## 描述 create_numa_config.py 脚本的两处问题修复: **1. npu-smi 调用时机问题**:npu-smi 仅用于获取 soc_version 和设备数量,原逻辑无论用户是否通过参数指定这两项,都会先调用 npu-smi,在无 npu-smi 命令的环境中会打印告警。 - main() 中先判断用户是否同时指定了 --soc-version 和 --total-dev,若是则完全跳过 npu-smi 调用 - 仅在缺省或部分指定时才调用 npu-smi,不可用时打印 Warning 日志并回退默认值 **2. PermissionError 逃逸问题**:实际环境发现 npu-smi 存在但当前用户无执行权限时,抛出 PermissionError: [Errno 13] Permission denied 导致脚本崩溃,未走默认值回退。 - 三处 subprocess 调用的异常捕获统一改为 (subprocess.SubprocessError, OSError),覆盖 PermissionError 等所有执行失败场景 - Warning 消息中带上失败原因(如 [Errno 13] Permission denied),便于诊断 **其他**: - 模块 docstring 补充 npu-smi/hccn_tool/hostname 三个依赖工具的用途、调用时机和回退行为说明 - 三个依赖工具不可用时的消息统一改为 Warning: 前缀输出到 stderr - 4 个 README 更新为显式指定为可选(默认值不符时才需指定) ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. mock 无执行权限的 npu-smi(chmod 644):验证打印含 [Errno 13] Permission denied 的 Warning 并回退默认值,脚本正常完成(exit 0) 2. --soc-version Ascend910B3 --total-dev 4:验证不调用 npu-smi,无 Warning,生成 4 卡配置 3. 不带参数:验证调用 npu-smi,不可用时打印 Warning 回退默认 8 卡 4. 只带 --soc-version:验证仍调用 npu-smi(total_dev 缺省) ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 此问题在实际环境使用中发现:部分环境 npu-smi 存在但当前用户无执行权限,原脚本异常捕获只覆盖 FileNotFoundError 等,导致 PermissionError 逃逸崩溃。 See merge request: cann/ge!4670 | 5 天前 | |
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: 完善 HostCPU 自定义算子的引擎选择 Co-authored-by: du-hua1024<duhua2@huawei.com> # message auto-generated for no-merge-commit merge: !4630 merge new into develop fix: 完善 HostCPU 自定义算子的引擎选择 Created-by: du-hua1024 Commit-by: du-hua1024 Merged-by: cann-robot Description: # Pull Request ## 描述 完善 HostCPU 自定义算子的引擎选择,保证 HostCPU 自定义实现不会被普通 HostCPU 引擎覆盖: - 在 EnginePlacer 节点指定engine时,不会进入DNNEngineManager 选择引擎,因此补充逻辑,在完成引擎选择后,仅对已选择 DNN_VM_HOST_CPU 且存在 HostCPU 自定义实现的节点切换为 DNN_VM_CUSTOM。 - 保留 DNNEngineManager 原有的显式 Host 放置、直接引擎选择及 HostCPU custom 回退逻辑,兼容无普通 HostCPU kernel store 的场景。 - 增加引擎字段、引擎属性和设备引擎保护场景的 UT。 - 修正融合示例中 GEMM scalar 常量的类型为 float,适配当前算子优化支持范围。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 - 已补充 EnginePlacer HostCPU custom 相关 UT。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 无 See merge request: cann/ge!4630 | 9 天前 | |
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: 支持自动多流配置与自动寻优工作流 Co-authored-by: KenChow<zhouchen53@huawei.com> # message auto-generated for no-merge-commit merge: !4301 merge multi_stream_custom_pass into develop feat: 支持自动多流配置与自动寻优工作流 Created-by: KenChow Commit-by: KenChow Merged-by: cann-robot Description: # Pull Request ## 描述 新增 GE 自动多流的配置入口与自动寻优工作流,使用户无需修改模型代码即可选择、验证并挑选最优的多流并行策略。 **1. 自动多流配置入口(compiler)** - StreamUtils 新增 AutoMultistreamMode / AutoMultistreamConfig,统一解析 ge.autoMultistreamParallelMode 的取值:cv、LoadBalance:N、MainStream:N、WeightedLoadBalance:N(N 取值 [1, 64]),以及仅允许由自定义 Pass 通过图属性下发的 default。 - 模式来源从「仅 option」扩展为「option + 根图同名图属性」,图属性优先,便于自定义 Pass 在编译期动态切换策略。 - 收敛 LogicalStreamAllocator、EnginePartitioner 与 MiniDAGStreamPass 的门控逻辑,统一走上述解析结果,非法取值统一报错。 **2. 执行步骤打点(runtime/v1)** - 新增 runtime/v1/common/multi_stream_tuning:model_tuning_config 通过模型属性 _auto_multistream_tuning_mode 识别调优态;step_recorder 提供 RAII 的 StepScope,按 STEP 日志输出单步耗时。 - 非调优态(mode 为空)退化为空对象,不取时间戳、不分配资源,生产路径零开销;同线程仅统计最外层执行,避免嵌套重复打点。 - 打点接入 DavinciModel(NnExecute / Run)与 RT2.0 ModelV2Executor,覆盖 ACL、静态执行器、Hybrid 与 RT2.0 四条执行路径。 **3. 自动寻优样例(examples/multi_stream_autotune)** - ge_ms_autotune.py:候选模式批量编译、OM 复用、输出一致性校验、耗时统计与最优策略推荐。 - 配套自定义 Pass(下发 auto_multistream_tuning_graph 图属性)、sample_run.py 运行脚本及中英文 README。 **4. 测试** - 新增/补充 UT 与 ST,覆盖模式解析与非法值分支、门控跳过分支、打点记录与执行器集成路径。 ## 变更类型 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无关联 Issue。 ## 如何测试 前提条件:已安装 CANN Toolkit,并 source <ASCEND_INSTALL_PATH>/set_env.sh。 1. 编译 UT/ST: bash cmake -DCMAKE_BUILD_TYPE=GCOV -DENABLE_OPEN_SRC=True -DENABLE_GE_UT=ON -DENABLE_GE_ST=ON \ -DENABLE_TEST=True -DENABLE_PKG=ON -DASCEND_INSTALL_PATH=${ASCEND_INSTALL_PATH} \ -S . -B cmake-build-gcov make -C cmake-build-gcov ut_libge_multiparts_utest ut_libge_distinct_load_utest \ ut_fast_runtime2_test graph_engine_test st_fast_runtime2_test -j$(nproc) 2. 执行本次新增/修改的用例: bash unset LD_LIBRARY_PATH; unset ASCEND_OPP_PATH ./cmake-build-gcov/ut_libge_multiparts_utest --gtest_filter='*MultiStreamTuning*:*StreamUtils*:*DagStreamAllocatorPass*' ./cmake-build-gcov/ut_libge_distinct_load_utest --gtest_filter='*DavinciModel*' ./cmake-build-gcov/ut_fast_runtime2_test --gtest_filter='*CustomPass*:*ModelV2ExecutorBuilder*' ./cmake-build-gcov/graph_engine_test --gtest_filter='*MultiStreamTuning*:*DagStreamAllocatorPass*' ./cmake-build-gcov/st_fast_runtime2_test --gtest_filter='*MultiStream*' 3. 运行自动寻优样例(端到端): bash cd examples/multi_stream_autotune # 编译并安装寻优自定义 Pass cmake -S custom_pass -B build && cmake --build build --parallel # 单独跑一次被测样例,确认多流生效 GE_AUTO_MULTISTREAM_PARALLEL_MODE=LoadBalance:4 python3 sample_run.py --steps 12 --dim 512 # 批量寻优并查看推荐结果 python3 ge_ms_autotune.py --run-command "python3 sample_run.py --steps 12" \ --strategies LoadBalance,MainStream --streams 2,4,8 --repeat 3 --output-dir ./tune_out 预期:各候选配置的 STEP 打点被正确解析,输出耗时排名与推荐配置;详细步骤与参数见 examples/multi_stream_autotune/README.md。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 本 PR 不改变默认行为:未配置 ge.autoMultistreamParallelMode 时编译流程与打点逻辑保持原状。 - git diff --check origin/develop...HEAD 的行尾提示仅涉及 3 个上游原本即全量使用 CRLF 的测试文件,本次保持其既有行尾格式,未引入行尾转换。 See merge request: cann/ge!4301 | 18 天前 | |
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 Python ONNX graph callbacks Co-authored-by: gentle-knight<522025150054@smail.nju.edu.cn> # message auto-generated for no-merge-commit merge: !4583 merge feat/onnx-plugin-python-pr4-graph-callbacks-submit into develop feat: add Python ONNX graph callbacks Created-by: gentle-knight Commit-by: gentle-knight Merged-by: cann-robot Description: ## Pull Request ### 描述 将 Python ONNX Plugin 的 Graph callback 接入现有 ONNX parser,合并支持一对多图展开和子图后处理。复用现有 GraphBuilder、ParserUtils::ExpandOneToManyGraph 及 ParseSubgraphPostFn/ParseSubgraphFuncV2,不新增 onnx_node.py、Operator pybind 或第二套 parser 流程。 ### 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ### 关联的Issue 无。 ### 如何测试 1. Python registry/bridge 测试:39 项通过。 2. ge_python_onnx_plugin_bridge 增量构建通过。 3. 新增 C++ bridge UT 与 ONNX parser ST 源文件编译通过。 4. parser ST 覆盖真实 ONNX 一对多展开及 If 子图 callback;本地最终运行受 CANN 9.2 开发包缺失符号影响,交由远程 CI 验证。 ### 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ### 其他信息 本 PR 基于已合入 PR3 的最新 develop,仅包含一个代码 commit,代码增量为 523 行新增、4 行删除。设计与评审记录已更新在本地文档,未混入代码 commit。 See merge request: cann/ge!4583 | 10 天前 | |
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 | 20 天前 | |
feat: add Python ONNX graph callbacks Co-authored-by: gentle-knight<522025150054@smail.nju.edu.cn> # message auto-generated for no-merge-commit merge: !4583 merge feat/onnx-plugin-python-pr4-graph-callbacks-submit into develop feat: add Python ONNX graph callbacks Created-by: gentle-knight Commit-by: gentle-knight Merged-by: cann-robot Description: ## Pull Request ### 描述 将 Python ONNX Plugin 的 Graph callback 接入现有 ONNX parser,合并支持一对多图展开和子图后处理。复用现有 GraphBuilder、ParserUtils::ExpandOneToManyGraph 及 ParseSubgraphPostFn/ParseSubgraphFuncV2,不新增 onnx_node.py、Operator pybind 或第二套 parser 流程。 ### 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ### 关联的Issue 无。 ### 如何测试 1. Python registry/bridge 测试:39 项通过。 2. ge_python_onnx_plugin_bridge 增量构建通过。 3. 新增 C++ bridge UT 与 ONNX parser ST 源文件编译通过。 4. parser ST 覆盖真实 ONNX 一对多展开及 If 子图 callback;本地最终运行受 CANN 9.2 开发包缺失符号影响,交由远程 CI 验证。 ### 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ### 其他信息 本 PR 基于已合入 PR3 的最新 develop,仅包含一个代码 commit,代码增量为 523 行新增、4 行删除。设计与评审记录已更新在本地文档,未混入代码 commit。 See merge request: cann/ge!4583 | 10 天前 | |
feat: add Python ONNX graph callbacks Co-authored-by: gentle-knight<522025150054@smail.nju.edu.cn> # message auto-generated for no-merge-commit merge: !4583 merge feat/onnx-plugin-python-pr4-graph-callbacks-submit into develop feat: add Python ONNX graph callbacks Created-by: gentle-knight Commit-by: gentle-knight Merged-by: cann-robot Description: ## Pull Request ### 描述 将 Python ONNX Plugin 的 Graph callback 接入现有 ONNX parser,合并支持一对多图展开和子图后处理。复用现有 GraphBuilder、ParserUtils::ExpandOneToManyGraph 及 ParseSubgraphPostFn/ParseSubgraphFuncV2,不新增 onnx_node.py、Operator pybind 或第二套 parser 流程。 ### 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ### 关联的Issue 无。 ### 如何测试 1. Python registry/bridge 测试:39 项通过。 2. ge_python_onnx_plugin_bridge 增量构建通过。 3. 新增 C++ bridge UT 与 ONNX parser ST 源文件编译通过。 4. parser ST 覆盖真实 ONNX 一对多展开及 If 子图 callback;本地最终运行受 CANN 9.2 开发包缺失符号影响,交由远程 CI 验证。 ### 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ### 其他信息 本 PR 基于已合入 PR3 的最新 develop,仅包含一个代码 commit,代码增量为 523 行新增、4 行删除。设计与评审记录已更新在本地文档,未混入代码 commit。 See merge request: cann/ge!4583 | 10 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 20 天前 | ||
| 2 个月前 | ||
| 7 天前 | ||
| 5 天前 | ||
| 2 个月前 | ||
| 9 天前 | ||
| 2 个月前 | ||
| 18 天前 | ||
| 2 个月前 | ||
| 10 天前 | ||
| 20 天前 | ||
| 10 天前 | ||
| 10 天前 |