首页优化地图方法索引基础概念
返回技术汇总表 ↗

F002 · 基础讲解

设备内存基础:HBM、片上存储与带宽

容量决定放不放得下,带宽决定搬得有多快;计算能力决定算得有多快。

本页目录

01 · 大仓库与小工作台

可以把 HBM 理解为设备上的大仓库,把片上存储理解为靠近计算单元的小工作台。工作台近、访问快,但容量小;仓库容量大,但搬运需要时间。这个类比只解释距离和容量,不代表 HBM 本身性能很低。

存储位置作用阅读时注意
HBM / 设备主存存放模型权重、输入、KV、输出及较大的中间结果部分设备使用其他显存技术,不是所有 GPU / NPU 都是 HBM。
片上共享内存等线程协作使用的临时数据区,适合分块计算程序管理的共享内存与硬件自动管理的缓存不是同一概念。
寄存器计算线程当前使用的值和累积量也是有限资源,使用过多会影响并发或造成额外访存。

SRAM 是一类存储实现技术;“SRAM=共享内存=所有缓存”并不准确。FlashAttention 的教学图常用 SRAM 概括高速片上工作空间,实际实现还涉及寄存器和其他存储层次。

02 · 容量、带宽、算力分开看

容量是能存多少字节;带宽是单位时间能搬多少字节;算力是单位时间能完成多少运算。一个矩阵即使放得下,也可能反复读写而耗时。相反,如果计算本身很重,少搬一点数据也可能不是主要收益。

用小例子理解符号
教学假设:需要传 2 GB,实际持续带宽为 1 TB/s
仅搬运时间约为 2 GB / 1000 GB/s = 2 ms

这是简化估算,不含启动、缓存命中、争用和计算重叠。

03 · 中间结果为什么会增加流量

若某一步把大矩阵写到 HBM,下一步再从 HBM 读回来,至少多出一次完整写和一次完整读。把两个操作衔接到同一片上工作区,就可能少掉这两次搬运。输入仍需读取,最终输出仍需保存。

分块让工作集适配片上容量;复用让已经读来的数据用于更多计算。FlashAttention 把分数块马上用于更新输出,避免完整分数 / 概率矩阵在 HBM 中周转。

04 · 怎样理解“瓶颈”

如果计算单元常常在等数据,这段执行偏向访存瓶颈;如果数据供给充足但计算单元一直忙,则更偏向计算瓶颈。启动、同步和并发不足也可能拖慢执行。实际判断需要测量,不能仅凭算子名称决定。

  • 比较需要多少运算、搬多少字节。
  • 观察 profiler 中的内核、读写、空闲与同步。
  • 改一个变量再测:长度、批次、精度或后端。

依据:FlashAttention 原始论文 ↗ · PyTorch · Performance Tuning Guide ↗

带着这些概念,继续读优化方法

参考资料

继续:注意力结构选择:MQA / GQA / MLA →返回优化总览
AI Infra 知识库 · 总览 → 独立讲解网站更新 2026-10-08
搜索知识库

搜索方法与基础概念 · Esc 关闭