機器學習系統與基礎設施

受限於記憶體頻寬(memory-bandwidth bound)

當一個核心大半時間都在等資料從記憶體送來、而不是在做算術時,它就是受限於記憶體頻寬——運算單元閒著敲手指,因為餵它的管線已經塞滿。再加多少 FLOPs 的運算能力都沒用;唯一有效的是搬更少的位元組,或把它們搬得更快。

正式地說,當一個核心的算術強度落在屋頂線脊點的左邊,它就是頻寬受限:其可達速率等於強度乘以記憶體頻寬,達不到峰值 FLOP/s。機器學習裡的經典案例是自回歸的大型語言模型解碼:每生成一個 token,都得把整個權重矩陣連同不斷增長的 KV 快取從 HBM 讀出來,卻只在批次為一時做一次向量乘矩陣,所以每位元組的 FLOPs 比值極小。於是吞吐量由權重與快取能多快從 HBM 串流而出決定,而非由 GPU 的張量核心峰值決定。

這個區間解釋了為何那麼多大型語言模型的系統工作瞄準的是位元組而非 FLOPs:權重與 KV 快取的量化、分頁與共享的 KV 快取、推測解碼(speculative decoding),以及把每次權重讀取攤提到許多序列上、藉以把強度推回運算屋頂的大批次請求。

又稱
bandwidth-boundmemory-bound記憶體受限頻寬受限