| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 22 天前 | |
【PR】: 将Dump和Profiling产物解析文档迁移至example目录 Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !4725 merge docs/move-artifact-analysis-to-example into master 【PR】: 将Dump和Profiling产物解析文档迁移至example目录 Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 将 Dump 和 Profiling 产物解析文档从 docs/zh 迁移到对应的 example/5_performance 目录,并补充中英文文档。删除 example/5_performance README 中已失效的产物解读入口,避免继续引用已删除的 docs 路径。 ## 变更类型 - [x] 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 检查 Dump、Profiling 中英文产物解析文档均位于 example/5_performance 对应目录。 2. 执行 git diff --check。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签 ## 其他信息 无。 See merge request: cann/runtime!4725 | 1 天前 | |
refactor: 统一TaskResManage公共接口调用,收敛实现类强转(#752) Co-authored-by: daijinling<daijinling2@huawei.com> # message auto-generated for no-merge-commit merge: !3707 merge feature/erb20260713 into master refactor: 统一TaskResManage公共接口调用,收敛实现类强转(#752) Created-by: daijinling Commit-by: daijinling Merged-by: cann-robot Description: # Pull Request ## 描述 ### 背景 Stream::taskResMang_ 的静态类型已经是 TaskResManage*,A5/XPU 使用的 TaskResManageDavid 也继承自该基类。改造前,GetTaskInfo、ResetTaskRes 等公共虚函数以及 head、tail、empty、pending 等跨平台同义状态仍存在具体类型调用:部分接口只在 TaskResManageDavid 中声明,调用方必须先转换为具体类型,导致 A5/XPU 实现细节扩散到 Stream、Task 提交和回收路径。 本 PR 完成 TaskResManage 公共成员函数的多态归一,使公共查询和状态读取统一通过 TaskResManage* 分派,同时保留 A2/A3 与 A5/XPU 各自的资源环语义和平台专用修改操作。 ### 核心改动 1. 在 TaskResManage 基类统一声明 GetResHead、GetResTail、GetHeadTail、IsEmpty、GetPendingNum 虚接口;其中 GetResHead 由原非虚接口调整为虚接口。 2. 为 A2/A3 提供基于 taskResHead_、taskResTail_ 的默认实现,支持 head/tail 读取、空判断和环形 pending 计算,保持完整 Task ID 查询与 STARS 逐项回收语义不变。 3. 在 TaskResManageDavid 中 override 上述状态接口,直接读取 taskResAHead_、taskResATail_;删除同义的 GetTaskPosHead、GetTaskPosTail,避免同一状态存在两套命名。 4. 将 DavidStream、A5 Task 提交/回收/同步、XPU Stream 和 XPU 回收路径中仅调用公共成员的具体类型转换改为基类指针调用;GetTaskInfo、ResetTaskRes、head/tail/head-tail、empty、pending 均由虚分派选择实际资源环。 5. 保留 AllocTaskInfoAndPos、RecycleTaskInfo、RollbackTail、IsRecyclePosValid、GetAllocNum 等 A5/XPU 专用接口及必要的集中类型转换,不将参数和状态语义不同的操作强行提升到基类。 6. 更新相关 A5/UB 测试中的旧 getter 名称,并新增或扩展 A2/A3、STARS、A5、DQS、XPU 的基类指针测试,覆盖空状态、跨零点、pending、完整 ID 校验、多 SQE 位置查询、回收和 reset。 ### 范围和兼容性 - 不修改 Stream::AllocTask、Task 申请、正常回收、提交失败回退、A5/XPU 批量回收、STARS 分离回收、SQE 构造或驱动交互流程。 - 不引入 TaskResRoute、策略对象、新源文件、锁、原子计数或额外内存申请。 - 不修改对外 API、Task ID、taskSn、pos、sqeNum、内存布局和资源所有权语义。 - Stream 创建期申请/回收函数绑定不在本次实现范围。 交付提交:18fbb0326f72bd3ed68ab600f066d7d832752b32 ## 关联的Issue Closes #752 https://gitcode.com/cann/runtime/issues/752 ## 测试 新增或扩展的定向 LLT 设计(本次未执行): - A2/A3:通过 TaskResManage* 验证空状态、环形 pending、跨零点、完整 Task ID 校验、位置复用和 reset。 - STARS:验证分离回收按序推进基类资源环 head,最终 head/tail 一致且 pending 清零。 - A5:通过基类指针验证 A 环 head/tail/pending、多 SQE 后续位置反查首 pos、回收和 reset;专用申请/回收仍通过 TaskResManageDavid。 - DQS、XPU:验证实际 Stream 中的 TaskResManage* 能正确分派到 A 环实现,XPU 专用回收流程保持不变。 | 验证项 | 命令或范围 | 结果 | |---|---|---| | 编译 | bash build.sh | PASS | | LLT | bash tests/build_ut.sh --ut=runtime --target=runtime_ut | 未执行;按本次交付要求仅验证编译,不声明 LLT/HLT 通过 | | 测试审计与代码审查 | /test-audit verify + review、+1/+2 review | PASS;文档漂移修复后第二轮 review clean | ## 文档同步 已更新 docs/zh/design/modules/task/task.md 的 Stream TaskRes 类图,补充 TaskResManage 公共虚接口及 TaskResManageDavid override,并移除已删除的 manager 层 GetTaskPosHead/GetTaskPosTail。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:TaskResManage 公共成员多态归一重构 See merge request: cann/runtime!3707 | 13 小时前 | |
【PR】: 简要描述:docs目录下修复大模型检测问题 Co-authored-by: ycm0028<yechengmei@huawei.com> # message auto-generated for no-merge-commit merge: !4675 merge master into master 【PR】: 简要描述:docs目录下修复大模型检测问题 Created-by: ycm0028 Commit-by: ycm0028 Merged-by: cann-robot Description: # Pull Request ## 描述 修复大模型检测问题,包括语言描述优化、代码块增加语言类型等 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 人工检查修改的md ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4675 | 7 天前 | |
【PR】: runtime support launch blocking Co-authored-by: nevermore_t<tianjingxuan2@huawei.com> Co-authored-by: x00508183<xiachanglin@huawei.com> Co-authored-by: jiaxingru<jiaxingru1@huawei.com> # message auto-generated for no-merge-commit merge: !4247 merge feature/launch-blocking into master 【PR】: runtime support launch blocking Created-by: xiachanglin Commit-by: x00508183;jiaxingru;nevermore_t Merged-by: cann-robot Description: # Pull Request ## 描述 本需求提供一种面向调试场景的 blocking launch 能力,使用户在启动程序前设置环境变量后,Runtime 将纳入范围的 kernel/model launch 从“下发后立即返回”改为“下发后等待执行完成再返回”。这样执行错误在当前 launch API 返回,帮助用户定位问题算子。 新增环境变量: ASCEND_RT_LAUNCH_BLOCKING,默认不打开该环境变量时,Runtime 保持原有异步 launch 行为。当 ASCEND_RT_LAUNCH_BLOCKING=1 Runtime 对纳入范围的 kernel/model launch 执行做如下增强: 1. 先按原有流程完成任务下发。 2. 如果任务下发失败,直接返回原 launch 错误,不额外同步。 3. 如果任务下发成功,根据 stream 状态、no-blocking 逃生状态和环境变量判断是否需要同步。 4. 需要同步时,等待该 stream 当前已下发任务执行完成,再从当前 launch API 返回。 该功能的目标是调试定位。 涉及API: aclrtLaunchKernel、aclrtLaunchKernelWithConfig、aclrtLaunchKernelV2 aclrtLaunchKernelWithHostArgs、aclrtLaunchKernelWithArgsArray 、aclrtLaunchSIMTKernelWithArgsArray、aclrtLaunchSIMTKernelWithHostArgs aclmdlRIExecuteAsync ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> https://gitcode.com/cann/runtime/issues/921 ## 如何测试 描述测试此变更的步骤和前提条件: 1. UT 2. ST 3. rdv ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4247 | 2 天前 | |
docs: 修正文档导航及产品过滤标签 Co-authored-by: gyl<2468486759@qq.com> # message auto-generated for no-merge-commit merge: !4681 merge gyl/bugfix into master docs: 修正文档导航及产品过滤标签 Created-by: m0_59794621 Commit-by: gyl Merged-by: cann-robot Description: # Pull Request ## 描述 修正文档导航、环境变量目录和日志产品过滤标签,提升 Runtime 中文文档入口的完整性与准确性。 1. 新增统一的错误码参考入口,汇总 RTS、ACL、Dump、Profiling、FE、TEFusion 和 EZ2001 错误码文档。 2. 修正中文文档首页的错误码入口及环境变量参考说明。 3. 完善环境变量参考页的标题、简介和分类层级,补充 ASCEND_LOG_PRINT_TO_STDOUT,并标记已废弃的 ASCEND_SLOG_PRINT_TO_STDOUT。 4. 修复日志简介中 id7、id9 产品过滤标签交叉闭合的问题。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 检查本次新增和调整的 Markdown 相对链接,确认目标文件均存在。 2. 检查日志文档中的产品过滤标签,确认标签完整且嵌套顺序正确。 3. 执行 git diff --check,检查通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:、fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次仅修改文档,无需执行 Runtime 编译和单元测试。 See merge request: cann/runtime!4681 | 3 天前 | |
docs: errmsg问题单新增规则 Co-authored-by: chingbb<qinbeibei4@huawei.com> # message auto-generated for no-merge-commit merge: !4715 merge errmsg into master docs: errmsg问题单新增规则 Created-by: chingbb Commit-by: chingbb Merged-by: cann-robot Description: # Pull Request ## 描述 本次 PR 新增 errmsg skill 整改规则,涉及打印格式规范、错误码使用规范、检视清单和 skill 工作流更新。 具体变更: 1. [%s] 方括号格式禁止:ErrMessage 中字符串变量禁止 [%s] 格式(rectification-principles.md + review-checklist.md) 2. 参数打印规范补充:标题由"参数名打印规范"改为"参数打印规范";补充 event/notify 的 ID 打印格式(rectification-principles.md) 3. EE1019 场景扩展:流任务满且无回收机制(persistent stream、bound stream)时应使用 EE1019(error-code-guide.md) 4. EE1020/EH0013 示例与规则细化:新增用户入参示例②;extend_info 规则明确为"打印参数名+值/地址,地址用十六进制"(error-code-guide.md) 5. EE1023 reason 精简:删除 reason 中冗余的 "in the ACL Graph" 限定词(error-code-guide.md) 6. SKILL.md Step 6 固定待确认项:新增"驱动接口返回不支持路径"检查表,纳入"不确定需确认项"(SKILL.md) 7. SKILL.md Step 9 新增:整改建议含不确定项时,提醒用户进一步确认(SKILL.md) ## 变更类型 - [x] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 检查文档格式和链接正确性 2. 确认规则与代码实际使用一致 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次变更仅涉及文档和 skill 规范文件,不修改 Runtime 业务代码及对外接口。 See merge request: cann/runtime!4715 | 3 天前 | |
docs: 修正文档导航及产品过滤标签 Co-authored-by: gyl<2468486759@qq.com> # message auto-generated for no-merge-commit merge: !4681 merge gyl/bugfix into master docs: 修正文档导航及产品过滤标签 Created-by: m0_59794621 Commit-by: gyl Merged-by: cann-robot Description: # Pull Request ## 描述 修正文档导航、环境变量目录和日志产品过滤标签,提升 Runtime 中文文档入口的完整性与准确性。 1. 新增统一的错误码参考入口,汇总 RTS、ACL、Dump、Profiling、FE、TEFusion 和 EZ2001 错误码文档。 2. 修正中文文档首页的错误码入口及环境变量参考说明。 3. 完善环境变量参考页的标题、简介和分类层级,补充 ASCEND_LOG_PRINT_TO_STDOUT,并标记已废弃的 ASCEND_SLOG_PRINT_TO_STDOUT。 4. 修复日志简介中 id7、id9 产品过滤标签交叉闭合的问题。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 检查本次新增和调整的 Markdown 相对链接,确认目标文件均存在。 2. 检查日志文档中的产品过滤标签,确认标签完整且嵌套顺序正确。 3. 执行 git diff --check,检查通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:、fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次仅修改文档,无需执行 Runtime 编译和单元测试。 See merge request: cann/runtime!4681 | 3 天前 | |
【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 | 1 个月前 | |
【PR】: 将Dump和Profiling产物解析文档迁移至example目录 Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !4725 merge docs/move-artifact-analysis-to-example into master 【PR】: 将Dump和Profiling产物解析文档迁移至example目录 Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: ## 描述 将 Dump 和 Profiling 产物解析文档从 docs/zh 迁移到对应的 example/5_performance 目录,并补充中英文文档。删除 example/5_performance README 中已失效的产物解读入口,避免继续引用已删除的 docs 路径。 ## 变更类型 - [x] 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 检查 Dump、Profiling 中英文产物解析文档均位于 example/5_performance 对应目录。 2. 执行 git diff --check。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签 ## 其他信息 无。 See merge request: cann/runtime!4725 | 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采集并落盘、获取网络模型中算子的性能数据、可视化展示原始性能数据解析结果等 | create_config |
❓ 常见问题
| 问题类型 | 典型场景 | 入口 |
|---|---|---|
| 入门阶段 | 初始化失败、Device 配置、版本兼容等入门常见问题 | 版本不匹配 · aclInit 失败 · aclrtSetDevice 失败 · 首次aclrtSetDevice耗时 · 默认机制 |
| 基础开发 | 内存管理、Stream 同步、数据复制等基础 API 使用问题 | 内存申请失败 · Stream 下发失败 · 内存策略 · 同步机制 |
| 进阶场景 | 多设备编程、ACL Graph、进程通信等复杂场景问题 | 多Device Stream · ACL Graph 任务提交 · IPC 页表对齐 · P2P 配置失败 |
| 错误排查 | 错误码解读、算子异常、日志定位等诊断方法 | 异步错误码 · 算子输出异常 · 遇错即停定位 · plog 日志定位 |
相关资源
昇腾社区 ·
Runtime 样例仓库 ·
完整文档中心
CANN Runtime 文档 | 华为昇腾