← 完整学习路线

UNIT 72 / 78 · W11-4

ABI、符号与模块生命

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

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

01 / READ

先知道自己在观察什么

ABI、装载与 runtime:找到函数还不等于能安全调用 →

读原创参数块的字节合同,再追符号、目标兼容、buffer存活与模块卸载;区分模型和真实loader。

ABI、装载与 runtime:找到函数还不等于能安全调用 →

分别查ORC/JITLink与AMDGPU代码对象文档,注明它们关注的不同层次。

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

本单元另列的补授

以下时间加在原单元预算之外;完成对应读法后再进入依赖它的任务。

02 / PREDICT & RUN

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

逐字节推导n=3、token=258在16字节小端教学格式中的位置,再运行编码/解码检查。

显式编码教学参数块 →
源码下载与编译入口

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

48-a.cpp

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

03 / CHANGE ONE THING

通过一个变动看清原因

在副本把token改为513,保持字段宽度、偏移和零填充,更新该值的回读检查。

修改后应观察到什么

size仍16、n仍3、token回读513;token低两字节为1、2。

04 / DO IT YOURSELF

换一组条件,独立解决

为未来主项目后端写装载前检查表:目标架构、编译flags、入口、shape/dtype/layout、参数容量及最后一次使用;再给missing符号定义明确拒绝。

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

  • 未知入口在提交前拒绝;模块和buffer不早于所有使用者完成而回收。
  • 自定义16字节格式明确不是任一厂商真实ABI;缓存key不能只有源码。
05 / EXPLAIN & CHECK

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

  1. 找到函数名为什么仍不足以安全调用?
  2. 相同源码在不同目标或shape下为何可能需要不同缓存产物?

本单元的验收依据

教学格式回环通过,真实ABI与装载证据未被模型替代;接口检查表可用于最后答辩。

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