MAQ 在一台雙卡 RTX PRO 6000 96GB(Blackwell Max-Q Workstation Edition,功耗上限 300W,兩卡之間無 NVLink)機器上,跑了一輪推論與訓練的 benchmark:vLLM 與 ollama 的生成吞吐、以及 Qwen2.5-7B 全參數微調的訓練吞吐。本文列出全部量測到的數字、測試方法與功耗觀察,並說明 vLLM 的 tensor parallel 在這個硬體配置上跑不起來的實況。
一、測試環境
| 項目 | 數值 |
|---|---|
| 顯示卡 | 2× NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition,各 96GB(實際回報 97,887 MiB) |
| 功耗上限 | enforced 300W(該卡 max 325W/min 250W) |
| 卡間拓樸 | nvidia-smi topo -m = NODE,無 NVLink,跨卡走 PCIe |
| 處理器/記憶體 | AMD Threadripper 9960X(24 核 48 執行緒)/122GB 系統記憶體 |
| 驅動/CUDA | NVIDIA Driver 595.91.07、CUDA 13.2 |
| 推論引擎 | vLLM 0.29.0(官方 docker 映像)、ollama(llama.cpp 底層) |
| 訓練 | PyTorch 2.9.0 + CUDA 12.8 官方 docker、transformers + DDP |
二、單串流推論
gpt-oss-120b(MXFP4 原生量化,MoE 116.8B 總參數/每 token 約 5B 啟動)單卡執行、單一在途請求、逐 token 生成——這是一般人開一個對話視窗打字聊天時的實際情境。
| 引擎 | 設定 | 生成吞吐(decode) |
|---|---|---|
| vLLM | completions endpoint,強制輸出 512 token | 185 tok/s(TPOT 5.3ms) |
| ollama | /api/generate,num_predict 1200 | 185.6 tok/s |
兩套完全不同的推論引擎測到同一個數字,每秒約 185 個 token。這是因為單串流 decode 每產生一個 token,都要把被啟動的那批專家權重從顯示記憶體讀進運算單元一次,瓶頸在記憶體頻寬——GPU 的運算單元其實大部分時間在等記憶體,這個階段 GPU 功耗遠低於 300W 上限。要拉高吞吐,得靠下一節的批次推論把運算單元餵飽。
三、批次推論
把單卡 vLLM 的並行請求數往上加(模擬多人同時使用),輸入 512 token、強制輸出 512 token:
| 同時並行請求數 | 總輸出吞吐 | 每個請求的 decode 速度 | 中位首字延遲(TTFT) | GPU0 功耗 |
|---|---|---|---|---|
| 1 | 185 tok/s | 185 tok/s | 約 18 ms | 遠低於上限 |
| 16 | 894 tok/s | 約 58 tok/s | 467 ms | — |
| 64 | 1,786 tok/s | 約 29 tok/s | 945 ms | 峰值 300W、忙碌均值 298W |
並行度拉到 64 時,總輸出吞吐衝到每秒 1,786 個 token,GPU 這時被打滿 300W——批次推論把很多請求的運算合在一起做,運算單元終於有事情做、吃得到電。代價是單一請求的體感變慢:每個請求的 decode 從 185 掉到 29 tok/s,首字要等將近 1 秒。這是「總吞吐」與「單人體感」之間的取捨。
四、訓練吞吐與雙卡擴展
Qwen2.5-7B 全參數微調(bf16、AdamW 最佳化器、gradient checkpointing、每卡 batch 2、序列長度 2048):
| 配置 | 總訓練吞吐 | 每卡吞吐 | 每卡峰值記憶體 | GPU 功耗 |
|---|---|---|---|---|
| 單卡 | 3,243 tok/s | 3,243 tok/s | 77.4 GB | — |
| 雙卡 DDP | 6,010 tok/s | 約 3,000 tok/s | 92.7 GB(逼近上限) | 兩卡峰值 305W、忙碌均值 291–296W |
雙卡擴展效率 = 6,010 ÷(3,243 × 2)= 92.7%。DDP 的梯度 all-reduce 走 PCIe(沒有 NVLink)只吃掉大約 7% 的每卡吞吐——對訓練這種「前向加反向算一大段、才通訊一次梯度」的工作型態,PCIe 頻寬夠用。訓練時兩張卡都咬在 300W 上限(瞬時峰值 305W),運算單元是滿載的。需要注意,DDP 每卡仍要放下完整的模型與最佳化器狀態,雙卡的每卡峰值記憶體(92.7GB)比單卡(77.4GB)更高、逼近 96GB 上限——DDP 只加吞吐,不省記憶體。這次要跑起來也需設 NCCL_P2P_DISABLE=1(原因見下節)。
五、tensor parallel 的現況:vLLM 跑不動,DDP 可以
「真正的多卡並行推論」(tensor parallel,每一層都把運算切開分給多張卡同時做)這次沒有測到數字。vLLM 的 tensor parallel 在這台無 NVLink 的雙卡 Max-Q 上跑不起來:NCCL 初始化會卡死,要設 NCCL_P2P_DISABLE=1 才過;過了之後,vLLM 的 FlashInfer attention kernel 首次暖機又慢到不實際——兩張卡顯示 100% 使用率,卻只吃 97W,跑十幾分鐘還沒完成。這是 vLLM 0.29、gpt-oss 的 MXFP4、Blackwell 架構、停用 P2P 幾個條件疊在一起的軟體邊角問題。
這不代表硬體不能做多卡集合通訊:PyTorch 的 DDP 訓練用同一個 NCCL_P2P_DISABLE=1 就跑得動,擴展效率 92.7%。兩者差別在通訊型態——DDP 每個訓練步只做一次梯度同步,對延遲不敏感;tensor parallel 推論則是每一層 attention 與 MLP 都要跨卡通訊,對延遲極度敏感,沒有 NVLink 的低延遲互連就會被放大。要拿到真正的 vLLM tensor parallel 推論數字,可能需要換 vLLM 版本、換非 gpt-oss 的模型測試,或加裝 NVLink 橋接。
六、其他模型與 layer-split 多卡推論
ollama(底層 llama.cpp)的 layer-split——把模型依層數切開放到多張卡、推論時各層依序接力——這種方式不走 NCCL 集合通訊,只做點對點的中間結果複製,在這台機器上正常運作:
| 模型 | 量化/參數 | 放置 | decode 吞吐 |
|---|---|---|---|
| gpt-oss-120b | MXFP4,MoE 116.8B/約 5B 啟動 | 單卡(65GB) | 185.6 tok/s |
| gemma4-31b(dense) | Q4_K_M,31B 密集 | 兩卡(34GB,ollama 自動分配) | 64.9 tok/s |
| nemotron-120b | Q4_K_M,MoE 123B/12B 啟動 | 兩卡 layer-split(97GB) | 120.6 tok/s |
密集架構的 gemma4-31b(每個 token 都要算滿全部參數)每秒 64.9 個 token;MoE 架構的 nemotron-120b 雖然總參數 123B,但每 token 只啟動 12B,跨兩卡 layer-split 下仍有每秒 120.6 個 token。同一台機器上,模型是不是 MoE、以及是密集還是稀疏啟動,比總參數量更能決定生成速度。
七、測試方法
vLLM 吞吐用官方的 vllm bench serve,走 /v1/completions 端點、--ignore-eos 強制輸出滿指定長度。這裡有個坑:一開始用 /v1/chat/completions 端點測,gpt-oss 的 harmony 對話格式會讓輸出提早結束、長度不受控,量到的吞吐是假的(一度量到 68 tok/s);改用 completions 端點強制輸出後才正常。ollama 吞吐取自 /api/generate(stream:false)回傳的計時欄位,decode = eval_count / eval_duration。訓練用 torchrun --nproc_per_node=2 跑 DDP,量測穩態 30 步的 tokens/sec。功耗全程以 nvidia-smi 每 0.5 至 1 秒取樣。
資料來源:本文數據為 MAQ 於自有機器實測所得(2026 年 9 月 10 日),vLLM 0.29.0 官方 docker 映像、ollama、PyTorch 2.9.0,功耗以 nvidia-smi 直接讀取,測試方法與原始指令已列於內文。gpt-oss-120b 之 MoE 架構與參數規模引自 OpenAI 官方模型卡;量化格式定義引自各推論引擎官方文件。本文數字僅反映測試當下之特定環境(300W 功耗上限、無 NVLink),不代表該顯示卡之架構效能上限,讀者評估採購時宜以自身工作負載與框架另行實測。單串流 decode 之功耗觀察取樣數不多,不應視為精確測量。vLLM tensor parallel 未能在本機成功執行,相關數字從缺。本文非受任何公司委託或贊助,亦未收受對價;MAQ 為 AI 硬體系統整合商,銷售之工作站包含文中測試之顯示卡型號,於本題具有商業利益。NVIDIA、RTX、Blackwell、CUDA、NVLink 為 NVIDIA Corporation 之商標;AMD、Threadripper 為 Advanced Micro Devices, Inc. 之商標;OpenAI、gpt-oss 為 OpenAI 之商標;Qwen、通義千問為阿里巴巴集團之商標;Google、Gemma 為 Google LLC 之商標;其餘商標歸各自所有者所有。