返回首頁

推論系統

Cohere 把整個解碼步驟塞進單一 CUDA megakernel,H100 端到端吞吐量提高 25% 至 41%

Cohere 開源 North Mini Code 專用推論引擎,以常駐 megakernel 取代逐算子啟動與全 GPU 同步。官方測試顯示單張 H100 的端到端解碼吞吐量高於 vLLM,但目前僅支援特定模型、硬體與小批次。

DrAntonioCarlosMdeQueiroz · CC BY-SA 4.0 · Image source
zh-Hant

Cohere 公開一套針對 North Mini Code 的推論伺服器,核心不是再替單一 GEMM 或 attention kernel 微調,而是讓一個常駐 CUDA megakernel 執行完整解碼 forward pass。傳統引擎會依序啟動 RMSNorm、QKV、attention、MoE 等 kernel,每道邊界都要等待整個 GPU 完成同步;對低批次、自回歸解碼這類受記憶體頻寬與延遲限制的工作,啟動空隙及不足一整波的工作量會讓 SM 閒置。

新引擎在每個 H100 SM 保留一個 thread block,由主機預先建立細粒度任務表,把 GEMM tile 與 attention split 分派給可用 SM。資料相依性改用全域記憶體計數器表達,因此消費端可在自己的輸入完成後立即執行,不必等待全網格;North Mini Code 的 attention 與 MoE 又能從同一份正規化輸入並行,空閒 SM 可接手另一條路徑的尾端工作。系統仍保留連續批次、paged KV cache、前綴快取、搶占、工具呼叫及 OpenAI 相容 API。

在單張 H100、BF16、batch size 1 的官方測試中,megakernel 達 292 token/秒,約為估算頻寬上限的 62%,相較 vLLM 0.24 快 1.58 倍;加入真實提示、prefill 與動態批次後,五項工作負載的平均解碼吞吐量提升縮至 1.25 至 1.41 倍。這項結果說明,服務層排程與同步結構仍可能帶來不依賴量化的可觀收益。

限制也很明確:目前只支援 H100 SM90a、CUDA 13、BF16、batch size 1 至 8,而且排程綁定 North Mini Code;prefill 仍走 PyTorch kernel,並會暫停 decode,取樣選項亦不完整。工程團隊接下來應觀察它能否泛化到其他 MoE、支援混合 prefill/decode,並在不同請求分布與更大並行度下維持優勢;現有數據主要由發布者提供,尚缺獨立重現。

來源

  1. Inside the megakernel serving engine for North Mini Code
  2. Megakernel Serving Engine for North Mini Code
  3. Cohere megakernel — one CUDA file serves North Mini Code faster than vLLM