當 LLM 從實驗室走向生產環境,推理引擎的效能就成了瓶頸。一個簡單的請求可能因為視訊記憶體頻寬、排程策略或者運算元實現而慢上幾倍。最近開源的 sonar 試圖解決這個問題——用 C++ 從底層重寫推理棧,目標就是在大規模部署時壓榨出硬體的每一分效能。
為什麼要重新造一個推理引擎?
市面上已經有 vLLM、TensorRT-LLM 這樣的成熟方案,但 sonar 團隊認為在極致場景下仍有優化空間。專案用純 C++ 編寫,沒有 Python 執行時開銷,核心運算元手工調優了 Nvidia GPU 的 warp 級排程。早期基準測試顯示,在 A100 上執行 LLaMA-70B 時,首 token 延遲可以壓到 20ms 以下,持續吞吐量也接近硬體理論極限。
當然,這還只是實驗室資料。實際生產環境需要考慮動態批處理、連續 batching、字首快取等特性——sonar 目前對這些高階功能還在逐步支援中,但基礎推理鏈路已經相當穩定。
架構與核心特性
sonar 的架構圍繞兩個原則設計:最小化視訊記憶體移動和運算元融合。它把注意力機制、FFN 層以及 RoPE 位置編碼等多個 kernel 合併成了少數幾個融合 kernel,減少了 kernel launch 的開銷。同時提供了可選的 PagedAttention 實現(類似 vLLM),來管理 KV 快取的碎片問題。
- 支援 GPTQ、AWQ 等量化格式,以及 FP16/BF16 精度
- 內建連續批處理(continuous batching)排程器
- 提供 C++ 和 C 繫結 API,可整合到任何語言
- 實驗性支援多節點張量並行
典型使用場景:私有化部署與高併發服務
對於需要 資料主權 的企業,或者要求極低延遲的實時應用(比如聊天機器人的流式輸出),sonar 提供了一個輕量級的選擇。你可以把它嵌入到現有的 C++ 服務中,也可以用包裝好的 Docker 映象快速啟動一個 OpenAI 相容的 REST 端點。
目前社羣裡已經有開發者用它替換了部分場景下的 vLLM,主要是因為 sonar 的記憶體佔用更可控,尤其適合 8B 到 13B 引數的模型在單卡上跑滿併發。不過對於超大模型(70B+)的多卡部署,建議先通過社羣測試確認相容性。
上手與生態
專案提供了 CMake 構建系統,依賴 CUDA 12+ 和 C++17 編譯器。從 GitHub 克隆後,按文件一步步編譯即可。官方也提供了預編譯的容器映象,省去環境配置的麻煩。
因為是早期專案,文件和示例還在完善中。社羣貢獻主要集中在模型適配和效能優化上。如果你熟悉 CUDA 程式設計,上手門檻不高;純應用開發者建議直接使用官方的 HTTP 服務封裝。
一點坦白:目前的量化支援不如 TensorRT-LLM 全面,部分稀疏格式還不支援。但專案迭代很快,過去一個月已經合併了 30 多個 PR,生態追趕速度可觀。
對獨立開發者和小團隊來說,sonar 提供了一條「自己控制推理棧」的路,而不是必須繫結雲廠商的託管服務。
如果你正在為 LLM 的部署成本發愁,或者對推理延遲有硬性要求,不妨花一下午試試 sonar。編譯一次,跑幾個基準,大概率會給你驚喜。










評論
暫無評論
成為第一個評論的人