Billy Tse
HomeRoadmapBlogContact
Playground
Buy me a bug

© 2026 Billy Tse

OnlyFansLinkedInGitHubEmail
Back to Blog
February 1, 2026•10 min read

NVIDIA DGX Spark + Mac Studio:EXO 1.0 混合架構實現 4 倍 LLM 加速

深入拆解 EXO Labs 最新方案:點樣結合 NVIDIA DGX Spark 嘅強大算力同 Mac Studio 嘅高記憶體頻寬,透過分離 Prefill 同 Decode 階段,實現 4 倍 LLM 推理速度提升。

Inference OptimizationGPUHardware

Exo Labs 最近展示咗一個極具創意嘅混合架構:將 NVIDIA DGX Spark (Compute 強) 同 Apple Mac Studio (Memory Bandwidth 強) 結合,透過 Exo 1.0 實現 4 倍 嘅 LLM 推理加速!這證明了異構計算 (Heterogeneous Computing) 喺 AI 推理上嘅巨大潛力。

TL;DR

  • 🚀 速度提升:混合架構比單獨用 Mac Studio 快 2.8x - 4x
  • 🧠 核心原理:Prefill (Compute-bound) 交俾 DGX Spark,Decode (Memory-bound) 交俾 Mac Studio
  • 🔄 技術突破:透過 Layer-by-layer KV Streaming,將網絡傳輸延遲隱藏喺計算時間內
  • 🛠️ Exo 1.0:自動化整個過程,自動發現設備、規劃分工、優化管線

目錄

基礎知識:影響 LLM 效能嘅兩個關鍵

簡單比喻:閱讀 vs 寫作 (Reading vs Writing)

想像你參加緊一個考試:

  1. Prefill (閱讀題目) = 讀入
    • 你一眼睇晒成條題目:「請用 50 字解釋量子力學。」
    • 你的大腦同時處理所有字,理解佢哋嘅關係。
    • 這就是 Prefill:LLM 一次過「吞」晒你嘅 Prompt。這步驟涉及大量並行矩陣運算,係最消耗 GPU 算力 (CUDA Cores) 嘅部分。
  2. KV Cache (大腦記憶) = 筆記
    • 讀完題目後,你唔會每寫一個字都重新讀一次題目。
    • 你會將題目嘅重點(Key & Value)記喺腦海或者草稿紙上。
    • 這就是 KV Cache:LLM 將理解完嘅 Prompt 存成中間數據,方便之後隨時用,唔使由頭計過。
  3. Decode (逐字作答) = 輸出
    • 你開始寫答案,每次只寫一個字:「量」...「子」...「力」...「學」...
    • 每寫一個字,你都要回顧之前寫咗乜,同埋對照腦海中嘅題目記憶 (KV Cache)。
    • 這就是 Decode:LLM 逐個 Token 生成回應。這過程比起算力,更依賴記憶體頻寬 (VRAM Bandwidth),因為要不斷從記憶體搬運數據。

常見誤解:Decode 唔係只需「翻譯」做文字

好多人以為 Decode 只係將 Token ID 變返做文字 (Detokenization),所以唔使 GPU。這是不對的!

  • Detokenization (翻譯):的確唔使 GPU,CPU 做就得。
  • Decode (生成):係指計算下一個 Token 是什麼。這一步仍然需要運行整個神經網絡 (Matrix Multiplication)。

為什麼 Decode 還是用 Mac Studio?

  • 雖然 Decode 要算力,但等待數據 (Memory Latency) 的時間比計算數據 (Compute) 的時間長得多。
  • 想像一個廚師 (GPU) 切洋蔥只需 1 秒,但去雪櫃攞洋蔥要 10 秒。
  • DGX (Prefill):一次過切 100 個洋蔥 (Prefill),廚師手快最重要。
  • Mac (Decode):每次只切 1 個洋蔥,切完又要去雪櫃攞下一個。這時雪櫃門開得快 (Memory Bandwidth) 比廚師手快更重要。

點解 Decode 要逐個字出?唔可以一次過出晒?

這是一個非常好的問題!這涉及到 LLM 的核心原理:Autoregressive (自回歸)。

  1. 因果關係:LLM 生成每一個字時,都必須基於前面所有字。
    • 例子:「我今日早餐食咗...」
    • 下一個字可能是「麵包」、「通粉」或「空氣」。
    • 在模型決定選「麵包」之前,它根本不知道再下一個字應該接什麼(例如接「好食」定「好硬」)。
  2. 未知 vs 已知:
    • Prefill (Prompt):是用戶輸入的,內容是已知的,所以可以並行處理(Parallel Processing),一次過算晒。
    • Decode (Output):是模型生成的,內容是未知的。必須生成了第 1 個字,才能算第 2 個字;生成了第 2 個,才能算第 3 個。

這就是為什麼 Decode 必須是 Serial (串行) 的,無法並行加速,所以只能拼命提高單次存取記憶體的速度 (Memory Bandwidth)。

技術細節與瓶頸

要理解點解 Exo 咁做,首先要知 LLM 推理嘅兩個階段同佢哋嘅瓶頸:

image.png

1. Prefill 階段 (Time-to-First-Token, TTFT)

  • 動作:處理你輸入嘅 Prompt,生成第一個 Token。
  • 特徵:需要同時處理所有輸入 Tokens,計算量隨長度平方增長 (Theta(s2)Theta(s^2)Theta(s2))。
  • 算術強度 (Arithmetic Intensity):高 (Matrix-Matrix Multiplications)。
  • 瓶頸:Compute-bound (算力受限)。
  • 最佳硬件:高 TFLOPs 嘅 GPU (如 NVIDIA)。

2. Decode 階段 (Tokens Per Second, TPS)

  • 動作:逐個生成後續 Tokens (Auto-regressive loop)。
  • 特徵:每生成一個 Token 都要讀取整個 KV Cache。
  • 算術強度:低 (Vector-Matrix Multiplications)。
  • 瓶頸:Memory-bound (記憶體頻寬受限)。
  • 最佳硬件:高 Memory Bandwidth 嘅設備 (如 Mac Studio, HBM)。

點解要 DGX Spark + Mac Studio?

Exo 發現這兩款硬件剛好係互補:

規格NVIDIA DGX SparkMac Studio (M3 Ultra)
:---:---:---
強項算力 (~100 TFLOPs)頻寬 (819 GB/s)
弱項頻寬 (273 GB/s)算力 (~26 TFLOPs)
適合階段Prefill (快 4 倍)Decode (快 3 倍)

與其二選一,Exo 決定兩個一齊用:DGX 做 Prefill,Mac 做 Decode。

技術核心:Layer-by-layer KV Streaming

最直觀嘅做法係「DGX 做完 Prefill -> 傳整個 KV Cache -> Mac 做 Decode」。但 KV Cache 好大,網絡傳輸會變成新瓶頸。

Exo 採用咗 Pipeline 技術,將「計算」同「傳輸」重疊 (Overlap):

  1. DGX 計算第 1 層 (Layer 1) 嘅 KV。
  2. 當 DGX 開始計算第 2 層時,同時將第 1 層嘅 KV 經網絡傳俾 Mac。
  3. 如此類推,當 DGX 算完最後一層時,大部分 KV 已經傳送完畢,Mac 可以即刻開始 Decode。

深度技術:幾時先做到 "Zero-Overhead"?

要完全隱藏網絡延遲,必須滿足一個條件:

「計算一層嘅時間 (tcompt_{comp}tcomp​)」 > 「傳輸一層 KV 嘅時間 (tsendt_{send}tsend​)」

tcomp>tsendt_{comp} > t_{send}tcomp​>tsend​

數學推導

  • 計算時間 tcomp≈c1s2/Pt_{comp} \approx c_1 s^2 / Ptcomp​≈c1​s2/P (其中 PPP 係算力,sss 係序列長度)
  • 傳輸時間 tsend≈q⋅c2⋅s/Bt_{send} \approx q \cdot c_2 \cdot s / Btsend​≈q⋅c2​⋅s/B (其中 BBB 係網絡頻寬,qqq 係 quantization)

這意味著 Prompt 長度 (sss) 必須足夠長,計算時間先會超過傳輸時間。

實際門檻 (Thresholds)

對於 DGX Spark (100 TFLOPs) 連接 Mac Studio (10GbE):

  • Llama-3 70B (GQA, K=16):Prompt 需要 > 5,000 tokens
  • Llama-3 8B (GQA, K=8):Prompt 需要 > 10,000 tokens
  • Llama-2 7B (MHA, K=2):Prompt 需要 > 40,000 tokens

結論:這個架構特別適合 Long Context (長文本) 應用!

實測結果:Llama-3.1 8B

測試環境:Prompt 8,192 tokens (長 Context),生成 32 tokens。

配置Prefill 時間Generation 時間總時間加速比
:---:---:---:---:---
DGX Spark 單獨1.47s2.87s4.34s1.9x
Mac Studio 單獨5.57s0.85s6.42s1.0x (Baseline)
DGX + Mac Studio1.47s0.85s2.32s2.8x

結果分析:

  • Prefill 用咗 DGX 嘅速度 (1.47s vs 5.57s) -> 3.8x 加速
  • Generation 用咗 Mac 嘅速度 (0.85s vs 2.87s) -> 3.4x 加速
  • 最終達成 2.8 倍 整體加速!

Exo 1.0:自動化異構推理

最勁嘅係你唔需要人手寫 code 去做呢啲複雜調度。Exo 1.0 係一個自動化框架:

  1. Discover:自動搵出網絡內所有裝置 (Mac, NVIDIA GPU, Consumer PCs)。
  2. Profile:測試每部機嘅算力 (TFLOPs)、記憶體頻寬 (GB/s)、網絡速度。
  3. Plan:
    • 邊部機做 Prefill?邊部做 Decode?
    • 需唔需要 Pipeline?
    • 幾時開始 Stream KV?
    • 如何適應網絡波動?

這意味著你可以將手上唔同嘅硬件 (Gaming PC + Mac + Server) 組合埋一齊,變成一個強大嘅推理 Cluster,打破單機限制。

結語

Exo 展示咗 AI 推理嘅未來未必係單一強大嘅 GPU,而係 Heterogeneous Cluster (異構集群)。

  • 用 Compute-heavy 硬件 (NVIDIA) 攻克 Prefill。
  • 用 Bandwidth-heavy 硬件 (Apple Silicon) 攻克 Decode。

對於我哋呢啲有 Mac Studio 又有 GPU Server 嘅人嚟講,Exo 絕對係神器,令閒置算力變成超級電腦!


參考資源:Exo Labs Blog

Back to all articles
目錄