【infra之路】矩阵乘法(GEMM) Tiling 复用机制总结

在 C=A×BC = A \times BC=A×B 的 Tiling 优化中,关于"A 和 B 是否都被复用"的结论如下:

1. 核心结论
  • 理论层面:A 和 B 的总复用次数是对称的(A 复用 N 次,B 复用 M 次)。
  • 工程实现层面 :在单级 Tiling 的最内层计算循环中,通常只有一个切块被真正"驻留复用",另一个是"流式加载"。你的直觉是正确的。
2. 为什么只复用一个?

受限于片上存储(Register/L1/Shared Memory)容量,无法同时容纳所有数据。必须做出选择:

  • 驻留数据 (Resident):被加载一次后,在内层循环中被反复使用(通常是 A)。
  • 流式数据 (Streaming):每次迭代加载新块,用完即弃(通常是 B)。
  • 决定因素:取决于循环嵌套顺序(Loop Ordering)和 MNK 的形状,而非矩阵本身。
3. 例外情况

只有在 2D Tiling 或 多级存储层次 设计中,为了追求极致算术强度,才会让 A 和 B 同时在片上驻留并交叉复用。但这属于高阶优化,非常规默认行为。

💡 实践建议

编写 Kernel 时,始终明确区分哪个是 Resident Tile、哪个是 Streaming Tile。不要试图在最小存储层级让两者同时完美复用,这往往导致性能下降。复用策略应服务于存储层次的设计,而非数学上的对称性。

相关推荐
198******1263413 小时前
2026深度解读:Work Agent长程任务的技术机制与落地能力
人工智能
老金带你玩AI13 小时前
别只让AI解释,让它做个你能看懂的东西
人工智能
iffy114 小时前
Deepseek hardness 桌面版 + ollama
人工智能
Xiaofeng369314 小时前
知漫剧入门科普:一站式工作台一句话生成漫剧
人工智能
“AI国潮设计-小江”14 小时前
《Python+SDXL实战:用ControlNet精准控制“英歌舞翻糖吐司”构图,附批量生成脚本》
开发语言·人工智能·python·prompt·aigc
MobotStone14 小时前
万物皆插件:DeepSeek Harness 底层揭秘,脚手架如何蜕变为产品
人工智能
youdexiang15 小时前
Android录音软件时间关键词检索功能分析
java·人工智能
WUYOUGYLU15 小时前
大模型时代:人与智能的共同进化
人工智能
netkiller-BG7NYT15 小时前
基于图像识别的人工智能中医望诊方案
人工智能·百度
W***259215 小时前
Work Agent深度解读:AI长程任务的执行机制与落地形态
人工智能