GPU 读取内存时究竟发生了什么
What happens when a GPU reads memory

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