GPU Compute
│
┌──────┴──────┐
│ │
Registers Shared Memory
│ │
└──────┬──────┘
│
L1
│
L2
│
Global Memory
│
VRAM
往上
↑
速度更快
容量更小
离计算单元更近
往下
↓
速度更慢
容量更大
离计算单元更远
Register 是最靠近计算单元的存储,它的速度非常快,作用范围单个thread,所以每个线程都有自己的register。shared memory是block的小仓库,作用范围block内线程共享。L1 Cache它主要用于缓存近期访问的数据,可以理解位GPU计算单元旁边的小型高速缓存,L2 比 L1 更大,但通常也更远、更慢,它是 GPU 多个计算单元之间可以共享的数据缓存层。global memory速度相对慢,延迟高,但是容量大。
Global Memory 和 VRAM 在 CUDA 语境里经常指的是同一大类显存资源;不要把它们当成两个完全独立的物理内存层.
| 内存 | 谁使用 | 核心特点 |
|---|---|---|
| Register | 单个 Thread | 极快、很小 |
| Shared Memory | Block 内 Threads | 快、可共享 |
| L1 | GPU 硬件 | 高速 Cache |
| L2 | GPU 多个计算单元共享 | 更大、较慢 |
| Global Memory / VRAM | GPU | 大、相对慢 |