詳細解釋
視頻記憶體(Video RAM, VRAM)是GPU上的專用高速記憶體,用於存儲模型參數、中間激活和計算緩衝,是深度學習訓練和推理的關鍵資源。
與系統記憶體(RAM)的區別:
- VRAM:GPU專用,帶寬高(數百GB/s到TB/s),容量較小(8-80GB)
- RAM:CPU使用,帶寬低,容量大
- 數據傳輸:CPU↔GPU通過PCIe,瓶頸嚴重
VRAM使用構成(大型語言模型 (大語言模型 / 大模型)推理):
- 模型權重:參數數 × 精度(FP16=2字节)
- KV快取:緩存的鍵值,與序列長度成正比
- 激活:中間計算結果
- CUDA上下文:CUDA和cuDNN開銷
- 其他緩衝:臨時存儲
OOM(Out of Memory)處理:
- 減少批次大小
- 降低序列長度(大型語言模型 (大語言模型 / 大模型))
- 梯度檢查點 (Gradient Checkpointing):重計算換記憶體
- 模型並行:分散到多GPU
- 卸載 (Offloading):CPU卸載部分數據
- 量化 (模型量化) (Quantization Aware Training):降低精度減少存儲
現代GPU VRAM容量:
- 消費級:RTX 4090 (24GB)、RTX 3090 (24GB)
- 專業級:A100 (40/80GB)、H100 (80GB)
- 多GPU:NVLink連接,視為統一地址空間
優化技術:
- 記憶體池管理:減少碎片化
- 就地操作:減少中間存儲
- 稀疏注意力:減少KV Cache
- Flash Attention:IO感知的記憶體高效注意力
- PagedAttention:vLLM的虛擬記憶體管理
監測工具:
- nvidia-smi:實時監測GPU使用
- PyTorch (Torch Compile):torch.cuda.memory_summary()
- 性能分析器:識別記憶體瓶頸
VRAM是GPU計算的主要瓶頸之一。