| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: ASCEND_SLOG_PRINT_TO_STDOUT环境变量改名 (#768) Co-authored-by: GuoWenbo<guowenbo13@h-partners.com> # message auto-generated for no-merge-commit merge: !3919 merge feature-issue-768 into master feat: ASCEND_SLOG_PRINT_TO_STDOUT环境变量改名 (#768) Created-by: GuoWenbo Commit-by: GuoWenbo Merged-by: cann-robot Description: ## 描述 issue #768:为提高易用性,将 Host 侧应用日志"打印到 stdout"开关的环境变量 ASCEND_SLOG_PRINT_TO_STDOUT 改名为 ASCEND_LOG_PRINT_TO_STDOUT,与其它 ASCEND_LOG_* 日志变量统一命名。旧变量在资料内声明废弃,兼容期过后仅从资料中删除,**代码仍保留该环境变量以避免兼容性问题**;资料按 runtime 手册风格添加兼容性说明。 实现要点: - DlogCheckEnvStdout() 中新变量 ASCEND_LOG_PRINT_TO_STDOUT 优先,新增辅助函数 DlogGetStdoutEnv() 用 mmGetEnv(name, buf, len) 按名读取(值拷贝到调用者栈缓冲区,规避 getenv 返回内部指针在多线程下的竞争,符合 G.STD.18-CPP)。 - 新变量未配置时回退旧变量 ASCEND_SLOG_PRINT_TO_STDOUT(同样经 mmGetEnv 按名读取,不再走已废弃的 mmpa 枚举流程 MM_SYS_GET_ENV),并打印一次废弃告警;告警不承诺移除代码,仅提示改用新变量。 - 新旧变量同时配置时以新变量为准。 - 维测日志按开源软件通用写法规划:开启打 INFO、废弃/非法值打 WARN、默认/显式关闭静默;废弃告警含 旧名→新名(不含移除预告,因代码永久保留旧变量);非法值告警回显取值与期望值。 - 资料:新增 ASCEND_LOG_PRINT_TO_STDOUT.md,旧文档加废弃声明,FAQ 同步;措辞对齐仓内 runtime 手册约定(api_ref/23_log_APIs.md、25-01_aclError.md):"将在后续版本中废弃,不建议用户使用,以防止引发兼容性问题",并说明代码中将持续支持旧变量。 ## 变更类型 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue https://gitcode.com/cann/runtime/issues/768 ## 如何测试 测试结论:PASS 1. 白盒 UT(tests/ut/slog/ut/ep/alog_host/testcase/alog_host_excp_utest.cc,被测 DlogCheckEnvStdout)覆盖 9 分支及维测日志断言:新变量=1 开启(INFO) / 新变量=0 静默 / 仅旧变量=1 兼容开启(废弃WARN+INFO) / 新=0旧=1 新变量优先关闭 / 均未配置关闭 / 新变量非法值(回显WARN) / 旧变量非法值(废弃WARN+回显WARN) / 新变量取值过长(不回显WARN) / 旧变量取值过长(废弃WARN+不回显WARN)。 2. 二进制端到端:通过 dlog 打印接口,按环境变量确认日志落盘 vs 打屏(新=1 打屏、仅旧=1 兼容打屏、均未配置落盘、新=0旧=1 新优先落盘)。 3. 因 DlogCheckEnvStdout 存在 static 缓存,各分支用独立进程(threadsafe death test)验证。 4. 独立端到端工程 stdout_env_test/(源码编译形态 + 部署形态)验证维测信息经 vsyslog() 真实落到系统 syslog 的完整链路,各 7/7 Pass。 测试结果:issue768 新增用例 14/14 PASS;ep_alog_host_utest 全量回归 117/117 PASS(排除 1 个预先存在、root 下必挂起、与本需求无关的 PlogFileMgrCovUtest.WriteHostLog_ChownFail)。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 变更文件:src/dfx/log/liblog/slog/dlog_console.c、tests/.../alog_host_excp_utest.cc、docs/zh/env_vars/ASCEND_LOG_PRINT_TO_STDOUT.md(新增)、docs/zh/env_vars/ASCEND_SLOG_PRINT_TO_STDOUT.md、两处 FAQ。 issue 描述更新对齐(2026-08-04,commit 1d90975): issue 于 2026-08-04 16:48 更新,明确旧变量兼容期过后**仅从资料删除、代码保留**。原实现承诺 "will be removed in a future release" / "兼容期过后将删除",与之冲突,已修正 6 处:dlog_console.c 告警文案、两份 env_vars 资料、两处 FAQ、viewing_logs_ep.md。UT 断言子串仍匹配新文案,用例无需调整。 检视意见处理(2026-08-03,commit 24dc44a): - 已采纳:DlogGetStdoutEnv 中 ret != EN_OK(取值长度 ≥ STDOUT_ENV_VALUE_LEN)分支缺少覆盖。新增 Issue768ScenarioCheckStdoutLongValue 及 TC-768-008/009 两个用例,断言返回 false、告警出现且过长取值未被回显;仅新增测试,生产代码未改动。 - 未采纳(E2E 目录残留导致 access 假阳性):用例走 threadsafe death test,子进程 re-exec 后 SetUpTestCase/SetUp 会重新清理 PATH_ROOT,PATH_ROOT/debug 在检查前已不存在。 - 未采纳(改用 MM_ENV_* 宏):MM_ENV_ASCEND_SLOG_PRINT_TO_STDOUT 是枚举值 6002 而非字符串宏,无法作为 mmGetEnv 入参;本次改动的目的之一即脱离已废弃的 MM_SYS_GET_ENV 枚举流程。 - 未采纳(stdoutFlag 读-判-写无同步):存量问题,本次重构未引入也未加剧,仅影响并发首调时告警可能重复打印,不影响收敛结果;建议另开 issue 跟踪。 ## 风险和遗留问题 - 兼容期时长与资料删除版本号 issue 未给出;已按"后续版本中废弃"通用措辞表述,不承诺具体版本。 - 资料文件改动为纯文档,靠人工检视。 - docs/zh/log_ref/viewing_logs_ep.md 中仍引用旧变量名,本次已同步为新变量并注明旧变量兼容期内可用。 - static int32_t stdoutFlag 的读-判-写序列无同步保护(存量问题,本次未改善):并发首次调用时废弃/非法值告警可能重复打印,stdoutFlag 收敛结果不受影响。加原子操作会改变初始化时序,超出本 issue 范围,建议另开 issue 处理。 See merge request: cann/runtime!3919 | 1 个月前 | |
【docs】: 修改api中的大模型报错。 Co-authored-by: lwx1255555<liuxiaofang17@huawei-partners.com> # message auto-generated for no-merge-commit merge: !4647 merge master into master 【docs】: 修改api中的大模型报错。 Created-by: lwx1255555 Commit-by: lwx1255555 Merged-by: cann-robot Description: # Pull Request ## 描述 修改api中的大模型报错。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 已经使用docs-tools自检 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4647 | 1 个月前 | |
【refactor】: 重命名文件名称,提升 arch5162 可扩展性 Co-authored-by: qq_64748107<2592856994@qq.com> # message auto-generated for no-merge-commit merge: !4624 merge fix/rename-tiny-stub-arch5162 into master 【refactor】: 重命名文件名称,提升 arch5162 可扩展性 Created-by: qq_64748107 Commit-by: qq_64748107 Merged-by: cann-robot Description: # Pull Request ## 描述 将 xxx_tiny_stub.cc 统一重命名为 xxx_stub.cc,移除文件名中的 tiny 前缀,使 stub 文件不再绑定特定芯片型号,方便后续其他芯片复用。 ## 改动内容 - 重命名 32 个源文件:xxx_tiny_stub.cc → xxx_stub.cc - 同步更新 4 个 CMake 文件中的路径引用: - arch5162.cmake:22 处 - tiny.cmake:32 处 - tests/ut/runtime/runtime/CMakeLists.txt:35 处 - tests/ut/runtime/runtime/test/platform/arch5162/CMakeLists.txt:23 处 - 重命名测试文件:rt_utest_tiny_stub.cc → rt_utest_stub.cc ## 改动原因 当前 stub 文件名带有 tiny 前缀,绑定特定芯片型号。后续新增其他芯片需要复用这些 stub 时,文件名带 tiny 不合理。重命名为通用名称后,任何芯片都可以直接引用。 ## 验证 - 编译通过(bash build.sh) - ACL callback UT:8/8 通过 - TinyStub UT:63/63 通过 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4624 | 1 个月前 | |
docs: 修复表格中未转义的竖线(#870) Co-authored-by: xiangyang0909<huxiangyang1@huawei.com> # message auto-generated for no-merge-commit merge: !4476 merge docs/issue-870-escape-table-pipes into master docs: 修复表格中未转义的竖线(#870) Created-by: xiangyang0909 Commit-by: xiangyang0909 Merged-by: cann-robot Description: # Pull Request ## 描述 - 修复推荐接口与典型场景文档中 5 处表格代码段未转义的竖线。 - 避免 GFM 将位或表达式拆分为多个单元格,确保 flag 和适用场景完整显示。 ## 变更类型 - [ ] Bug 修复 - [ ] 新功能 - [ ] 代码风格更新 - [ ] 重构 - [ ] 构建过程变动 - [x] 文档内容更新 ## 关联的Issue Closes #870 ## 如何测试 - pre-commit run --show-diff-on-failure --from-ref upstream/master --to-ref HEAD - 使用 GFM 渲染验证 5 个位或表达式及对应“适用场景”单元格均正常显示。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对修改进行了自测 - [x] 本次仅修改相关文档 See merge request: cann/runtime!4476 | 1 个月前 | |
docs: 补充 Profiling 和 Dump 产物解读文档 (#801) Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !4151 merge fix-issue-801-doc-artifacts into master docs: 补充 Profiling 和 Dump 产物解读文档 (#801) Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: # Pull Request ## 描述 - 修复摘要: profiling和dump产物解读闭环缺失,仓内缺少msprof/adump产物路径、解析命令和字段含义的文档。 - 变更文件: - docs/zh/README.md - docs/zh/api_ref/18_dump_configuration.md - docs/zh/api_ref/19-01_data_profiling_apis.md - docs/zh/api_ref/19_profiling_data_collection.md - docs/zh/dump_ref/README.md - docs/zh/dump_ref/dump_artifact_analysis.md - docs/zh/profiling_ref/README.md - docs/zh/profiling_ref/profiling_artifact_analysis.md - example/5_performance/README.md - example/5_performance/README_en.md - example/5_performance/adump/README.md - example/5_performance/adump/README_en.md - example/5_performance/profiling/0_create_config/README.md - example/5_performance/profiling/0_create_config/README_en.md - example/5_performance/profiling/README.md - example/5_performance/profiling/README_en.md ### Diff 摘要 text docs/zh/README.md | 4 +- docs/zh/api_ref/18_dump_configuration.md | 6 +- docs/zh/api_ref/19-01_data_profiling_apis.md | 2 +- docs/zh/api_ref/19_profiling_data_collection.md | 2 +- docs/zh/dump_ref/README.md | 7 ++ docs/zh/dump_ref/dump_artifact_analysis.md | 100 +++++++++++++++++++++ docs/zh/profiling_ref/README.md | 7 ++ .../profiling_ref/profiling_artifact_analysis.md | 72 +++++++++++++++ example/5_performance/README.md | 5 ++ example/5_performance/README_en.md | 7 +- example/5_performance/adump/README.md | 4 + example/5_performance/adump/README_en.md | 4 + .../profiling/0_create_config/README.md | 2 + .../profiling/0_create_config/README_en.md | 2 + example/5_performance/profiling/README.md | 4 + example/5_performance/profiling/README_en.md | 6 +- 16 files changed, 226 insertions(+), 8 deletions(-) ## 变更类型 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## 关联的Issue https://gitcode.com/cann/runtime/issues/801 ## 如何测试 - 测试结论: PASS - 检测到代码变更文件 16 个: docs/zh/README.md, docs/zh/api_ref/18_dump_configuration.md, docs/zh/api_ref/19-01_data_profiling_apis.md, docs/zh/api_ref/19_profiling_data_collection.md, docs/zh/dump_ref/README.md, docs/zh/dump_ref/dump_artifact_analysis.md, docs/zh/profiling_ref/README.md, docs/zh/profiling_ref/profiling_artifact_analysis.md - 测试日志包含通过信号 - 测试日志覆盖计划测试项 5 条 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 ## 风险和遗留问题 - (none) See merge request: cann/runtime!4151 | 1 个月前 | |
feat: ASCEND_SLOG_PRINT_TO_STDOUT环境变量改名 (#768) Co-authored-by: GuoWenbo<guowenbo13@h-partners.com> # message auto-generated for no-merge-commit merge: !3919 merge feature-issue-768 into master feat: ASCEND_SLOG_PRINT_TO_STDOUT环境变量改名 (#768) Created-by: GuoWenbo Commit-by: GuoWenbo Merged-by: cann-robot Description: ## 描述 issue #768:为提高易用性,将 Host 侧应用日志"打印到 stdout"开关的环境变量 ASCEND_SLOG_PRINT_TO_STDOUT 改名为 ASCEND_LOG_PRINT_TO_STDOUT,与其它 ASCEND_LOG_* 日志变量统一命名。旧变量在资料内声明废弃,兼容期过后仅从资料中删除,**代码仍保留该环境变量以避免兼容性问题**;资料按 runtime 手册风格添加兼容性说明。 实现要点: - DlogCheckEnvStdout() 中新变量 ASCEND_LOG_PRINT_TO_STDOUT 优先,新增辅助函数 DlogGetStdoutEnv() 用 mmGetEnv(name, buf, len) 按名读取(值拷贝到调用者栈缓冲区,规避 getenv 返回内部指针在多线程下的竞争,符合 G.STD.18-CPP)。 - 新变量未配置时回退旧变量 ASCEND_SLOG_PRINT_TO_STDOUT(同样经 mmGetEnv 按名读取,不再走已废弃的 mmpa 枚举流程 MM_SYS_GET_ENV),并打印一次废弃告警;告警不承诺移除代码,仅提示改用新变量。 - 新旧变量同时配置时以新变量为准。 - 维测日志按开源软件通用写法规划:开启打 INFO、废弃/非法值打 WARN、默认/显式关闭静默;废弃告警含 旧名→新名(不含移除预告,因代码永久保留旧变量);非法值告警回显取值与期望值。 - 资料:新增 ASCEND_LOG_PRINT_TO_STDOUT.md,旧文档加废弃声明,FAQ 同步;措辞对齐仓内 runtime 手册约定(api_ref/23_log_APIs.md、25-01_aclError.md):"将在后续版本中废弃,不建议用户使用,以防止引发兼容性问题",并说明代码中将持续支持旧变量。 ## 变更类型 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue https://gitcode.com/cann/runtime/issues/768 ## 如何测试 测试结论:PASS 1. 白盒 UT(tests/ut/slog/ut/ep/alog_host/testcase/alog_host_excp_utest.cc,被测 DlogCheckEnvStdout)覆盖 9 分支及维测日志断言:新变量=1 开启(INFO) / 新变量=0 静默 / 仅旧变量=1 兼容开启(废弃WARN+INFO) / 新=0旧=1 新变量优先关闭 / 均未配置关闭 / 新变量非法值(回显WARN) / 旧变量非法值(废弃WARN+回显WARN) / 新变量取值过长(不回显WARN) / 旧变量取值过长(废弃WARN+不回显WARN)。 2. 二进制端到端:通过 dlog 打印接口,按环境变量确认日志落盘 vs 打屏(新=1 打屏、仅旧=1 兼容打屏、均未配置落盘、新=0旧=1 新优先落盘)。 3. 因 DlogCheckEnvStdout 存在 static 缓存,各分支用独立进程(threadsafe death test)验证。 4. 独立端到端工程 stdout_env_test/(源码编译形态 + 部署形态)验证维测信息经 vsyslog() 真实落到系统 syslog 的完整链路,各 7/7 Pass。 测试结果:issue768 新增用例 14/14 PASS;ep_alog_host_utest 全量回归 117/117 PASS(排除 1 个预先存在、root 下必挂起、与本需求无关的 PlogFileMgrCovUtest.WriteHostLog_ChownFail)。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 变更文件:src/dfx/log/liblog/slog/dlog_console.c、tests/.../alog_host_excp_utest.cc、docs/zh/env_vars/ASCEND_LOG_PRINT_TO_STDOUT.md(新增)、docs/zh/env_vars/ASCEND_SLOG_PRINT_TO_STDOUT.md、两处 FAQ。 issue 描述更新对齐(2026-08-04,commit 1d90975): issue 于 2026-08-04 16:48 更新,明确旧变量兼容期过后**仅从资料删除、代码保留**。原实现承诺 "will be removed in a future release" / "兼容期过后将删除",与之冲突,已修正 6 处:dlog_console.c 告警文案、两份 env_vars 资料、两处 FAQ、viewing_logs_ep.md。UT 断言子串仍匹配新文案,用例无需调整。 检视意见处理(2026-08-03,commit 24dc44a): - 已采纳:DlogGetStdoutEnv 中 ret != EN_OK(取值长度 ≥ STDOUT_ENV_VALUE_LEN)分支缺少覆盖。新增 Issue768ScenarioCheckStdoutLongValue 及 TC-768-008/009 两个用例,断言返回 false、告警出现且过长取值未被回显;仅新增测试,生产代码未改动。 - 未采纳(E2E 目录残留导致 access 假阳性):用例走 threadsafe death test,子进程 re-exec 后 SetUpTestCase/SetUp 会重新清理 PATH_ROOT,PATH_ROOT/debug 在检查前已不存在。 - 未采纳(改用 MM_ENV_* 宏):MM_ENV_ASCEND_SLOG_PRINT_TO_STDOUT 是枚举值 6002 而非字符串宏,无法作为 mmGetEnv 入参;本次改动的目的之一即脱离已废弃的 MM_SYS_GET_ENV 枚举流程。 - 未采纳(stdoutFlag 读-判-写无同步):存量问题,本次重构未引入也未加剧,仅影响并发首调时告警可能重复打印,不影响收敛结果;建议另开 issue 跟踪。 ## 风险和遗留问题 - 兼容期时长与资料删除版本号 issue 未给出;已按"后续版本中废弃"通用措辞表述,不承诺具体版本。 - 资料文件改动为纯文档,靠人工检视。 - docs/zh/log_ref/viewing_logs_ep.md 中仍引用旧变量名,本次已同步为新变量并注明旧变量兼容期内可用。 - static int32_t stdoutFlag 的读-判-写序列无同步保护(存量问题,本次未改善):并发首次调用时废弃/非法值告警可能重复打印,stdoutFlag 收敛结果不受影响。加原子操作会改变初始化时序,超出本 issue 范围,建议另开 issue 处理。 See merge request: cann/runtime!3919 | 1 个月前 | |
【PR】:新增AICPU OOM流同步错误码 Co-authored-by: G0rogoa<15357573068@163.com> # message auto-generated for no-merge-commit merge: !4241 merge codex/aicpu-oom-ee1024-discussion into master 【PR】:新增AICPU OOM流同步错误码 Created-by: moritaka1 Commit-by: G0rogoa Merged-by: cann-robot Description: # Pull Request ## 描述 由于OOM导致的aicpu算子流同步失败细分新增错误码,方便用户问题定位 1、OOM统计与缓存:在 ReportOomQueryProc 中,每次查询device的AICPU状态判断是否发生OOM,并统计OOM发生次数。统计规则为上升沿计数:从正常状态变为OOM状态算一次,持续OOM期间不重复计数,从OOM恢复后再OOM则再计一次。同时缓存最近10次查询结果(每秒一次查询,即最近10秒),用于超时报错时判断OOM是否是近期发生的。 2、超时报错信息修改: 在上报对外错误码的时候新增错误码。 3.原来日志显示的是aicpu timeout,但是错误码是EE9999内部错误,兜底修改 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 尝试在Device处于OOM状态时调用流同步观察错误码输出 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4241 | 1 个月前 | |
style: 统一日志中zero替换为0并新增打印规范 Co-authored-by: yanmingxiang<yanmingxiang@huawei.com> # message auto-generated for no-merge-commit merge: !4248 merge fix/zero-to-0-in-log-0814 into master style: 统一日志中zero替换为0并新增打印规范 Created-by: yanmingxiang Commit-by: yanmingxiang Merged-by: cann-robot Description: ## 描述 统一日志和错误信息中表示数值的英文单词 zero 为阿拉伯数字 0,并新增对应的编码规范和检视检查项。 ### 变更内容 1. **代码修改**(17个文件30处):将 src/ 下源文件日志字符串中的独立单词 zero 统一替换为 0,涉及 ACL 和 Runtime 两个模块。连字符复合词(zero-size、non-zero、divide-by-zero、zero-copy)和技术术语(zero copy)不替换。 2. **规范文档**(2个文件): - coding-guidelines.md 规则23新增数值词汇打印规范,覆盖所有日志和错误信息 - error_message_guide/review-checklist.md 新增检查项3.4,含正反例 ### 未整改模块 aicpu_sched、dfx、platform、tsd、queue_schedule 模块本次不整改。 ## 变更类型 - [x] 🐛 Bug 修复 - [x] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 编译验证:bash build.sh 通过 2. 确认替换仅影响日志字符串,不改变业务逻辑 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 See merge request: cann/runtime!4248 | 1 个月前 | |
feat: ASCEND_SLOG_PRINT_TO_STDOUT环境变量改名 (#768) Co-authored-by: GuoWenbo<guowenbo13@h-partners.com> # message auto-generated for no-merge-commit merge: !3919 merge feature-issue-768 into master feat: ASCEND_SLOG_PRINT_TO_STDOUT环境变量改名 (#768) Created-by: GuoWenbo Commit-by: GuoWenbo Merged-by: cann-robot Description: ## 描述 issue #768:为提高易用性,将 Host 侧应用日志"打印到 stdout"开关的环境变量 ASCEND_SLOG_PRINT_TO_STDOUT 改名为 ASCEND_LOG_PRINT_TO_STDOUT,与其它 ASCEND_LOG_* 日志变量统一命名。旧变量在资料内声明废弃,兼容期过后仅从资料中删除,**代码仍保留该环境变量以避免兼容性问题**;资料按 runtime 手册风格添加兼容性说明。 实现要点: - DlogCheckEnvStdout() 中新变量 ASCEND_LOG_PRINT_TO_STDOUT 优先,新增辅助函数 DlogGetStdoutEnv() 用 mmGetEnv(name, buf, len) 按名读取(值拷贝到调用者栈缓冲区,规避 getenv 返回内部指针在多线程下的竞争,符合 G.STD.18-CPP)。 - 新变量未配置时回退旧变量 ASCEND_SLOG_PRINT_TO_STDOUT(同样经 mmGetEnv 按名读取,不再走已废弃的 mmpa 枚举流程 MM_SYS_GET_ENV),并打印一次废弃告警;告警不承诺移除代码,仅提示改用新变量。 - 新旧变量同时配置时以新变量为准。 - 维测日志按开源软件通用写法规划:开启打 INFO、废弃/非法值打 WARN、默认/显式关闭静默;废弃告警含 旧名→新名(不含移除预告,因代码永久保留旧变量);非法值告警回显取值与期望值。 - 资料:新增 ASCEND_LOG_PRINT_TO_STDOUT.md,旧文档加废弃声明,FAQ 同步;措辞对齐仓内 runtime 手册约定(api_ref/23_log_APIs.md、25-01_aclError.md):"将在后续版本中废弃,不建议用户使用,以防止引发兼容性问题",并说明代码中将持续支持旧变量。 ## 变更类型 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue https://gitcode.com/cann/runtime/issues/768 ## 如何测试 测试结论:PASS 1. 白盒 UT(tests/ut/slog/ut/ep/alog_host/testcase/alog_host_excp_utest.cc,被测 DlogCheckEnvStdout)覆盖 9 分支及维测日志断言:新变量=1 开启(INFO) / 新变量=0 静默 / 仅旧变量=1 兼容开启(废弃WARN+INFO) / 新=0旧=1 新变量优先关闭 / 均未配置关闭 / 新变量非法值(回显WARN) / 旧变量非法值(废弃WARN+回显WARN) / 新变量取值过长(不回显WARN) / 旧变量取值过长(废弃WARN+不回显WARN)。 2. 二进制端到端:通过 dlog 打印接口,按环境变量确认日志落盘 vs 打屏(新=1 打屏、仅旧=1 兼容打屏、均未配置落盘、新=0旧=1 新优先落盘)。 3. 因 DlogCheckEnvStdout 存在 static 缓存,各分支用独立进程(threadsafe death test)验证。 4. 独立端到端工程 stdout_env_test/(源码编译形态 + 部署形态)验证维测信息经 vsyslog() 真实落到系统 syslog 的完整链路,各 7/7 Pass。 测试结果:issue768 新增用例 14/14 PASS;ep_alog_host_utest 全量回归 117/117 PASS(排除 1 个预先存在、root 下必挂起、与本需求无关的 PlogFileMgrCovUtest.WriteHostLog_ChownFail)。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 变更文件:src/dfx/log/liblog/slog/dlog_console.c、tests/.../alog_host_excp_utest.cc、docs/zh/env_vars/ASCEND_LOG_PRINT_TO_STDOUT.md(新增)、docs/zh/env_vars/ASCEND_SLOG_PRINT_TO_STDOUT.md、两处 FAQ。 issue 描述更新对齐(2026-08-04,commit 1d90975): issue 于 2026-08-04 16:48 更新,明确旧变量兼容期过后**仅从资料删除、代码保留**。原实现承诺 "will be removed in a future release" / "兼容期过后将删除",与之冲突,已修正 6 处:dlog_console.c 告警文案、两份 env_vars 资料、两处 FAQ、viewing_logs_ep.md。UT 断言子串仍匹配新文案,用例无需调整。 检视意见处理(2026-08-03,commit 24dc44a): - 已采纳:DlogGetStdoutEnv 中 ret != EN_OK(取值长度 ≥ STDOUT_ENV_VALUE_LEN)分支缺少覆盖。新增 Issue768ScenarioCheckStdoutLongValue 及 TC-768-008/009 两个用例,断言返回 false、告警出现且过长取值未被回显;仅新增测试,生产代码未改动。 - 未采纳(E2E 目录残留导致 access 假阳性):用例走 threadsafe death test,子进程 re-exec 后 SetUpTestCase/SetUp 会重新清理 PATH_ROOT,PATH_ROOT/debug 在检查前已不存在。 - 未采纳(改用 MM_ENV_* 宏):MM_ENV_ASCEND_SLOG_PRINT_TO_STDOUT 是枚举值 6002 而非字符串宏,无法作为 mmGetEnv 入参;本次改动的目的之一即脱离已废弃的 MM_SYS_GET_ENV 枚举流程。 - 未采纳(stdoutFlag 读-判-写无同步):存量问题,本次重构未引入也未加剧,仅影响并发首调时告警可能重复打印,不影响收敛结果;建议另开 issue 跟踪。 ## 风险和遗留问题 - 兼容期时长与资料删除版本号 issue 未给出;已按"后续版本中废弃"通用措辞表述,不承诺具体版本。 - 资料文件改动为纯文档,靠人工检视。 - docs/zh/log_ref/viewing_logs_ep.md 中仍引用旧变量名,本次已同步为新变量并注明旧变量兼容期内可用。 - static int32_t stdoutFlag 的读-判-写序列无同步保护(存量问题,本次未改善):并发首次调用时废弃/非法值告警可能重复打印,stdoutFlag 收敛结果不受影响。加原子操作会改变初始化时序,超出本 issue 范围,建议另开 issue 处理。 See merge request: cann/runtime!3919 | 1 个月前 | |
docs: 补充 Profiling 和 Dump 产物解读文档 (#801) Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !4151 merge fix-issue-801-doc-artifacts into master docs: 补充 Profiling 和 Dump 产物解读文档 (#801) Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: # Pull Request ## 描述 - 修复摘要: profiling和dump产物解读闭环缺失,仓内缺少msprof/adump产物路径、解析命令和字段含义的文档。 - 变更文件: - docs/zh/README.md - docs/zh/api_ref/18_dump_configuration.md - docs/zh/api_ref/19-01_data_profiling_apis.md - docs/zh/api_ref/19_profiling_data_collection.md - docs/zh/dump_ref/README.md - docs/zh/dump_ref/dump_artifact_analysis.md - docs/zh/profiling_ref/README.md - docs/zh/profiling_ref/profiling_artifact_analysis.md - example/5_performance/README.md - example/5_performance/README_en.md - example/5_performance/adump/README.md - example/5_performance/adump/README_en.md - example/5_performance/profiling/0_create_config/README.md - example/5_performance/profiling/0_create_config/README_en.md - example/5_performance/profiling/README.md - example/5_performance/profiling/README_en.md ### Diff 摘要 text docs/zh/README.md | 4 +- docs/zh/api_ref/18_dump_configuration.md | 6 +- docs/zh/api_ref/19-01_data_profiling_apis.md | 2 +- docs/zh/api_ref/19_profiling_data_collection.md | 2 +- docs/zh/dump_ref/README.md | 7 ++ docs/zh/dump_ref/dump_artifact_analysis.md | 100 +++++++++++++++++++++ docs/zh/profiling_ref/README.md | 7 ++ .../profiling_ref/profiling_artifact_analysis.md | 72 +++++++++++++++ example/5_performance/README.md | 5 ++ example/5_performance/README_en.md | 7 +- example/5_performance/adump/README.md | 4 + example/5_performance/adump/README_en.md | 4 + .../profiling/0_create_config/README.md | 2 + .../profiling/0_create_config/README_en.md | 2 + example/5_performance/profiling/README.md | 4 + example/5_performance/profiling/README_en.md | 6 +- 16 files changed, 226 insertions(+), 8 deletions(-) ## 变更类型 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## 关联的Issue https://gitcode.com/cann/runtime/issues/801 ## 如何测试 - 测试结论: PASS - 检测到代码变更文件 16 个: docs/zh/README.md, docs/zh/api_ref/18_dump_configuration.md, docs/zh/api_ref/19-01_data_profiling_apis.md, docs/zh/api_ref/19_profiling_data_collection.md, docs/zh/dump_ref/README.md, docs/zh/dump_ref/dump_artifact_analysis.md, docs/zh/profiling_ref/README.md, docs/zh/profiling_ref/profiling_artifact_analysis.md - 测试日志包含通过信号 - 测试日志覆盖计划测试项 5 条 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 ## 风险和遗留问题 - (none) See merge request: cann/runtime!4151 | 1 个月前 | |
【PR】: 修改docs/zh/dev_guide下面的md文件名以及修改api_ref的部分接口描述 Co-authored-by: ycm0028<yechengmei@huawei.com> # message auto-generated for no-merge-commit merge: !3705 merge master into master 【PR】: 修改docs/zh/dev_guide下面的md文件名以及修改api_ref的部分接口描述 Created-by: ycm0028 Commit-by: ycm0028 Merged-by: cann-robot Description: # Pull Request ## 描述 修改docs/zh/dev_guide下面的md文件名以及修改api_ref的部分接口描述 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 已检查所修改的md文件。 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!3705 | 2 个月前 | |
docs: 补充 Profiling 和 Dump 产物解读文档 (#801) Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !4151 merge fix-issue-801-doc-artifacts into master docs: 补充 Profiling 和 Dump 产物解读文档 (#801) Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: # Pull Request ## 描述 - 修复摘要: profiling和dump产物解读闭环缺失,仓内缺少msprof/adump产物路径、解析命令和字段含义的文档。 - 变更文件: - docs/zh/README.md - docs/zh/api_ref/18_dump_configuration.md - docs/zh/api_ref/19-01_data_profiling_apis.md - docs/zh/api_ref/19_profiling_data_collection.md - docs/zh/dump_ref/README.md - docs/zh/dump_ref/dump_artifact_analysis.md - docs/zh/profiling_ref/README.md - docs/zh/profiling_ref/profiling_artifact_analysis.md - example/5_performance/README.md - example/5_performance/README_en.md - example/5_performance/adump/README.md - example/5_performance/adump/README_en.md - example/5_performance/profiling/0_create_config/README.md - example/5_performance/profiling/0_create_config/README_en.md - example/5_performance/profiling/README.md - example/5_performance/profiling/README_en.md ### Diff 摘要 text docs/zh/README.md | 4 +- docs/zh/api_ref/18_dump_configuration.md | 6 +- docs/zh/api_ref/19-01_data_profiling_apis.md | 2 +- docs/zh/api_ref/19_profiling_data_collection.md | 2 +- docs/zh/dump_ref/README.md | 7 ++ docs/zh/dump_ref/dump_artifact_analysis.md | 100 +++++++++++++++++++++ docs/zh/profiling_ref/README.md | 7 ++ .../profiling_ref/profiling_artifact_analysis.md | 72 +++++++++++++++ example/5_performance/README.md | 5 ++ example/5_performance/README_en.md | 7 +- example/5_performance/adump/README.md | 4 + example/5_performance/adump/README_en.md | 4 + .../profiling/0_create_config/README.md | 2 + .../profiling/0_create_config/README_en.md | 2 + example/5_performance/profiling/README.md | 4 + example/5_performance/profiling/README_en.md | 6 +- 16 files changed, 226 insertions(+), 8 deletions(-) ## 变更类型 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## 关联的Issue https://gitcode.com/cann/runtime/issues/801 ## 如何测试 - 测试结论: PASS - 检测到代码变更文件 16 个: docs/zh/README.md, docs/zh/api_ref/18_dump_configuration.md, docs/zh/api_ref/19-01_data_profiling_apis.md, docs/zh/api_ref/19_profiling_data_collection.md, docs/zh/dump_ref/README.md, docs/zh/dump_ref/dump_artifact_analysis.md, docs/zh/profiling_ref/README.md, docs/zh/profiling_ref/profiling_artifact_analysis.md - 测试日志包含通过信号 - 测试日志覆盖计划测试项 5 条 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 ## 风险和遗留问题 - (none) See merge request: cann/runtime!4151 | 1 个月前 |
CANN Runtime
昇腾 AI 处理器轻量级运行时环境 · 端云一致 · 高性能推理
CANN Runtime 是昇腾 AI 处理器的核心运行时底座,它通过提供统一的 API,使得上层应用、AI 框架、加速库能够高效利用 AI 处理器的硬件计算资源。
📚 文档导航
| 文档 | 定位与内容 | 入口 |
|---|---|---|
| ⚡ 快速入门 | 零基础起步,第一次接触 Runtime 的开发者。Runtime 简介 + 编程模型讲解,建议顺序阅读 | Runtime 简介 · 编程模型 |
| 📖 编程指南 | 深度开发手册,已跑通入门阶段 Hello CANN 后需要深入理解原理的开发者。原理解析 + 示例代码 | 编程指南 |
| 📋 API 参考 | 接口字典,开发过程中随时查阅函数定义。函数签名 + 参数说明 + 返回值 | 头文件说明 · API 参考 |
| 🏗️ 架构指南 | 面向贡献者的架构文档。Runtime 整体架构、模块设计、核心组件解析 | 架构指南 |
| 📝 研发规范 | 面向贡献者的规范指南,包括设计文档模板、编码规范、测试规范、代码检视规则 | 研发规范与贡献指南 |
🗺️ 成长地图
按以下路径循序渐进,从环境准备到独立开发:
🌱 入门阶段
| 学习步骤 | 内容说明 | 入口 |
|---|---|---|
| 环境准备 | CANN 一键安装 | CANN 一键安装 |
| 概念原理 | Runtime 核心概念与编程模型:Host-Device 架构、Context、Stream、同步异步、典型执行流程 | Runtime 简介 · 编程模型 |
| Hello CANN | 第一个可运行的 Runtime 程序,完成最小计算闭环 | Hello CANN |
🚀 进阶阶段
| 主题 | 核心内容 | 对应样例 |
|---|---|---|
| 初始化 | 包括环境初始化、设备资源配置、日志管理等 | device_normal |
| 内存管理 | 包括 Host 内存管理、Device 内存管理、多流同步内存、内存拷贝(同步异步)、物理内存共享 (pid) 等 | h2d_sync_memory_copy |
| 异步任务 | 包括 Stream 管理、Event 管理、Kernel 加载与执行、内存语义同步等 | simple_stream |
🔥 高级阶段
| 主题 | 核心内容 | 对应样例 |
|---|---|---|
| ACL Graph | 包括单流捕获、跨流捕获、任务更新等 | model_update |
| 多设备编程 | 包括跨 Device 数据交互、P2P 内存访问、多卡并行调度等 | device_P2P |
| 进程间通信 | 包括 IPC Event 同步、IPC 内存共享(指定 PID/不指定 PID)等 | ipc_event · ipc_memory |
| 性能调优 | 包括Profiling数据采集、模型算子性能数据获取、Profiling产物解析等 | create_config |
| Dump数据采集与诊断 | 包括模型Dump、单算子Dump、异常Dump的产物定位、数据转换、精度分析和异常诊断等 | adump |
❓ 常见问题
| 问题类型 | 典型场景 | 入口 |
|---|---|---|
| 入门阶段 | 初始化失败、Device 配置、版本兼容等入门常见问题 | 版本不匹配 · aclInit 失败 · aclrtSetDevice 失败 · 首次aclrtSetDevice耗时 · 默认机制 |
| 基础开发 | 内存管理、Stream 同步、数据复制等基础 API 使用问题 | 内存申请失败 · Stream 下发失败 · 内存策略 · 同步机制 |
| 进阶场景 | 多设备编程、ACL Graph、进程通信等复杂场景问题 | 多Device Stream · ACL Graph 任务提交 · IPC 页表对齐 · P2P 配置失败 |
| 错误排查 | 错误码解读、算子异常、日志定位等诊断方法 | 异步错误码 · 算子输出异常 · 遇错即停定位 · plog 日志定位 |
相关资源
昇腾社区 ·
Runtime 样例仓库 ·
完整文档中心
CANN Runtime 文档 | 华为昇腾