Agentic Research

統一記憶體(CPU 與 GPU 共用一個記憶體池)

又稱:統一記憶體 · UMA · unified memory · Apple Silicon 記憶體 · 共享記憶體

CPU 和 GPU 共用同一塊記憶體,不必在兩個池子之間複製資料。Apple Silicon 是典型代表。

你會在什麼時候遇到它

當你在比較「為什麼一台 Mac 筆電能載入一台大顯卡桌機載不動的模型」時,答案就在這裡。它解釋了一個看似矛盾的現象:算力較弱的機器,反而能跑更大的模型。不懂這個取捨,你會在選購時只盯著 GPU 核心數,錯過真正決定「能載多大」的記憶體容量與架構。

打個比方

傳統架構像兩個部門各有一間倉庫,貨物要在兩間倉庫之間搬來搬去(複製)。統一記憶體像全公司共用一間大倉庫,誰要貨就地拿,不用搬。代價是:大家擠同一間倉庫、同一條走道(頻寬),人多的時候會互相卡住。

最小範例

離散 GPU(傳統):
  權重必須先放進 VRAM
  VRAM 裝不下 → 溢出到系統記憶體 → 每步都要跨池搬 → 慢到不可用

統一記憶體(Apple Silicon 等):
  CPU/GPU 看的是同一個大池子
  池子夠大 → 大模型整個放得下 → 不必跨池複製
  但頻寬是共享的 → 生成速度(decode)受限於這條共享頻寬

取捨很清楚:省掉了「跨池複製」這個致命瓶頸,換來「頻寬共享」這個較溫和的限制。這就是為什麼大記憶體的 Mac 能跑超大模型,但生成速度不一定比得過高頻寬的離散顯卡。

最常搞錯的地方

  • 以為統一記憶體「沒有瓶頸」。它把複製瓶頸換成了共享頻寬瓶頸 —— 頻寬被 CPU、GPU 與其他程式瓜分,decode 速度因此有上限。
  • 以為統一記憶體等於「GPU 很強」。能讓大模型載入的是記憶體容量;生成快慢是另一回事,取決於頻寬與 GPU 核心。
  • 以為池子大就能隨便開超長上下文。模型與 KV cache 共用同一個池,上下文開太長一樣會把池子吃光、在生成中途失敗。

相關詞條

下一步