本项目提供CANN运行时组件和维测功能组件。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【PR】: 迁移ErrorMessage整改相关的SKILL Co-authored-by: guo-yanjun<guoyanjun3@huawei.com> # message auto-generated for no-merge-commit merge: !4171 merge add_err_msg_skill_to_codex into master 【PR】: 迁移ErrorMessage整改相关的SKILL Created-by: guo-yanjun Commit-by: guo-yanjun Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 将 Runtime 仓内 4 个专用 Skill 从 .claude/skills 迁移至统一的 .agents/skills,使 Codex、Claude Code 和 OpenCode 可以复用同一份 Skill 资源,避免按 Agent 重复维护。 主要变更如下: 1. 将 errmsg-codegen、errmsg-ut-setup、runtime-code-review、runtime-errmsg-rectification 及其脚本、附录和参考资料迁移至 .agents/skills。 2. 为 errmsg-codegen 和 errmsg-ut-setup 补齐标准 name、description 元数据,并调整 runtime-errmsg-rectification 元数据和参数获取方式,以适配通用 Agent Skill 发现机制。 3. 完善 errmsg-codegen 工作流:改用结构化 JSON 精确查询,增加重复项检查、空参数处理、占位符数量校验,以及按现有顺序插入或更新错误码元数据和 UT 数据的约束。 4. 完善 errmsg-ut-setup 工作流:补齐附录链接和本地验证命令说明,并增加保护用户 worktree、避免误覆盖或误清理已有改动的约束。 5. 将 runtime-code-review 中的共享规则、脚本和命令路径改为 .agents/skills 下的相对链接或统一路径,保证迁移后资源可正确定位。 6. 更新 OpenCode 中英文说明,补充 errmsg-codegen Skill 的能力和触发方式。 本次变更仅涉及 Agent Skill 资源布局、工作流说明和 OpenCode 文档,不修改 Runtime 业务代码及对外接口。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> 无。 ## 如何测试 描述测试此变更的步骤和前提条件: 1. 执行 git diff --check origin/master...HEAD,确认变更不存在空白符错误。 2. 检查 4 个 SKILL.md,确认均包含可识别的 name 和 description 元数据。 3. 检查 .agents/skills 下 Markdown 相对链接,确认引用的规则、脚本、附录和参考文档均可解析。 4. 检查迁移后的 4 个 Skill 及 OpenCode 清单,确认不存在指向其旧 .claude/skills 位置的路径。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 See merge request: cann/runtime!4171 | 14 天前 | |
【PR】: 修正模型运行实例管理 API 文档文件名中连续两个下划线的问题 Co-authored-by: weixin_62313844<ljx16602726985@163.com> # message auto-generated for no-merge-commit merge: !4494 merge codex/fix-model-instance-doc-name into master 【PR】: 修正模型运行实例管理 API 文档文件名中连续两个下划线的问题 Created-by: weixin_62313844 Commit-by: weixin_62313844 Merged-by: cann-robot Description: # Pull Request ## 描述 修正模型运行实例管理 API 文档文件名中存在连续两个下划线的问题: - 原文件名: 15_model_running_instance__management.md - 新文件名:15_model_running_instance_management.md - 同步更新 docs/zh 中相关 Markdown 链接 - 同步更新文档内部的 @ref 路径 - 保留上游 master 中对该文档的最新修改 ## 变更类型 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无关联 Issue。 ## 如何测试 1. 检查 docs/zh/api_ref 目录,确认文件名已修改为: ```text 15_model_running_instance_management.md See merge request: cann/runtime!4494 | 12 天前 | |
【PR】: fix issue 741 Co-authored-by: duanpengliang<duanpengliang@huawei.com> # message auto-generated for no-merge-commit merge: !3704 merge master2 into master 【PR】: fix issue 741 Created-by: duanpengliang Commit-by: duanpengliang Merged-by: cann-robot Description: # Pull Request ## 描述 修复issue 741 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue https://gitcode.com/cann/runtime/issues/741 ## 如何测试 描述测试此变更的步骤和前提条件: docker里执行bash build.sh没有问题 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!3704 | 1 个月前 | |
【PR】: fix: 简要描述 修改actions流水线机器资源 Co-authored-by: liuyi<larry.liuyi@huawei.com> # message auto-generated for no-merge-commit merge: !4359 merge master into master 【PR】: fix: 简要描述 修改actions流水线机器资源 Created-by: Larry_liuyi Commit-by: liuyi Merged-by: cann-robot Description: # Pull Request ## 描述 请清晰准确地描述本次 Pull Request 的意图和变更内容。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 修改actions流水线机器资源 ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4359 | 19 天前 | |
【PR】: 迁移ErrorMessage整改相关的SKILL Co-authored-by: guo-yanjun<guoyanjun3@huawei.com> # message auto-generated for no-merge-commit merge: !4171 merge add_err_msg_skill_to_codex into master 【PR】: 迁移ErrorMessage整改相关的SKILL Created-by: guo-yanjun Commit-by: guo-yanjun Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 将 Runtime 仓内 4 个专用 Skill 从 .claude/skills 迁移至统一的 .agents/skills,使 Codex、Claude Code 和 OpenCode 可以复用同一份 Skill 资源,避免按 Agent 重复维护。 主要变更如下: 1. 将 errmsg-codegen、errmsg-ut-setup、runtime-code-review、runtime-errmsg-rectification 及其脚本、附录和参考资料迁移至 .agents/skills。 2. 为 errmsg-codegen 和 errmsg-ut-setup 补齐标准 name、description 元数据,并调整 runtime-errmsg-rectification 元数据和参数获取方式,以适配通用 Agent Skill 发现机制。 3. 完善 errmsg-codegen 工作流:改用结构化 JSON 精确查询,增加重复项检查、空参数处理、占位符数量校验,以及按现有顺序插入或更新错误码元数据和 UT 数据的约束。 4. 完善 errmsg-ut-setup 工作流:补齐附录链接和本地验证命令说明,并增加保护用户 worktree、避免误覆盖或误清理已有改动的约束。 5. 将 runtime-code-review 中的共享规则、脚本和命令路径改为 .agents/skills 下的相对链接或统一路径,保证迁移后资源可正确定位。 6. 更新 OpenCode 中英文说明,补充 errmsg-codegen Skill 的能力和触发方式。 本次变更仅涉及 Agent Skill 资源布局、工作流说明和 OpenCode 文档,不修改 Runtime 业务代码及对外接口。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> 无。 ## 如何测试 描述测试此变更的步骤和前提条件: 1. 执行 git diff --check origin/master...HEAD,确认变更不存在空白符错误。 2. 检查 4 个 SKILL.md,确认均包含可识别的 name 和 description 元数据。 3. 检查 .agents/skills 下 Markdown 相对链接,确认引用的规则、脚本、附录和参考文档均可解析。 4. 检查迁移后的 4 个 Skill 及 OpenCode 清单,确认不存在指向其旧 .claude/skills 位置的路径。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 See merge request: cann/runtime!4171 | 14 天前 | |
【PR】: mv core/api_impl->api/impl Co-authored-by: duanpengliang<duanpengliang@huawei.com> # message auto-generated for no-merge-commit merge: !3999 merge master into master 【PR】: mv core/api_impl->api/impl Created-by: duanpengliang Commit-by: duanpengliang Merged-by: cann-robot Description: # Pull Request ## 描述 把core/api_impl移动到api/impl,同时修复根据驱动生成的桩.so缺失符号问题 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [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/runtime!3999 | 22 天前 | |
feat: 新增aclrtBinaryEnumerateFunctions接口 Co-authored-by: chenyang<2082464740@qq.com> # message auto-generated for no-merge-commit merge: !4534 merge aclbef into master feat: 新增aclrtBinaryEnumerateFunctions接口 Created-by: weixin_51634168 Commit-by: chenyang Merged-by: cann-robot Description: # feat: 新增aclrtBinaryEnumerateFunctions接口 ## 描述 新增“枚举二进制模块中核函数句柄”能力,包含 RT 内部接口 rtBinaryEnumerateFunctions 及 ACL 对外封装 aclrtBinaryEnumerateFunctions。行为对齐 CUDA cuModuleEnumerateFunctions:按 Program::kernelNameMap_ 存储顺序返回句柄,实际填入个数为 min(numFunctions, 模块内函数数);numFunctions 为 0 时不写入任何句柄,接口直接返回成功。 **RT 层:** - 接口声明位于 src/inc/runtime/inner_kernel.h(非仓间接口);C 层入口 src/runtime/api/api_c_standard_soc.cc 负责句柄解包,经 InitEmbeddedInnerHandle/ExportEmbeddedHandle 导出 rtFuncHandle;api_c_tiny_stub.cc 打桩返回不支持 - Api 分层链路逐层转发:api_error.cc 做空指针校验(binHandle/funcHandles/actualCount),api_decorator.cc 透传;本接口不做 profiling 打点 - ApiImpl::BinaryEnumerateFunctions 按职责拆分为两个私有接口: - PrepareProgramForEnumerate:非 XPU 平台经 Program::CopySoAndNameToCurrentDevice 将二进制及名称按设备惰性拷贝下发(每设备仅一次);XPU 平台不拷贝,仅取 device id - CollectEnumerateKernels:遍历 kernelNameMap_ 收集句柄,按 min(numFunctions, 实际函数数) 预留并截断;XPU 下逐 kernel 设置 literal name 设备地址 **ACL 层:** - 新增对外接口 aclError aclrtBinaryEnumerateFunctions(const aclrtBinHandle binHandle, aclrtFuncHandle* funcHandles, uint32_t numFunctions)(include/external/acl/acl_rt.h),经 ACL_RT_FUNC_MAP 宏机制生成公开符号;aclrtBinaryEnumerateFunctionsImpl 空指针校验后透传 RT 层,底层错误码(含平台不支持)直接回传 **文档与示例:** - 补充 docs/zh/api_ref/14_kerne_loading_and_execution.md 接口文档(含 min 语义及 numFunctions=0 行为说明) - 新增上机示例 example/2_advanced_features/kernel/2_binary_enumerate_functions/:将 add_custom/sub_custom/mul_custom 三个 AscendC Kernel(kernel/custom.cpp)编译为同一个独立算子二进制,演示完整使用链路——aclrtBinaryLoadFromFile Host 侧加载解析;首次调用 aclrtBinaryEnumerateFunctions 触发二进制到当前 Context 对应 Device 的拷贝,并枚举出 3 个核函数句柄;再用 aclrtGetFunctionName/aclrtGetFunctionAddr 查询函数名与 Device 代码地址、aclrtBinaryGetDevAddress 打印二进制 Device 地址;最后通过 aclrtLaunchKernelWithHostArgs 分别下发三个 Kernel 并校验 FP16 计算结果。配套 CMakeLists.txt、run.sh 一键编译运行脚本及中英文 README。 **example测试结果:** text [INFO] Enumerating functions and copying the binary from Host to Device [INFO] Binary copied to Device: address=0x124000001000, size=7828 bytes [INFO] function[0]: name=add_custom, handle=0xaaab14b41798, aic=(nil), aiv=0x124000001000 [INFO] function[1]: name=mul_custom, handle=0xaaab14b41cc8, aic=(nil), aiv=0x124000001a30 [INFO] function[2]: name=sub_custom, handle=0xaaab14b421f8, aic=(nil), aiv=0x124000002460 [INFO] add_custom result verified [INFO] sub_custom result verified [INFO] mul_custom result verified [SUCCESS] aclrtBinaryEnumerateFunctions sample passed ## 变更类型 - [x] ✨ 新功能 ## 关联的Issue ## 如何测试 1. bash build.sh 编译通过 2. 新增 UT 全量通过:tests/ut/runtime/runtime/test/platform/910B/rt_utest_api_kernel.cc 中 BinaryEnumerateFunctions 相关用例(成功、空 binHandle、参数校验、numFunctions 小于/大于实际个数、空 program、拷贝下发失败、decorator 转发、numFunctions=0),tests/ut/acl/testcase/acl_runtime_unittest.cpp 中 ACL 层用例;tests/depends 打桩已同步 3. 示例 example/2_advanced_features/kernel/2_binary_enumerate_functions/main.cpp 上机验证枚举与 kernel launch ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/runtime!4534 | 12 天前 | |
feat: 新增aclrtBinaryEnumerateFunctions接口 Co-authored-by: chenyang<2082464740@qq.com> # message auto-generated for no-merge-commit merge: !4534 merge aclbef into master feat: 新增aclrtBinaryEnumerateFunctions接口 Created-by: weixin_51634168 Commit-by: chenyang Merged-by: cann-robot Description: # feat: 新增aclrtBinaryEnumerateFunctions接口 ## 描述 新增“枚举二进制模块中核函数句柄”能力,包含 RT 内部接口 rtBinaryEnumerateFunctions 及 ACL 对外封装 aclrtBinaryEnumerateFunctions。行为对齐 CUDA cuModuleEnumerateFunctions:按 Program::kernelNameMap_ 存储顺序返回句柄,实际填入个数为 min(numFunctions, 模块内函数数);numFunctions 为 0 时不写入任何句柄,接口直接返回成功。 **RT 层:** - 接口声明位于 src/inc/runtime/inner_kernel.h(非仓间接口);C 层入口 src/runtime/api/api_c_standard_soc.cc 负责句柄解包,经 InitEmbeddedInnerHandle/ExportEmbeddedHandle 导出 rtFuncHandle;api_c_tiny_stub.cc 打桩返回不支持 - Api 分层链路逐层转发:api_error.cc 做空指针校验(binHandle/funcHandles/actualCount),api_decorator.cc 透传;本接口不做 profiling 打点 - ApiImpl::BinaryEnumerateFunctions 按职责拆分为两个私有接口: - PrepareProgramForEnumerate:非 XPU 平台经 Program::CopySoAndNameToCurrentDevice 将二进制及名称按设备惰性拷贝下发(每设备仅一次);XPU 平台不拷贝,仅取 device id - CollectEnumerateKernels:遍历 kernelNameMap_ 收集句柄,按 min(numFunctions, 实际函数数) 预留并截断;XPU 下逐 kernel 设置 literal name 设备地址 **ACL 层:** - 新增对外接口 aclError aclrtBinaryEnumerateFunctions(const aclrtBinHandle binHandle, aclrtFuncHandle* funcHandles, uint32_t numFunctions)(include/external/acl/acl_rt.h),经 ACL_RT_FUNC_MAP 宏机制生成公开符号;aclrtBinaryEnumerateFunctionsImpl 空指针校验后透传 RT 层,底层错误码(含平台不支持)直接回传 **文档与示例:** - 补充 docs/zh/api_ref/14_kerne_loading_and_execution.md 接口文档(含 min 语义及 numFunctions=0 行为说明) - 新增上机示例 example/2_advanced_features/kernel/2_binary_enumerate_functions/:将 add_custom/sub_custom/mul_custom 三个 AscendC Kernel(kernel/custom.cpp)编译为同一个独立算子二进制,演示完整使用链路——aclrtBinaryLoadFromFile Host 侧加载解析;首次调用 aclrtBinaryEnumerateFunctions 触发二进制到当前 Context 对应 Device 的拷贝,并枚举出 3 个核函数句柄;再用 aclrtGetFunctionName/aclrtGetFunctionAddr 查询函数名与 Device 代码地址、aclrtBinaryGetDevAddress 打印二进制 Device 地址;最后通过 aclrtLaunchKernelWithHostArgs 分别下发三个 Kernel 并校验 FP16 计算结果。配套 CMakeLists.txt、run.sh 一键编译运行脚本及中英文 README。 **example测试结果:** text [INFO] Enumerating functions and copying the binary from Host to Device [INFO] Binary copied to Device: address=0x124000001000, size=7828 bytes [INFO] function[0]: name=add_custom, handle=0xaaab14b41798, aic=(nil), aiv=0x124000001000 [INFO] function[1]: name=mul_custom, handle=0xaaab14b41cc8, aic=(nil), aiv=0x124000001a30 [INFO] function[2]: name=sub_custom, handle=0xaaab14b421f8, aic=(nil), aiv=0x124000002460 [INFO] add_custom result verified [INFO] sub_custom result verified [INFO] mul_custom result verified [SUCCESS] aclrtBinaryEnumerateFunctions sample passed ## 变更类型 - [x] ✨ 新功能 ## 关联的Issue ## 如何测试 1. bash build.sh 编译通过 2. 新增 UT 全量通过:tests/ut/runtime/runtime/test/platform/910B/rt_utest_api_kernel.cc 中 BinaryEnumerateFunctions 相关用例(成功、空 binHandle、参数校验、numFunctions 小于/大于实际个数、空 program、拷贝下发失败、decorator 转发、numFunctions=0),tests/ut/acl/testcase/acl_runtime_unittest.cpp 中 ACL 层用例;tests/depends 打桩已同步 3. 示例 example/2_advanced_features/kernel/2_binary_enumerate_functions/main.cpp 上机验证枚举与 kernel launch ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/runtime!4534 | 12 天前 | |
feat: 新增aclrtBinaryEnumerateFunctions接口 Co-authored-by: chenyang<2082464740@qq.com> # message auto-generated for no-merge-commit merge: !4534 merge aclbef into master feat: 新增aclrtBinaryEnumerateFunctions接口 Created-by: weixin_51634168 Commit-by: chenyang Merged-by: cann-robot Description: # feat: 新增aclrtBinaryEnumerateFunctions接口 ## 描述 新增“枚举二进制模块中核函数句柄”能力,包含 RT 内部接口 rtBinaryEnumerateFunctions 及 ACL 对外封装 aclrtBinaryEnumerateFunctions。行为对齐 CUDA cuModuleEnumerateFunctions:按 Program::kernelNameMap_ 存储顺序返回句柄,实际填入个数为 min(numFunctions, 模块内函数数);numFunctions 为 0 时不写入任何句柄,接口直接返回成功。 **RT 层:** - 接口声明位于 src/inc/runtime/inner_kernel.h(非仓间接口);C 层入口 src/runtime/api/api_c_standard_soc.cc 负责句柄解包,经 InitEmbeddedInnerHandle/ExportEmbeddedHandle 导出 rtFuncHandle;api_c_tiny_stub.cc 打桩返回不支持 - Api 分层链路逐层转发:api_error.cc 做空指针校验(binHandle/funcHandles/actualCount),api_decorator.cc 透传;本接口不做 profiling 打点 - ApiImpl::BinaryEnumerateFunctions 按职责拆分为两个私有接口: - PrepareProgramForEnumerate:非 XPU 平台经 Program::CopySoAndNameToCurrentDevice 将二进制及名称按设备惰性拷贝下发(每设备仅一次);XPU 平台不拷贝,仅取 device id - CollectEnumerateKernels:遍历 kernelNameMap_ 收集句柄,按 min(numFunctions, 实际函数数) 预留并截断;XPU 下逐 kernel 设置 literal name 设备地址 **ACL 层:** - 新增对外接口 aclError aclrtBinaryEnumerateFunctions(const aclrtBinHandle binHandle, aclrtFuncHandle* funcHandles, uint32_t numFunctions)(include/external/acl/acl_rt.h),经 ACL_RT_FUNC_MAP 宏机制生成公开符号;aclrtBinaryEnumerateFunctionsImpl 空指针校验后透传 RT 层,底层错误码(含平台不支持)直接回传 **文档与示例:** - 补充 docs/zh/api_ref/14_kerne_loading_and_execution.md 接口文档(含 min 语义及 numFunctions=0 行为说明) - 新增上机示例 example/2_advanced_features/kernel/2_binary_enumerate_functions/:将 add_custom/sub_custom/mul_custom 三个 AscendC Kernel(kernel/custom.cpp)编译为同一个独立算子二进制,演示完整使用链路——aclrtBinaryLoadFromFile Host 侧加载解析;首次调用 aclrtBinaryEnumerateFunctions 触发二进制到当前 Context 对应 Device 的拷贝,并枚举出 3 个核函数句柄;再用 aclrtGetFunctionName/aclrtGetFunctionAddr 查询函数名与 Device 代码地址、aclrtBinaryGetDevAddress 打印二进制 Device 地址;最后通过 aclrtLaunchKernelWithHostArgs 分别下发三个 Kernel 并校验 FP16 计算结果。配套 CMakeLists.txt、run.sh 一键编译运行脚本及中英文 README。 **example测试结果:** text [INFO] Enumerating functions and copying the binary from Host to Device [INFO] Binary copied to Device: address=0x124000001000, size=7828 bytes [INFO] function[0]: name=add_custom, handle=0xaaab14b41798, aic=(nil), aiv=0x124000001000 [INFO] function[1]: name=mul_custom, handle=0xaaab14b41cc8, aic=(nil), aiv=0x124000001a30 [INFO] function[2]: name=sub_custom, handle=0xaaab14b421f8, aic=(nil), aiv=0x124000002460 [INFO] add_custom result verified [INFO] sub_custom result verified [INFO] mul_custom result verified [SUCCESS] aclrtBinaryEnumerateFunctions sample passed ## 变更类型 - [x] ✨ 新功能 ## 关联的Issue ## 如何测试 1. bash build.sh 编译通过 2. 新增 UT 全量通过:tests/ut/runtime/runtime/test/platform/910B/rt_utest_api_kernel.cc 中 BinaryEnumerateFunctions 相关用例(成功、空 binHandle、参数校验、numFunctions 小于/大于实际个数、空 program、拷贝下发失败、decorator 转发、numFunctions=0),tests/ut/acl/testcase/acl_runtime_unittest.cpp 中 ACL 层用例;tests/depends 打桩已同步 3. 示例 example/2_advanced_features/kernel/2_binary_enumerate_functions/main.cpp 上机验证枚举与 kernel launch ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/runtime!4534 | 12 天前 | |
【Profiling】支持单算子调优配置block开关 Co-authored-by: chenminghao11<chenminghao11@hisilicon.com> # message auto-generated for no-merge-commit merge: !4502 merge compute into master 【Profiling】支持单算子调优配置block开关 Created-by: chenminghao11 Commit-by: chenminghao11 Merged-by: cann-robot Description: # Pull Request ## 描述 请清晰准确地描述本次 Pull Request 的意图和变更内容。 支持单算子调优配置block开关 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4502 | 12 天前 | |
【PR】: feat:remove all exclude Co-authored-by: duanpengliang<duanpengliang@huawei.com> # message auto-generated for no-merge-commit merge: !4195 merge master_precommit into master 【PR】: feat:remove all exclude Created-by: duanpengliang Commit-by: duanpengliang Merged-by: cann-robot Description: # Pull Request ## 描述 pre-commit example scripts docs,并把这些目录pre-commit排除项给去掉 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 pre-commit readme docs无新增文件 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4195 | 22 天前 | |
feat: 新增aclrtBinaryEnumerateFunctions接口 Co-authored-by: chenyang<2082464740@qq.com> # message auto-generated for no-merge-commit merge: !4534 merge aclbef into master feat: 新增aclrtBinaryEnumerateFunctions接口 Created-by: weixin_51634168 Commit-by: chenyang Merged-by: cann-robot Description: # feat: 新增aclrtBinaryEnumerateFunctions接口 ## 描述 新增“枚举二进制模块中核函数句柄”能力,包含 RT 内部接口 rtBinaryEnumerateFunctions 及 ACL 对外封装 aclrtBinaryEnumerateFunctions。行为对齐 CUDA cuModuleEnumerateFunctions:按 Program::kernelNameMap_ 存储顺序返回句柄,实际填入个数为 min(numFunctions, 模块内函数数);numFunctions 为 0 时不写入任何句柄,接口直接返回成功。 **RT 层:** - 接口声明位于 src/inc/runtime/inner_kernel.h(非仓间接口);C 层入口 src/runtime/api/api_c_standard_soc.cc 负责句柄解包,经 InitEmbeddedInnerHandle/ExportEmbeddedHandle 导出 rtFuncHandle;api_c_tiny_stub.cc 打桩返回不支持 - Api 分层链路逐层转发:api_error.cc 做空指针校验(binHandle/funcHandles/actualCount),api_decorator.cc 透传;本接口不做 profiling 打点 - ApiImpl::BinaryEnumerateFunctions 按职责拆分为两个私有接口: - PrepareProgramForEnumerate:非 XPU 平台经 Program::CopySoAndNameToCurrentDevice 将二进制及名称按设备惰性拷贝下发(每设备仅一次);XPU 平台不拷贝,仅取 device id - CollectEnumerateKernels:遍历 kernelNameMap_ 收集句柄,按 min(numFunctions, 实际函数数) 预留并截断;XPU 下逐 kernel 设置 literal name 设备地址 **ACL 层:** - 新增对外接口 aclError aclrtBinaryEnumerateFunctions(const aclrtBinHandle binHandle, aclrtFuncHandle* funcHandles, uint32_t numFunctions)(include/external/acl/acl_rt.h),经 ACL_RT_FUNC_MAP 宏机制生成公开符号;aclrtBinaryEnumerateFunctionsImpl 空指针校验后透传 RT 层,底层错误码(含平台不支持)直接回传 **文档与示例:** - 补充 docs/zh/api_ref/14_kerne_loading_and_execution.md 接口文档(含 min 语义及 numFunctions=0 行为说明) - 新增上机示例 example/2_advanced_features/kernel/2_binary_enumerate_functions/:将 add_custom/sub_custom/mul_custom 三个 AscendC Kernel(kernel/custom.cpp)编译为同一个独立算子二进制,演示完整使用链路——aclrtBinaryLoadFromFile Host 侧加载解析;首次调用 aclrtBinaryEnumerateFunctions 触发二进制到当前 Context 对应 Device 的拷贝,并枚举出 3 个核函数句柄;再用 aclrtGetFunctionName/aclrtGetFunctionAddr 查询函数名与 Device 代码地址、aclrtBinaryGetDevAddress 打印二进制 Device 地址;最后通过 aclrtLaunchKernelWithHostArgs 分别下发三个 Kernel 并校验 FP16 计算结果。配套 CMakeLists.txt、run.sh 一键编译运行脚本及中英文 README。 **example测试结果:** text [INFO] Enumerating functions and copying the binary from Host to Device [INFO] Binary copied to Device: address=0x124000001000, size=7828 bytes [INFO] function[0]: name=add_custom, handle=0xaaab14b41798, aic=(nil), aiv=0x124000001000 [INFO] function[1]: name=mul_custom, handle=0xaaab14b41cc8, aic=(nil), aiv=0x124000001a30 [INFO] function[2]: name=sub_custom, handle=0xaaab14b421f8, aic=(nil), aiv=0x124000002460 [INFO] add_custom result verified [INFO] sub_custom result verified [INFO] mul_custom result verified [SUCCESS] aclrtBinaryEnumerateFunctions sample passed ## 变更类型 - [x] ✨ 新功能 ## 关联的Issue ## 如何测试 1. bash build.sh 编译通过 2. 新增 UT 全量通过:tests/ut/runtime/runtime/test/platform/910B/rt_utest_api_kernel.cc 中 BinaryEnumerateFunctions 相关用例(成功、空 binHandle、参数校验、numFunctions 小于/大于实际个数、空 program、拷贝下发失败、decorator 转发、numFunctions=0),tests/ut/acl/testcase/acl_runtime_unittest.cpp 中 ACL 层用例;tests/depends 打桩已同步 3. 示例 example/2_advanced_features/kernel/2_binary_enumerate_functions/main.cpp 上机验证枚举与 kernel launch ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/runtime!4534 | 12 天前 | |
【PR】fix: 日志低错及易用性整改 Co-authored-by: Hou_jialin<houjialin3@huawei.com> # message auto-generated for no-merge-commit merge: !4439 merge br_log_opt into master 【PR】fix: 日志低错及易用性整改 Created-by: Hou_jialin Commit-by: Hou_jialin Merged-by: cann-robot Description: # Pull Request ## 描述 修正 Runtime、ACL 及辅助脚本中日志和提示信息的拼写、措辞及参数错误,包括: - 统一 retCode 等字段名称。 - 修正 permission、kernel、registered、unknown 等拼写。 - 补充 JSON 解析日志缺失的格式化参数。 - 优化部分错误提示,使日志含义更加准确。 本次修改不改变接口及业务处理流程。 ## 变更类型 - [x] Bug 修复 - [ ] 新功能 - [ ] 代码风格更新(格式化,局部变量) - [ ] 重构(既不修复错误也不增加功能的代码变动) - [ ] 构建过程或辅助工具的变动 - [ ] 文档内容更新 ## 关联的Issue 无。 ## 如何测试 NA ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 本次变更不涉及文档更新 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的相关规定 ## 其他信息 See merge request: cann/runtime!4439 | 14 天前 | |
feat: 新增aclrtBinaryEnumerateFunctions接口 Co-authored-by: chenyang<2082464740@qq.com> # message auto-generated for no-merge-commit merge: !4534 merge aclbef into master feat: 新增aclrtBinaryEnumerateFunctions接口 Created-by: weixin_51634168 Commit-by: chenyang Merged-by: cann-robot Description: # feat: 新增aclrtBinaryEnumerateFunctions接口 ## 描述 新增“枚举二进制模块中核函数句柄”能力,包含 RT 内部接口 rtBinaryEnumerateFunctions 及 ACL 对外封装 aclrtBinaryEnumerateFunctions。行为对齐 CUDA cuModuleEnumerateFunctions:按 Program::kernelNameMap_ 存储顺序返回句柄,实际填入个数为 min(numFunctions, 模块内函数数);numFunctions 为 0 时不写入任何句柄,接口直接返回成功。 **RT 层:** - 接口声明位于 src/inc/runtime/inner_kernel.h(非仓间接口);C 层入口 src/runtime/api/api_c_standard_soc.cc 负责句柄解包,经 InitEmbeddedInnerHandle/ExportEmbeddedHandle 导出 rtFuncHandle;api_c_tiny_stub.cc 打桩返回不支持 - Api 分层链路逐层转发:api_error.cc 做空指针校验(binHandle/funcHandles/actualCount),api_decorator.cc 透传;本接口不做 profiling 打点 - ApiImpl::BinaryEnumerateFunctions 按职责拆分为两个私有接口: - PrepareProgramForEnumerate:非 XPU 平台经 Program::CopySoAndNameToCurrentDevice 将二进制及名称按设备惰性拷贝下发(每设备仅一次);XPU 平台不拷贝,仅取 device id - CollectEnumerateKernels:遍历 kernelNameMap_ 收集句柄,按 min(numFunctions, 实际函数数) 预留并截断;XPU 下逐 kernel 设置 literal name 设备地址 **ACL 层:** - 新增对外接口 aclError aclrtBinaryEnumerateFunctions(const aclrtBinHandle binHandle, aclrtFuncHandle* funcHandles, uint32_t numFunctions)(include/external/acl/acl_rt.h),经 ACL_RT_FUNC_MAP 宏机制生成公开符号;aclrtBinaryEnumerateFunctionsImpl 空指针校验后透传 RT 层,底层错误码(含平台不支持)直接回传 **文档与示例:** - 补充 docs/zh/api_ref/14_kerne_loading_and_execution.md 接口文档(含 min 语义及 numFunctions=0 行为说明) - 新增上机示例 example/2_advanced_features/kernel/2_binary_enumerate_functions/:将 add_custom/sub_custom/mul_custom 三个 AscendC Kernel(kernel/custom.cpp)编译为同一个独立算子二进制,演示完整使用链路——aclrtBinaryLoadFromFile Host 侧加载解析;首次调用 aclrtBinaryEnumerateFunctions 触发二进制到当前 Context 对应 Device 的拷贝,并枚举出 3 个核函数句柄;再用 aclrtGetFunctionName/aclrtGetFunctionAddr 查询函数名与 Device 代码地址、aclrtBinaryGetDevAddress 打印二进制 Device 地址;最后通过 aclrtLaunchKernelWithHostArgs 分别下发三个 Kernel 并校验 FP16 计算结果。配套 CMakeLists.txt、run.sh 一键编译运行脚本及中英文 README。 **example测试结果:** text [INFO] Enumerating functions and copying the binary from Host to Device [INFO] Binary copied to Device: address=0x124000001000, size=7828 bytes [INFO] function[0]: name=add_custom, handle=0xaaab14b41798, aic=(nil), aiv=0x124000001000 [INFO] function[1]: name=mul_custom, handle=0xaaab14b41cc8, aic=(nil), aiv=0x124000001a30 [INFO] function[2]: name=sub_custom, handle=0xaaab14b421f8, aic=(nil), aiv=0x124000002460 [INFO] add_custom result verified [INFO] sub_custom result verified [INFO] mul_custom result verified [SUCCESS] aclrtBinaryEnumerateFunctions sample passed ## 变更类型 - [x] ✨ 新功能 ## 关联的Issue ## 如何测试 1. bash build.sh 编译通过 2. 新增 UT 全量通过:tests/ut/runtime/runtime/test/platform/910B/rt_utest_api_kernel.cc 中 BinaryEnumerateFunctions 相关用例(成功、空 binHandle、参数校验、numFunctions 小于/大于实际个数、空 program、拷贝下发失败、decorator 转发、numFunctions=0),tests/ut/acl/testcase/acl_runtime_unittest.cpp 中 ACL 层用例;tests/depends 打桩已同步 3. 示例 example/2_advanced_features/kernel/2_binary_enumerate_functions/main.cpp 上机验证枚举与 kernel launch ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/runtime!4534 | 12 天前 | |
add precommit Co-authored-by: duanpengliang<duanpengliang@huawei.com> # message auto-generated for no-merge-commit merge: !1339 merge master_pre_commit into master add precommit Created-by: duanpengliang Commit-by: duanpengliang Merged-by: cann-robot Description: ## 描述 add precommit for git hook ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/runtime!1339 | 5 个月前 | |
[binary]feat: SOMA memory malloc and free async Co-authored-by: yang_pengwei<yangpengwei6@huawei.com> Co-authored-by: t00931625<tangpeixin1@huawei.com> # message auto-generated for no-merge-commit merge: !641 merge br_soma_allocfree into master [binary]feat: SOMA memory malloc and free async Created-by: yang_pengwei Commit-by: t00931625;yang_pengwei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增异步内存申请释放接口 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/runtime/issues/148 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/runtime!641 | 5 个月前 | |
【PR】: 拼写错误修复 Co-authored-by: chenyiyang18<chenyiyang18@huawei.com> # message auto-generated for no-merge-commit merge: !1846 merge master into master 【PR】: 拼写错误修复 Created-by: cyy010617 Commit-by: chenyiyang18 Merged-by: cann-robot Description: # Pull Request ## 描述 Runtime 拼写错误修复 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 详细修复列表 ### 2.1 acl 目录 (1处) | 文件 | 行号 | 修复内容 | |------|------|---------| | src/acl/acl_tdt_queue/queue_process.cpp | 333 | sucessfully → successfully | | src/acl/acl_tdt_channel/tensor_data_transfer.cpp | 623 | faild → failed | | src/acl/aclrt_impl/context.cpp | 244 | paramete flags → parameter flags | ### 2.2 runtime 目录 (6处) 这里异常分支打印 测试没覆盖 改了过不去门禁 ### 2.3 dfx 目录 (9处) | 文件 | 行号 | 修复内容 | |------|------|---------| | src/dfx/msprof/collector/dvvp/transport/prof_channel.cpp | 83-84 | seperated → separated, shoud → should, seperate → separate | | src/dfx/msprof/collector/dvvp/transport/hash_data.cpp | 262 | seperated → separated | | src/dfx/adump/adump/host/adx_dump_receive.cpp | 25, 42, 61, 70 | sended → sent, deivce → device | | src/dfx/msprof/collector/dvvp/msprofbin/include/running_mode.h | 72 | neccessarySet_ → necessarySet_ | | src/dfx/msprof/collector/dvvp/msprofbin/src/running_mode.cpp | 多处 | neccessarySet_ → necessarySet_, unneccessary → unnecessary | | src/dfx/msprof/collector/dvvp/msprofbin/src/running_mode_closed.cpp | 143 | neccessarySet_ → necessarySet_ | | src/dfx/msprof/collector/dvvp/msprofbin/src/running_mode_open.cpp | 129 | neccessarySet_ → necessarySet_ | | src/dfx/msprof/collector/dvvp/streamio/client/src/sender.cpp | 281 | sended → sent | | src/dfx/msprof/collector/dvvp/adda/impl/ide_daemon_monitor.cpp | 92, 101 | sucess → success | | src/dfx/msprof/collector/dvvp/msprofbin/src/msprof_bin.cpp | 80 | faild → failed | ### 2.4 platform 目录 (4处) | 文件 | 行号 | 修复内容 | |------|------|---------| | src/platform/platform_infos_utils.cpp | 81, 84-85 | resoved_path → resolved_path | | src/platform/platform_infos_def.cpp | 375-387 | instrinsic → intrinsic | | src/platform/platform_info.cpp | 89 | GeInstance → GeInstance (已修复编译错误) | | src/platform/stub/platform_info_stub.cpp | 25 | GeInstance → GeInstance (已修复编译错误) | ### 2.5 mmpa 目录 (38处) __cpluscplus → __cplusplus 注释不影响,不修改 ### 2.6 tsd 目录 (11处) | 文件 | 行号 | 修复内容 | |------|------|---------| | src/tsd/tsdclient/inc/process_mode_manager.h | 74, 133, 375, 389, 403 | capablity → capability, occured → occurred, wheteher → whether, Capabity → Capability, Conct → Connect | | src/tsd/tsdclient/inc/thread_mode_manager.h | 68, 74 | occured → occurred, capablity → capability | | src/tsd/tsdclient/src/process_mode_manager.cpp | 62, 710, 953 | DEFUALT → DEFAULT, GetHdcConctStatus → GetHdcConnectStatus, UseStoredCapabityInfo → UseStoredCapabilityInfo | GetHdcConctStatus → GetHdcConnectStatus 拼写理论上也读的通,不修改 ### 2.7 cmodel_driver 目录 (5处) | 文件 | 行号 | 修复内容 | |------|------|---------| | src/cmodel_driver/driver_impl.h | 25, 31 | Pilling → Piling | | src/cmodel_driver/driver_queue.h | 45, 96, 99 | reprot → report, Handdle → Handle, Triger → Trigger | | src/cmodel_driver/driver_api.c | 294-295 | Handdle → Handle | | src/cmodel_driver/driver_impl.c | 35-36, 146 | Triger → Trigger | | src/cmodel_driver/driver_queue.c | 89, 213 | Handdle → Handle, Triger → Trigger | ### 2.8 其他位置 | 文件 | 行号 | 修复内容 | |------|------|---------| | src/queue_schedule/common/queue_schedule_interface.h | 23 | sucess → success | | src/aicpu_sched/aicpu_schedule/core/operator_kernel/communication/operator_kernel_remote_comm.cpp | 126, 165 | sucess → success | | src/runtime/core/inc/tsch_defines.h | 303 | defination → definition | | src/runtime/core/inc/task/task.hpp | 149, 181 | defination → definition | | src/runtime/core/inc/task/task_info_base.hpp | 305 | defination → definition | | src/runtime/core/inc/task/task_base.hpp | 109 | defination → definition | | src/runtime/core/src/task/task_info/model/model_execute_task.cc | 403 | timout → timeout | | src/dfx/adump/adcore/hdc/hdc_api.h | 70 | timout → timeout | --- ## 三、未修复项 (API 兼容性考虑) 以下拼写错误涉及结构体/类型定义,可能影响 API 兼容性,暂未修复: | 错误 | 正确拼写 | 位置 | 原因 | |------|---------|------|------| | dpuTack | dpuTask | MsprofDpuTrack 结构体字段 | API 字段名 | | pmmComPletionKey | pmmCompletionKey | 类型定义 | API 类型名 | | frequence_ | frequency_ | 多处变量名 | 大量使用,需全面测试 | | lenght | length | 日志字符串 | 少量,可忽略 | | conect | connect | 注释 | 可忽略 | | funtion | function | 注释 | 可忽略 | 顺便修复了一些 printf 格式不匹配的问题; 涉及到一些错误分支的日志打印,测试未覆盖,所以没有修改 See merge request: cann/runtime!1846 | 4 个月前 | |
【PR】: feat:remove all exclude Co-authored-by: duanpengliang<duanpengliang@huawei.com> # message auto-generated for no-merge-commit merge: !4195 merge master_precommit into master 【PR】: feat:remove all exclude Created-by: duanpengliang Commit-by: duanpengliang Merged-by: cann-robot Description: # Pull Request ## 描述 pre-commit example scripts docs,并把这些目录pre-commit排除项给去掉 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 pre-commit readme docs无新增文件 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4195 | 22 天前 | |
docs: 添加 AGENTS.md 和 opencode 配置 Co-authored-by: wangtao43<wangtao43@huawei.com> # message auto-generated for no-merge-commit merge: !1607 merge master into master docs: 添加 AGENTS.md 和 opencode 配置 Created-by: wangtao43 Commit-by: wangtao43 Merged-by: cann-robot Description: ## 概述 为 runtime 项目添加了 AGENTS.md 文件和 opencode 配置,支持 agent 工作流程。 ## 主要变更 ### 新增文件 - **AGENTS.md**: 项目概述、构建命令、目录结构、开发规范 - **.claude/CLAUDE.md**: Agent 提示文件 - **.claude/settings.json**: 权限和插件配置 - **.claude/skills/default-skills/**: 默认 skills 安装配置 - SKILL.md: 技能描述 - scripts/install-default-skills.sh: 安装脚本 - **.opencode/**: opencode 项目配置 - README.md: Agent skills 规划和工作流程 - opencode.json: 插件和权限配置 - plugins/install-default-skills.ts: 自动安装插件 - **.gitignore**: 忽略自动安装的 skills ## 功能说明 这些配置为 runtime 项目提供了 agent 工作支持: - **AGENTS.md**: 为 agent 提供项目工作指导 - **默认 skills**: 自动安装 gitcode-pr 和 gitcode-issue - **opencode 配置**: 定义项目特定的 skills 规划 ## 兼容性 - gitcode-pr 和 gitcode-issue 从公共仓自动安装 - 不在本地仓库维护这些共享 skills - 通过 .gitignore 忽略自动安装的 skills See merge request: cann/runtime!1607 | 4 个月前 | |
【PR】: Add English md files Co-authored-by: ycm0028<yechengmei@huawei.com> Co-authored-by: gitcode-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !2990 merge master into master 【PR】: Add English md files Created-by: ycm0028 Commit-by: ycm0028;gitcode-bot Merged-by: cann-robot Description: # Pull Request ## 描述 Add English md files ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [.x] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 The English md files have been checked. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!2990 | 2 个月前 | |
【PR】: 更新cmake-cmake到044版本,切换函数到cmake公共API Co-authored-by: zhaoyingdong<zhaoyingdong@huawei.com> # message auto-generated for no-merge-commit merge: !3866 merge master into master 【PR】: 更新cmake-cmake到044版本,切换函数到cmake公共API Created-by: zhaoyingdong Commit-by: zhaoyingdong Merged-by: cann-robot Description: # Pull Request ## 描述 【PR】: 更新cmake-cmake到044版本,切换函数到cmake公共API ## 变更类型 请选择本次引入的变更类型: <!-- [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/runtime!3866 | 1 个月前 | |
docs: 修正 skill 中 guidelines 文档路径引用 Co-authored-by: likeA_star<huyongfei171@foxmail.com> # message auto-generated for no-merge-commit merge: !4082 merge fix/skill-guidelines-path-refs into master docs: 修正 skill 中 guidelines 文档路径引用 Created-by: likeA_star Commit-by: likeA_star Merged-by: cann-robot Description: # Pull Request ## 描述 修正 runtime-code-review、runtime-errmsg-rectification skill 及 CONTRIBUTING.md 中失效的 docs/guidelines/... 引用,统一更新为实际存在的 docs/zh/guidelines/... 路径。 同时将不存在的 dt_guide/UT用例开发指导.md 修正为实际文件名 dt_guide/ut_case_development_guide.md,避免 agent 执行时依赖自动兜底。 ## 变更类型 - [ ] Bug 修复 - [ ] 新功能 - [ ] 代码风格更新(格式化,局部变量) - [ ] 重构(既不修复错误也不增加功能的代码变动) - [ ] 构建过程或辅助工具的变动 - [x] 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 搜索仓库中被跟踪 Markdown 文件,确认不再存在 docs/guidelines/ 引用。 2. 逐一验证更新后的 docs/zh/guidelines/... 引用路径均真实存在。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:、fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于 commit message 的格式、无效 commit 的合并等 ## 其他信息 本次变更仅修正文档路径引用,不涉及运行时代码逻辑。 See merge request: cann/runtime!4082 | 1 个月前 | |
docs: 修正 skill 中 guidelines 文档路径引用 Co-authored-by: likeA_star<huyongfei171@foxmail.com> # message auto-generated for no-merge-commit merge: !4082 merge fix/skill-guidelines-path-refs into master docs: 修正 skill 中 guidelines 文档路径引用 Created-by: likeA_star Commit-by: likeA_star Merged-by: cann-robot Description: # Pull Request ## 描述 修正 runtime-code-review、runtime-errmsg-rectification skill 及 CONTRIBUTING.md 中失效的 docs/guidelines/... 引用,统一更新为实际存在的 docs/zh/guidelines/... 路径。 同时将不存在的 dt_guide/UT用例开发指导.md 修正为实际文件名 dt_guide/ut_case_development_guide.md,避免 agent 执行时依赖自动兜底。 ## 变更类型 - [ ] Bug 修复 - [ ] 新功能 - [ ] 代码风格更新(格式化,局部变量) - [ ] 重构(既不修复错误也不增加功能的代码变动) - [ ] 构建过程或辅助工具的变动 - [x] 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 搜索仓库中被跟踪 Markdown 文件,确认不再存在 docs/guidelines/ 引用。 2. 逐一验证更新后的 docs/zh/guidelines/... 引用路径均真实存在。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:、fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于 commit message 的格式、无效 commit 的合并等 ## 其他信息 本次变更仅修正文档路径引用,不涉及运行时代码逻辑。 See merge request: cann/runtime!4082 | 1 个月前 | |
Initial commit | 8 个月前 | |
add pre-smoking Co-authored-by: duanpengliang<duanpengliang@huawei.com> # message auto-generated for no-merge-commit merge: !1421 merge pre_smoking into master add pre-smoking Created-by: duanpengliang Commit-by: duanpengliang Merged-by: cann-robot Description: ## 描述 加前冒烟 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 前冒烟任务可以成功 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/runtime!1421 | 4 个月前 | |
Initial commit | 8 个月前 | |
refactor: c_sec库安装从cmake仓迁移到runtime Co-authored-by: Feiteng Zheng<zhengfeiteng1@h-partners.com> # message auto-generated for no-merge-commit merge: !4156 merge 20260811-install-c-sec into master refactor: c_sec库安装从cmake仓迁移到runtime Created-by: zhengfeiteng Commit-by: Feiteng Zheng Merged-by: cann-robot Description: # Pull Request ## 描述 c_sec库安装从cmake仓迁移到runtime。这部分是runtime的代码。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.对比修改前后runtime包二进制。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4156 | 27 天前 | |
refactor: c_sec库安装从cmake仓迁移到runtime Co-authored-by: Feiteng Zheng<zhengfeiteng1@h-partners.com> # message auto-generated for no-merge-commit merge: !4156 merge 20260811-install-c-sec into master refactor: c_sec库安装从cmake仓迁移到runtime Created-by: zhengfeiteng Commit-by: Feiteng Zheng Merged-by: cann-robot Description: # Pull Request ## 描述 c_sec库安装从cmake仓迁移到runtime。这部分是runtime的代码。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.对比修改前后runtime包二进制。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4156 | 27 天前 | |
fix: 升级 json 三方件版本至 3.12.0 Co-authored-by: chingbb<qinbeibei4@huawei.com> # message auto-generated for no-merge-commit merge: !3986 merge json_protobuff into master fix: 升级 json 三方件版本至 3.12.0 Created-by: chingbb Commit-by: chingbb Merged-by: cann-robot Description: # Pull Request ## 描述 升级 json 三方件版本从 3.11.3 到 3.12.0,并配套升级 cann-cmake 从 master-044 到 master-046。 涉及变更: - json 三方件版本号从 3.11.3 升级到 3.12.0(README.md、README_en.md、SECURITY.md、SECURITY_en.md、Third_Party_Open_Source_Software_List.yaml) - cann-cmake 从 master-044 升级到 master-046,更新 URL_HASH(cmake/fetch_cann_cmake.cmake) ## 变更类型 请选择本次引入的变更类型: - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 执行 bash build.sh 验证编译通过 2. rdv ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/runtime!3986 | 1 个月前 | |
fix: 升级 json 三方件版本至 3.12.0 Co-authored-by: chingbb<qinbeibei4@huawei.com> # message auto-generated for no-merge-commit merge: !3986 merge json_protobuff into master fix: 升级 json 三方件版本至 3.12.0 Created-by: chingbb Commit-by: chingbb Merged-by: cann-robot Description: # Pull Request ## 描述 升级 json 三方件版本从 3.11.3 到 3.12.0,并配套升级 cann-cmake 从 master-044 到 master-046。 涉及变更: - json 三方件版本号从 3.11.3 升级到 3.12.0(README.md、README_en.md、SECURITY.md、SECURITY_en.md、Third_Party_Open_Source_Software_List.yaml) - cann-cmake 从 master-044 升级到 master-046,更新 URL_HASH(cmake/fetch_cann_cmake.cmake) ## 变更类型 请选择本次引入的变更类型: - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 执行 bash build.sh 验证编译通过 2. rdv ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/runtime!3986 | 1 个月前 | |
fix: 升级 json 三方件版本至 3.12.0 Co-authored-by: chingbb<qinbeibei4@huawei.com> # message auto-generated for no-merge-commit merge: !3986 merge json_protobuff into master fix: 升级 json 三方件版本至 3.12.0 Created-by: chingbb Commit-by: chingbb Merged-by: cann-robot Description: # Pull Request ## 描述 升级 json 三方件版本从 3.11.3 到 3.12.0,并配套升级 cann-cmake 从 master-044 到 master-046。 涉及变更: - json 三方件版本号从 3.11.3 升级到 3.12.0(README.md、README_en.md、SECURITY.md、SECURITY_en.md、Third_Party_Open_Source_Software_List.yaml) - cann-cmake 从 master-044 升级到 master-046,更新 URL_HASH(cmake/fetch_cann_cmake.cmake) ## 变更类型 请选择本次引入的变更类型: - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 执行 bash build.sh 验证编译通过 2. rdv ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/runtime!3986 | 1 个月前 | |
[fix]: 修复 build.sh -v/--verbose 选项不生效的问题 Co-authored-by: chenyang<2082464740@qq.com> # message auto-generated for no-merge-commit merge: !4365 merge build into master [fix]: 修复 build.sh -v/--verbose 选项不生效的问题 Created-by: weixin_51634168 Commit-by: chenyang Merged-by: cann-robot Description: ## [fix]: 修复 build.sh -v/--verbose 选项不生效的问题 关联 issue: https://gitcode.com/cann/runtime/issues/843 build.sh 的 -v/--verbose 选项不生效:参数解析时仅执行了VERBOSE="VERBOSE=1",但 build_rts() 中的 cmake --build 和make package 均未引用该变量,导致加不加 -v 输出完全一致,无法查看实际编译命令,与帮助文本 -v, --verbose Display build command的承诺不符。 ## 修改内容 - build.sh: - -v/--verbose 解析时将 VERBOSE 设为开关值 on; - VERBOSE=on 时编译阶段使用 cmake --build . -j${THREAD_NUM} --verbose; - VERBOSE=on 时打包阶段使用 make package -j${THREAD_NUM} VERBOSE=1; - 不加 -v 时行为保持不变; - 补齐文件末尾换行符。 ## 验证 使用 bash build.sh --pkg -v 对比修复前后完整构建日志: | 对比项 | 修复前 | 修复后 | |---|---|---| | 完整编译命令行(ccache /usr/bin/c++ ...) | 0 条 | 2,903 条 | | 含 -D__FILE__=... 的编译参数行(issue 中关注的日志) | 0 条 | 2,389 条 | | cd <build目录> && <编译命令> 行 | 0 条 | 5,267 条 | | [ x%] Building/Linking 进度行 | 3,758 | 3,758(一致) | | 构建结果 | build success!,产出 cann-npu-runtime_9.1.0_linux-aarch64.run | 相同 | 构建目标数与产物一致,修改仅影响日志输出详细程度,不影响构建行为。 - 修复前 -v 仅设置了一个未被引用的 shell 变量,日志与不加 -v 完全等价; - 修复后 -v 可通过 cmake --build --verbose 和 make package VERBOSE=1 - 正常输出全部实际编译命令,issue 中提到的 -D__FILE__=... 等编译参数清晰可见,问题已解决。 See merge request: cann/runtime!4365 | 18 天前 | |
【PR】: add ut Co-authored-by: CYL_TOP<chenyilu2002@163.com> # message auto-generated for no-merge-commit merge: !4210 merge br_feature_102 into master 【PR】: add ut Created-by: CYL_TOP Commit-by: CYL_TOP Merged-by: cann-robot Description: # Pull Request ## 描述 ut文件覆盖率以及语句覆盖率提升 ## 变更类型 请选择本次引入的变更类型: <!-- [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/runtime!4210 | 19 天前 | |
【PR】: fix ssl download error Co-authored-by: duanpengliang<duanpengliang@huawei.com> # message auto-generated for no-merge-commit merge: !2427 merge master_sec into master 【PR】: fix ssl download error Created-by: duanpengliang Commit-by: duanpengliang Merged-by: cann-robot Description: # Pull Request ## 描述 修复下载过程中失败 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 不涉及 ## 如何测试 描述测试此变更的步骤和前提条件: 离线下载成功 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!2427 | 3 个月前 | |
[PR]: docs: 修复 install_deps.sh 和 model.md 中的拼写错误 Co-authored-by: chenyang<2082464740@qq.com> # message auto-generated for no-merge-commit merge: !3872 merge myfork into master [PR]: docs: 修复 install_deps.sh 和 model.md 中的拼写错误 Created-by: weixin_51634168 Commit-by: chenyang Merged-by: cann-robot Description: ## docs: 修复 install_deps.sh , model.md ,task.md中的拼写错误 本次 PR 修复了项目文档和脚本中存在的 4 处拼写错误(笔误),不涉及任何功能代码变更: | 序号 | 文件 | 原文 | 修正后 | 位置/说明 | | :-: | --------------------------------------- | ------------ | ------------- | -------------------------- | | 1 | install_deps.sh | pyton | python | 第 96 行,安装 Python 时的提示文本 | | 2 | docs/zh/design/modules/model/model.md | sucess | success | 任务提交阶段时序图注释 | | 3 | docs/zh/design/modules/model/model.md | mailtaince | maintenance | LoadComplete 流程说明中 | | 4 | docs/zh/design/modules/task/task.md | 出发回收线程 | 触发回收线程 | 回收触发时机表格 | ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue <!-- 无关联 Issue,本次为文档纠错 --> ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次变更仅涉及文档和安装脚本中的文字拼写修正,**无任何逻辑代码改动**,不影响编译和运行时行为。 See merge request: cann/runtime!3872 | 1 个月前 | |
【PR】: fix pre-smoking bug && add pre-smoking testcase Co-authored-by: duanpengliang<duanpengliang@huawei.com> # message auto-generated for no-merge-commit merge: !2442 merge master_sec into master 【PR】: fix pre-smoking bug && add pre-smoking testcase Created-by: duanpengliang Commit-by: duanpengliang Merged-by: cann-robot Description: # Pull Request ## 描述 请清晰准确地描述本次 Pull Request 的意图和变更内容。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 流水线pre-smoking任务可以跑成功 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!2442 | 3 个月前 | |
feat: 新增aclrtHostGetDevicePointerAddrRange接口 Co-authored-by: w00852749<wangyuxin46@huawei.com> # message auto-generated for no-merge-commit merge: !4097 merge feat/aclrt-host-get-device-pointer-addr-range into master feat: 新增aclrtHostGetDevicePointerAddrRange接口 Created-by: YzQnWyx Commit-by: YzQnWyx;w00852749 Merged-by: cann-robot Description: # Pull Request ## 描述 参考aclrtMemGetAddressRange接口,新增aclrtHostGetDevicePointerAddrRange接口,封装驱动接口halHostGetDevicePointerAddrRange,用于获取主机侧Device Pointer地址范围。 新增类型aclrtAddrRange(对外可见),含void *startAddr和void *endAddr两个成员。接口签名: aclError aclrtHostGetDevicePointerAddrRange(aclrtAddrRange *addrRange, uint32_t *count) - addrRange和count均为出入参 - addrRange可为空,count为空时返回ACL_ERROR_INVALID_PARAM 完整分层链路:ACL -> RT C -> ApiErrorDecorator -> ApiDecorator -> ApiImpl -> NpuDriver -> HAL,特性裁剪通过驱动weak符号实现。 ## 变更类型 - [x] 新功能 ## 关联的Issue ## 如何测试 1. ACL层UT:验证count为空返回ACL_ERROR_INVALID_PARAM、正常调用返回ACL_SUCCESS、addrRange为空返回ACL_SUCCESS、RT错误码透传 2. RT层UT:mock驱动返回DRV_ERROR_NONE,验证rtHostGetDevicePointerAddrRange返回RT_ERROR_NONE 3. 兼容性测试:验证新增profiling枚举AclrtHostGetDevicePointerAddrRange注册正确 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签 - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 涉及24个生产代码文件和6个测试文件修改,完整分层实现含驱动层、RT层、ACL层及对应单元测试。 See merge request: cann/runtime!4097 | 14 天前 |
runtime(运行时)
🔥Latest News
- [2026/4] 支持Ascend 950PR/Ascend 950DT芯片。持续增强AclGraph功能,优化文档结构,提升开发者体验。
- [2025/12] runtime项目首次上线。
概述
本仓提供CANN运行时组件和维测功能组件。
- Runtime组件:提供Ascend NPU运行时用户编程接口和运行时核心实现,包括设备管理、流管理、Event管理、内存管理、任务调度等功能。
- 维测功能组件:包括性能数据采集、模型和算子Dump、日志、错误日志记录等功能。
- 性能调优(msprof)模块:进行性能调优时,可以使用性能调优工具来采集和分析运行在昇腾AI处理器SoCNPU IP加速器上的AI任务各个运行阶段的关键性能指标,根据输出的性能数据,快速定位软、硬件性能瓶颈,提升AI任务性能分析的效率。
- 精度调试(adump)模块:提供Ascend NPU运行时用户Dump单算子或模型(每一层算子)的输入/输出数据,用于与指定算子或模型进行对比,定位精度问题;提供Ascend NPU运行异常时Dump异常算子的输入/输出数据、Workspace信息、Tiling信息,用于分析AI Core Error问题。
- 日志(log)模块:日志提供记录进程执行过程信息的能力,在其他进程运行时,日志的接口提供进程打印和落盘日志的功能,方便系统故障的诊断分析,快速实现问题定位。该模块下的msnpureport为命令行工具,支持导出device侧日志和查询设置device侧状态等功能。
版本配套
本项目源码会跟随CANN软件版本发布,关于CANN软件版本与本项目标签的对应关系请参阅release仓库中的相应版本说明。 请注意,为确保您的源码定制开发顺利进行,请选择配套的CANN版本与Gitcode标签源码,使用master分支可能存在版本不匹配的风险。
目录结构
关键目录结构如下:
├── cmake # 工程编译目录
├── docs # 文档介绍
├── example # 基于acl接口开发的样例代码
├── include # 3.1包整体对外发布的头文件
| ├── dfx # dfx相关头文件
| ├── driver # 驱动相关头文件
| ├── external # 本仓对外提供的头文件
| ......
├── pkg_inc # 仓间管控相关头文件
├── scripts # 辅助构建相关文件
├── src # 所有3.1包内各模块的源代码
| ├── acl # acl对外api存放目录
| ├── dfx # dfx模块目录
| | ├── adump # adump模块目录
| | ├── log # log模块目录
| | ├── msprof # msprof模块目录
| | ├── trace # trace模块目录
| | ......
| ├── mmpa # mmpa模块目录
| ├── runtime # runtime模块目录
| ......
├── stub # 打桩相关目录
├── tests # UT用例
......
├── CMakeLists.txt # 构建编译配置文件
├── build.sh # 项目工程编译脚本
环境部署
环境安装
手动安装
对于有昇腾设备的开发者,若您想手动搭建昇腾环境,请参考下述步骤。
安装基础依赖
本项目基础依赖如下,请注意版本要求。
- python >= 3.7.0 (python 3.7 python3.8官方已经EOL,CANN将于2027年3月停止支持,请升级到>= 3.9.0版本)
- pip3
- gcc >= 7.3.0, <= 13
- cmake >= 3.16.0
- ccache
- autoconf
- gperf
- libtool
- make
- libc6-dev/glibc-devel
Ubuntu/Debian操作系统安装命令示例如下:
sudo apt install python3 python3-pip python3-dev gcc-9 g++-9 libc6-dev cmake ccache autoconf gperf libtool libtool-bin make
CentOS/EulerOS操作系统安装命令示例如下:
sudo yum install python3 python3-pip python3-devel gcc gcc-c++ glibc-devel cmake ccache autoconf gperf libtool make
安装软件
-
场景1:体验master版本能力或基于master版本进行开发
-
安装驱动与固件(可选,仅运行样例依赖)
若仅编译runtime包,可跳过本操作步骤。运行runtime样例时须安装驱动与固件。
下载和安装操作请参考《CANN软件安装指南》中“准备软件包”和“安装NPU驱动和固件”章节。
-
安装CANN包
请单击下载链接,选择最新时间版本,并根据产品型号和环境架构下载对应包。安装命令如下,更多指导参考《CANN软件安装指南》。
-
安装CANN toolkit包
# 确保安装包具有可执行权限 chmod +x Ascend-cann-toolkit_${cann_version}_linux-${arch}.run # 安装命令 ./Ascend-cann-toolkit_${cann_version}_linux-${arch}.run --install --install-path=${install_path}${cann_version}:表示CANN包版本号。${arch}:表示CPU架构,如aarch64、x86_64。${install_path}:表示指定安装路径,需要与Toolkit包安装在相同路径,root用户默认安装在/usr/local/Ascend目录。
-
安装CANN ops算子包(可选,仅运行样例依赖)。
若仅编译runtime包,可跳过本操作步骤。运行runtime样例时须安装CANN ops算子包。
# 确保安装包具有可执行权限 chmod +x Ascend-cann-${soc_name}-ops_${cann_version}_linux-${arch}.run # 安装命令 ./Ascend-cann-${soc_name}-ops_${cann_version}_linux-${arch}.run --install --install-path=${install_path}-
${soc_name}表示NPU型号名称。产品 soc_name Atlas A2 训练系列产品/Atlas A2 推理系列产品 910b Atlas A3 训练系列产品/Atlas A3 推理系列产品 A3 Ascend 950PR/Ascend 950DT产品 950
-
-
-
-
场景2:体验已发布版本能力或基于已发布版本进行开发
请访问CANN官网下载中心,选择发布版本(仅支持CANN 8.5.0及后续版本)、产品型号和环境架构,参考CANN 快速安装指导完成安装。
环境验证
安装完CANN包后,需验证环境和驱动是否正常。
-
检查NPU设备
# 运行npu-smi,若能正常显示设备信息,则驱动正常 npu-smi info -
检查CANN版本
# 查看CANN Toolkit开发套件包的version字段提供的版本信息(默认路径安装),<arch>表示CPU架构(aarch64或x86_64)。 cat /usr/local/Ascend/cann/<arch>-linux/ascend_toolkit_install.info # 查看CANN ops包版本信息(默认路径安装) cat /usr/local/Ascend/cann/${arch}-linux/ascend_ops_install.info
源码构建
本项目支持源码构建,编译运行前需参考以上步骤完成环境部署。
源码构建可选择如下方式:
- 本机源码构建:参考下文“下载源码”、“环境变量配置”和“编译runtime包”章节执行构建。
- Docker源码构建:参考.devcontainer/README.md,在容器内完成源码构建。
下载源码
```bash
# 下载项目源码,以master分支为例
git clone https://gitcode.com/cann/runtime.git
```
环境变量配置
按需选择合适的命令使环境变量生效。
# 默认路径安装,以root用户为例(非root用户,将/usr/local替换为${HOME})
source /usr/local/Ascend/cann/set_env.sh
# 指定路径安装
source ${install_path}/cann/set_env.sh
编译runtime包
若您的编译环境可以访问网络,编译过程中将自动下载开源第三方软件,可以使用如下命令进行编译:
bash build.sh
若您的编译环境无法访问网络,可以直接调用脚本获取开源组件压缩包,脚本将自动下载至当前新建的 third_party 目录中:
python download_3rd_party.py
下载完成后,可以使用如下命令进行编译:
bash build.sh --cann_3rd_lib_path=third_party
更多编译参数可以通过bash build.sh -h查看。
编译完成之后会在build_out目录下生成cann-npu-runtime_<version>_linux-<arch>.run软件包。
<version>表示版本号。
<arch>表示操作系统架构,取值包括x86_64与aarch64。
开源第三方软件依赖
runtime在编译时,依赖的第三方开源软件列表如下:
| 开源软件 | 版本 | 下载地址 |
|---|---|---|
| abseil-cpp | 20230802.1 | abseil-cpp-20230802.1.tar.gz |
| acl-compat (x86_64) | 9.1.0 | acl-compat_9.1.0_linux-x86_64.tar.gz |
| acl-compat (aarch64) | 9.1.0 | acl-compat_9.1.0_linux-aarch64.tar.gz |
| boost | 1.87.0 | boost_1_87_0.tar.gz |
| eigen | 5.0.0 | eigen-5.0.0.tar.gz |
| googletest | 1.14.0 | googletest-1.14.0.tar.gz |
| json | 3.12.0 | json-3.12.0.tar.gz |
| libboundscheck | 1.1.16 | libboundscheck-v1.1.16.tar.gz |
| libseccomp | 2.5.4 | libseccomp-2.5.4.tar.gz |
| mockcpp | 2.7-h5 | mockcpp-2.7.tar.gz |
| mockcpp_patch | 2.7-h5 | mockcpp-2.7-h5.patch |
| protobuf | 25.1 | protobuf-25.1.tar.gz |
| makeself | 2.5.0 | makeself-release-2.5.0-patch1.tar.gz |
| cann-cmake | master-049 | cmake-master-049.tar.gz |
注意
如果您从其他地址下载,请确保版本号一致。
安装runtime包
执行如下命令安装编译生成的runtime软件包。
cd build_out;
./cann-npu-runtime_<version>_linux-<arch>.run --full --install-path=${install_path}
- ${version}:表示run包版本号。
- ${arch}:表示CPU架构,如aarch64、x86_64。
- ${install_path}:表示指定安装路径,可选,默认安装在
/usr/local/Ascend目录。
安装完成之后,用户编译生成的Runtime软件包会替换已安装CANN开发套件包中的Runtime相关软件。
本地验证
编译完成后,用户可以进行开发测试,验证项目功能是否正常,本节将介绍如何做单元测试(UT: Unit Testing)。
说明: 执行 UT 用例依赖 googletest 单元测试框架,详细介绍参见 googletest 官网。
编译执行UT测试用例:
bash tests/build_ut.sh --ut=acl --target=ascendcl_utest -c --cann_3rd_lib_path={your_3rd_party_path}
其中,{your_3rd_party_path}必须为绝对路径。
指定测试模块
通过--ut指定模块名称,上述示例中指定的模块名称为acl。
runtime仓中的UT用例按模块分类归档在tests/ut/的不同目录下,所有模块名称以及和用例路径的映射关系可以查询tests/build_ut.sh中的ut_path_map,例如:acl模块的UT在tests/ut/acl下,runtime模块的UT在tests/ut/runtime/runtime下。
指定测试目标文件
通过--target指定待测用例编译出的具体目标文件。
各个模块所包含的目标文件可以从对应模块的CMakeLists.txt文件中查看。例如对于acl,从tests/ut/acl/CMakeLists.txt中的add_custom_target可以看出将编译目标命名为ascendcl_utest,并且包含了ascendcl_c_utest和ascendcl_cpp_utest两个目标文件。上述示例中通过指定target为ascendcl_utest表示编译执行acl模块中的所有用例。也可以指定具体的目标文件进行编译执行(可以同时指定多个,用空格分隔)。
其他编译参数
通过-c可以获取覆盖率,如无需获取覆盖率,可省略此参数。
需先安装
lcov(Ubuntu / Debian:sudo apt install lcov;openEuler:sudo dnf install lcov);若因版本差异报错,请按提示调整脚本参数。
通过--asan可以启用AddressSanitizer进行内存错误检测,如无需启用,可省略此参数。
AddressSanitizer通常不需要单独安装,已集成在gcc中。如需单独安装asan,请确保与gcc版本兼容,例如gcc 9.5.0匹配libasan6版本。
通过--cann_3rd_lib_path指定第三方依赖的路径,若在联网环境中,可省略此参数。
更加详细的编译命令参数可以通过bash tests/build_ut.sh -h查看。
UT测试用例编译的过程件以及产物位于output和build下,如果想清除历史编译记录,可以执行如下操作:
rm -rf output/ build/
接下来可参考example目录下的样例,进一步了解本仓。
学习教程
Runtime提供了开发指南、API参考,详细可参见 Runtime 参考资料。