記憶體受限

Memory-bound

受記憶體頻寬限制

詳細解釋

計算任務的瓶頸在於記憶體讀寫速度而非處理器運算能力的狀態。在 AI 推理中,特別是 LLM 的自回歸生成,常出現此現象。

為何 LLM 推理 memory-bound:

  • 每生成一個 token,需讀取整個模型權重(數百 GB 的 HBM 訪問)
  • 計算量相對小:矩陣向量乘法 vs 訓練時的矩陣矩陣乘法
  • 結果:GPU 計算單元閒置等待數據,利用率(GPU Util)顯示 10-30%

識別方法:

  • 監控工具:Nsight Systems、PyTorch Profiler
  • 指標:如果計算單元利用率低但記憶體帶寬接近滿載,則為 memory-bound
  • 實驗:增加批次大小,如果吞吐量不成比例提升,確認是記憶體瓶頸

優化策略:

  • 量化:INT8/INT4 減少權重讀取量
  • KV Cache 優化:壓縮、分頁(vLLM)、量化(KV Cache INT8)
  • 連續批處理:動態批處理提高並行性,攤銷記憶體讀取成本
  • 閃存注意力:減少 HBM 讀寫(FlashAttention、FlashInfer)
  • 模型並行:分散權重到多 GPU,增加聚合帶寬

與 compute-bound 的對比:

  • Memory-bound:換更強 GPU 無效,需優化數據流或量化
  • Compute-bound:升級 GPU 有效,如訓練時的大批次矩陣乘法

對成本的影響:Memory-bound 應用(如 LLM 推理服務)的性價比優化重點在於記憶體帶寬而非 FLOPS,這解釋了為什麼 HBM 帶寬比計算能力更受關注。

探索更多AI詞彙

查看所有分類,繼續學習AI知識