GPU 读取内存时究竟发生了什么

What happens when a GPU reads memory

GPU 读取内存时究竟发生了什么

本文深入剖析了 RTX 4090 硬件内部,追踪一条 CUDA 内核中的全局加载指令(LDG.E)从 Warp 发起请求到最终从 DRAM 获取数据的完整旅程。我们详细拆解了数据如何经过寄存器文件、L1 缓存、地址翻译单元(TLB)、L2 缓存切片,最终抵达 GDDR6X 显存芯片的物理过程。文章通过时序实验揭示了 L1 命中、L2 命中以及 DRAM 激活与读取的具体延迟成本,解释了虚拟地址到物理地址的转换机制,以及 DRAM 内部行激活(activate)和列读取(read)的底层运作原理。这些细节对于理解 GPU 性能瓶颈和优化 SASS 指令至关重要。

服务这条指令需要四个 32 字节扇区、一个缓存行、一次地址转换、一次交叉开关穿越、三十六个 L2 切片中的一个,以及当所有缓存都未命中时,在 DRAM 芯片上的一次激活和四次列读取。
  1. empiricus

    长期以来,芯片厂商倾向于简化硬件,转而依赖软件进行适配和优化。但几十年来,这种策略一直未能奏效。如今,我们有势不可挡的 AI 能够相对快速地微调内核。也许这次简化硬件真的能行得通?注:我不确定 TPU/NPU 是否不仅过于简单,而且功能也太受限。

  2. xyzsparetimexyz

    > NVIDIA 几乎没有记录这条路径的细节,至少没有达到我们期望的程度,所以我们将在硬件上运行计时实验来确定它

    或者,你大可以直接使用 AMD 的指令集架构(ISA)。

  3. KellyCriterion

    文章写得非常好,让我想起了:

    "每个程序员都应该知道的内存知识"

    https://github.com/Ty-Chen/Reading-List/blob/master/What%20e...

同日更多故事

2026-08-21