AI Infra

Tags

#roofline

8posts

Day 30memory-bound

Day 30 · M1 总复习:一页笔记、20 道全月自测、错题本汇总与 M2 预告

把 M1 四周加加餐周压成一页:W1 的账本、W2 的计时与 profiler、W3 的实测屋顶、W4 的环境流水线、加餐周的硬件与数值地基。然后合上笔记做 20 道全月自测,把三十天的错题按形状、单位、异步、标称、计费五类归根,对照 Day 0 的目标逐条打勾,最后写 M2 的预告。

Day 18memory-bound

Day 18 · W3 复习:自己的 roofline、五道验收题、错题本

把测带宽、测算力、画 roofline、扫 batch、对比标称这五天压成一页笔记:每一步的公式、预期区间和坑放在一起。合上笔记做路线图 W3 的五道验收题,再把这周最容易测错的地方一条条摊开。屋顶从这周起是自己测的,不是抄的。

Day 17compute-bound

Day 17 · 标称 vs 实测:哪些 kernel 能打到屋顶,哪些永远打不到

把 Day 13、14 测出来的带宽和算力跟规格表并排放,算清标称值是怎么来的、实测为什么差那一截。再给每种 kernel 算一遍算术强度,标到 roofline 上:大矩阵乘能碰到屋顶,elementwise、softmax、norm 这些永远贴着斜线的底部,而这正是 M5 要写 fused kernel 的全部理由。

Day 16memory-bound

Day 16 · batch 从 1 扫到 128:吞吐曲线在哪里离开斜线

把 batch 开到 1、4、16、64、128,测 decode 每步时间,算吞吐,标到 Day 15 的 roofline 上。W1 预测 batch 到 ridge 附近才碰屋顶,今天要看这条曲线实际在哪弯、为什么弯——弯的原因不是 FLOP 追上了带宽,是 KV cache 的字节跟着 batch 一起涨。

Day 15memory-bound

Day 15 · 用实测值画自己的 roofline,算实测 ridge point

把 Day 13 测出的带宽、Day 14 测出的算力换掉标称值,用 matplotlib 画出自己这张卡的 roofline,再把 Day 9 的 TPOT 换算成图上的一个点。屋顶从此是自己测出来的,不是宣传页上抄来的。

Day 05memory-bound

Day 5 · 显存花在哪、decode 为什么最快只有 150 token/s:算术强度与 roofline

把 7B 模型推理时的显存拆成四项算清楚,再用一次除法算出 decode 的物理上限。最后引出整条路线最重要的一个数:ridge point ≈ 153。附五张卡的 ridge point 对照、量化和 KV cache 读取怎么改这张图。

Day 01memory-bound

Day 1 · 让深度学习 Brrrr:三种瓶颈怎么判定

读 Horace He 的 Brrrr。一段代码跑得慢,只可能卡在三个地方:算力、显存带宽、调度开销。今天学的是怎么判断卡在哪一个,判错了后面所有优化都是白干。附判定流程图、三段式时间线和一个可以在 Colab 上跑的小实验。

memory-bound

Decode is memory-bound, and the arithmetic says so before you profile

One FLOP per byte. That single ratio explains why a batch-size-1 decode step uses under one percent of an A100, and why most "make it faster" instincts are aimed at the wrong resource.