NVIDIA 的大語言模型 (LLM) 推理速度創下了世界紀錄。在包含 400 億參數的 Llama 4 Maverick 模型 ( Llama 4 系列中可用的最大、最強大的模型) 上,配備 8 個 NVIDIA Blackwell GPU 的單個 NVIDIA DGX B200 節點可為每位用戶實現每秒 1,000 多個 token (TPS) 。這一速度由 AI 基準測試服務 Artificial Analysis 獨立衡量。
憑借這一記錄,Blackwell 在任何部署場景中都是 Llama 4 的理想硬件,無論是要更大限度地提高吞吐量,還是要更大限度地降低延遲。NVIDIA Blackwell 是第一個在此模型上突破 1,000 TPS/user 的里程碑的平臺,在我們的最高吞吐量配置下,它達到了 72,000 TPS/server。
為了充分利用 Blackwell GPU,NVIDIA 使用 TensorRT-LLM 進行了大量軟件優化,并使用 EAGLE-3 技術訓練了一個預測性解碼草稿模型。結合這些方法,NVIDIA 實現了 4 倍的速度提升,相較于之前的最佳 Blackwell 基準。
模型準確性結果
下文所述的優化可顯著提高性能,同時保持響應準確性。我們將 FP8 數據類型用于 GEMMs、多專家模型 (MoE) 和 Attention 運算,以減小模型大小,并利用 Blackwell Tensor Core 技術提供的高 FP8 吞吐量。在許多指標中,使用 FP8 數據格式時的準確性與 Artificial Analysis BF16 的準確性相匹配,如下表所示:
? | LiveCodeBench | AIME 2024 | GPQA Diamond | MATH-500 |
? | 0.397 | 0.39 | 0.671 | 0.889 |
經過優化的 Llama 4 Maverick (FP8) | 0.383 | 0.40 | 0.686 | 0.876 |
為什么最小化延遲很重要?
大多數生成式 AI 應用場景都需要平衡吞吐量和延遲,確保許多客戶能夠同時享受“足夠好”的體驗。但是,對于必須快速做出重要決策的關鍵應用程序而言,最大限度地降低單個客戶端的延遲至關重要。正如 TPS/用戶記錄所示,Blackwell 硬件是任何任務的最佳選擇,無論您是需要更大限度地提高吞吐量、平衡吞吐量和延遲,還是需要更大限度地降低單個用戶的延遲 (本文重點)。
針對最小化延遲進行優化
下面概述了 NVIDIA 在推理期間應用的內核優化和融合 (用紅色虛線表示) 。NVIDIA 實施了多個低延遲 GEMM 內核,并應用了各種內核融合 (例如 FC13 + SwiGLU、FC_QKV + attn_scaling 和 AllReduce + RMSnorm) ,以確保 Blackwell 在最低延遲場景中表現出色。

CUDA 內核優化和融合
NVIDIA 針對 GEMM、MoE 和 Attention 運算優化了 CUDA 內核,以在 Blackwell GPU 上實現出色性能。
- 利用空間分區 (也稱為 warp 專門化) 并設計 GEMM 內核以高效方式從內存加載數據,以更大限度地利用 NVIDIA DGX 系統提供的巨大內存帶寬 – 總計 64TB/s HBM3e 帶寬。
- 在使用 Blackwell 的第五代 Tensor Core 進行矩陣乘法計算后,以 swizzled 格式混洗 GEMM 權重,以便在加載 Tensor 內存的計算結果時實現更好的布局。
- 通過按 K 和 V 張量的序列長度維度劃分計算,優化注意力內核的性能,從而允許計算在多個 CUDA 線程塊中并行運行。此外,NVIDIA 利用分布式共享內存高效地減少了同一線程塊集群中線程塊的結果,而無需訪問全局內存。
- 支持操作之間的融合,以減少內核執行與內存加載/存儲之間的用度。例如,NVIDIA 將 AllReduce 操作與以下 RMSNorm 操作和 Quantize 操作融合到一個 CUDA 內核中。NVIDIA 還將 SwiGLU 操作與之前的 GEMM 融合在一起。
程序化依賴啟動
編程依賴啟動 (Programmatic Dependent Launch, PDL) 是一項 CUDA 功能,可縮短同一流上兩個連續 CUDA 內核之間的 GPU 空閑時間,甚至允許兩個 CUDA 內核重疊。
默認情況下,在同一 CUDA 流上啟動核函數時,在第一個核函數完成之前,第二個核函數不會開始執行。這會導致兩個性能問題:首先,兩個連續內核執行之間存在微小差距,如下圖所示,此時 GPU 處于空閑狀態。其次,當第一次內核執行接近尾聲時,內核仍可能占用一些 Streaming Multiprocessors (SMs) 來執行其余 CUDA 塊,從而使 GPU 上的其余 SM 處于空閑狀態。這導致 GPU 的計算能力未得到充分利用。

借助 CUDA 中的變成依賴啟動 API,NVIDIA 允許二級內核在主內核仍在運行時開始執行。在前言期間,次要函數可以執行計算并加載不依賴于主核函數執行的數據。這不僅消除了兩個連續內核之間的間隙,而且提高了 GPU 利用率;第一個內核僅占用 GPU 上部分 SM,而其他 SM 可以開始運行第二個內核。

預測解碼
預測解碼是一種熱門技術,用于在不影響生成文本質量的情況下加速 LLM 的推理速度。它通過讓更小、更快的“draft”模型預測一系列預測性 token 來實現這一目標,然后由更大的“target” LLM 并行驗證這些 token 。加速是在一次目標模型迭代中生成可能的多個 token ,但會產生額外的 draft 模型開銷。

上圖展示了端到端工作流程。最初,在目標模型進入上下文階段 (也會生成 token t1) 后,草稿模型會快速生成潛在 token 序列 (例如 d2-d4) 。然后,目標模型進入生成階段,同時為整個草稿序列生成下一個 token 。如圖所示,它可能會“接受”多個 token (例如 d2、d3) ,前提是這些 token 與其生成的 token 相匹配,但會“拒絕”其他 token (例如 d4) 。
此循環重復:保留已接受的token,如果發生拒絕,目標模型提供正確的下一個token (例如拒絕 d4 后的 t4) ,草稿模型生成新的預測序列 (d5-d7) 。通過并行驗證多個token,而不是使用較慢的目標模型逐個生成它們,并利用草稿模型的快速猜測,可以顯著提高速度,尤其是在草稿模型的預測通常正確的情況下。接受長度 (AL) 的定義是,您只需執行一個驗證步驟即可平均生成多少個token。AL 值越高,速度提升就越大。
NVIDIA 使用基于 EAGLE3 的架構作為其預測解碼方法,僅修改預測層的 FFN 大小以獲得更好的 AL。在推理過程中,NVIDIA 會記錄目標模型前向傳遞中的低、中、高級特征 (在第一、中間和最后解碼層后隱藏的狀態) 。之后,NVIDIA 將這些隱藏狀態和 token 嵌入相結合,并將其饋送至預測層。然后,預測層以自回歸方式生成一系列草稿 token,以便目標模型進行并行驗證。
預測層的開銷很小,但不可忽略,因此一個挑戰是在草稿長度和端到端加速之間找到良好的平衡。草稿長度越長,AL 就越高,但運行其他草稿模型的成本也是如此。根據 NVIDIA 的以下實驗,草稿長度 = 3 可提供最佳加速。

使用 CUDA Graph 和重疊調度程序減少主機開銷
預測解碼的另一個挑戰是減少目標模型和草稿模型之間的通信/同步開銷。如果 NVIDIA 在主機側放置采樣/驗證邏輯,則會在主機和設備之間創建額外的同步點,并破壞 CUDA Graph。相反,保留設備側的驗證邏輯,以保持目標模型向前傳遞、驗證邏輯和草稿模式向前傳遞到一個 CUDA Graph 中。NVIDIA 還啟用了 TensorRT-LLM 重疊調度程序,以進一步重疊當前迭代的模型前向傳遞與下一次迭代的輸入準備和 CUDA Graph 啟動。
Torch.compile() 用于優化草圖模型層
由于驗證邏輯是通過 Torch 原生操作在設備端實施的,因此 NVIDIA 最終獲得了大量小型 Torch 原生內核。手動融合它們可能非常復雜且容易出錯,因此 NVIDIA 使用 torch.compile() 讓 OpenAI Triton 自動融合并為該部分生成最佳內核。這有助于 NVIDIA 將草稿模型的用度從 25% 降低到 18% (草稿長度 = 3) 。
總結
NVIDIA 再次證明了其在數據中心和 AI 基礎設施方面的領導地位,在包含 400 億個參數的 Llama 4 Maverick 上,每位用戶實現了每秒 1000 多個 token 的標志性性能。這一創紀錄的速度由強大的 Blackwell 架構、從 CUDA 級別到深度軟件優化以及 NVIDIA 定制的 speculative decoding 實現的顯著加速相結合,直接滿足了新一代 AI 交互的低延遲需求。正如 NVIDIA 所展示的,這些進步可確保即使是大型模型也能提供無縫的實時用戶體驗和復雜的 AI 代理部署場景所需的速度和響應速度。
?