← 完整学习路线

UNIT 57 / 78 · W08-5

用 shape 与 stride 接上矩阵计算

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

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

01 / READ

先知道自己在观察什么

Tensor shape、stride 与 GEMM 分块 →

先读二维地址公式与零复制转置,再只手推一个2×2 tile及K尾部;最后对照独立GEMM reference。

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

02 / PREDICT & RUN

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

按原2×3数据手算转置的3×2坐标,运行确认transpose=1,4;2,5;3,6。

零复制转置视图 →
源码下载与编译入口

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

32-a.cpp

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

03 / CHANGE ONE THING

通过一个变动看清原因

在副本把数据换为[10,20,30,40,50,60],保持shape/stride并更新该正常坐标检查。

修改后应观察到什么

转置为10,40;20,50;30,60;越界与溢出拒绝仍有效。

04 / DO IT YOURSELF

换一组条件,独立解决

独立实现小型矩阵乘法reference:A=[[1,2,3],[4,5,6]]、B=[[1,0],[0,1],[1,1]];再用2×2教学tile分组核对。

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

  • 结果[[4,5],[10,11]];K=3尾部完整处理。
  • 补零维、非方阵和不匹配shape;坐标编码输入避免排列错误被全1数据掩盖。
05 / EXPLAIN & CHECK

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

  1. 转置view为什么可能不复制却改变访问模式?
  2. 同样元素数量为什么不等于同样shape?

本单元的验收依据

坐标与GEMM reference一致,保存CPU模型身份;具备后续厂商tile阅读基础,设备门仍未通过。

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