← 完整学习路线

UNIT 60 / 78 · W09-3

ROCm 故障该回到哪一层

本单元预计 4 核心小时。可以分成多个学习时段,按完整小节推进;停下来时留下输入、命令、结果和下一步。

时间包含阅读、编码与检查,是学习预算而非期限。打开此页只保存阅读位置,不代表通过验收。

01 / READ

先知道自己在观察什么

ROCm 各层:一次请求由谁负责 →

沿API、runtime、用户队列、内核驱动和设备的职责追踪一次请求,不把队列路径误说成完全没有驱动。

ROCm 各层:一次请求由谁负责 →

分别打开ROCr与AMDGPU官方文档,记录它们回答的资源/装载问题和各自版本。

先备不清楚时,沿章节入口补读;不要依赖翻过页数判断进度。

02 / PREDICT & RUN

先留下自己的预测或独立尝试

先将allocation、code_object、wrong_value三类失败配到最早可检查处,再运行教学分类。

故障定位入口 →
源码下载与编译入口

下载到自己的练习目录。按本节给出的完整命令编译;多文件与driver要求见原任务。需要时查阅文件保存与编译操作 →

35-b.cpp

先保存预测,再核对正文标明的预期或诊断。完整构建、多文件与设备实验按原任务命令执行。

03 / CHANGE ONE THING

通过一个变动看清原因

在自己的分类副本增加‘没有找到支持设备’与‘回读值只错最后一项’两个案例,明确这是诊断建议而非实际SDK错误码。

修改后应观察到什么

前者优先查环境/设备枚举,后者先查尺寸、索引与独立oracle;不能凭分类证明根因。

04 / DO IT YOURSELF

换一组条件,独立解决

为主项目的未来HIP后端写三段最小故障报告模板,每段要求输入、版本、完整命令、最早错误与复现范围;填入假设案例并清楚标为假设。

用这些条件检查自己的实现

  • 目标不兼容与数学结果错误分开;不把缺设备当算法失败。
  • 报告不含私密SDK产物或凭据,所有接口结论能回到公开来源。
05 / EXPLAIN & CHECK

用证据决定是否进入下一单元

  1. 普通runtime调用与受保护内核操作各承担什么?
  2. 为什么每个错误都拖到最后回读会增加定位难度?

本单元的验收依据

三类报告与责任图可审查;模型分类和真实诊断证据保持分开。

留下自己的代码或推演、测试输入、真实输出和仍不确定的问题。未达到要求时,下一次继续本单元。