HPC-Ops是什麼
HPC-Ops是騰訊混元AI Infra團隊開源的工業級高性能大模型推理算子庫,覆蓋Attention、MoE、GEMM、採樣及通信融合等核心模塊,原生支持BF16/FP8與混合精度。HPC-Ops針對NVIDIA H20等GPU深度優化,動態調度與算子融合使端到端QPM提升30%+,多項性能顯著超越vLLM、FlashInfer、SGLang等主流基線,已支撐騰訊混元大規模生產級推理服務。

HPC-Ops的主要功能
-
動態 Attention 調度:針對長短請求混排的在線推理負載,採用運行時 Tile 級動態任務調度,實現 CTA 級負載均衡,長文本場景最高加速 2.95 倍。
-
Router GEMM:以雙 BF16 GEMM 組合模擬 FP32 精度計算,離線拆分權重、推理階段融合爲單 Kernel,兼顧數值敏感場景的高精度與 Tensor Core 高吞吐。
-
FusedMoE:將路由索引、Gate-Up GEMM、激活量化、Down GEMM、Top-K 加權聚合五階段重構爲無氣泡流水線,消除顯存搬運與內核啓動開銷。
-
Fused AllReduce+Norm:深度融合跨 GPU 通信、殘差相加與 RMSNorm 歸一化,基於 NVLink 多播與 P2P 技術實現通信計算一體化,緩解張量並行瓶頸。
-
Sampler 大算子融合:將重複懲罰、溫度縮放、Top-K、Top-P、Softmax、隨機採樣等 10 餘個 Kernel 融合爲 2 個 CUDA Kernel,補齊推理末端後處理短板。
-
GroupGEMM FP8:支持專家並行與分組專家矩陣乘,原生支持 per-tensor 與 block-wise FP8 量化,適配 MoE 模型的高效推理。
HPC-Ops的技術原理
- Attention 動態調度:傳統靜態 split-kv 無法兼顧長短請求混排的動態負載,HPC-Ops 將所有請求按統一 Tile 粒度拆分,通過全局 Tile 總量均衡分配各 CTA 任務規模,再以貪心裝桶算法實現極致均分;Task Assign 模塊在每次推理前生成專屬任務映射表,各層 Attention Kernel 按表精準領取任務,最終由 Combine Kernel 合併結果,實現全流程負載均衡。
- Router GEMM 雙 BF16 模擬 FP32:針對 MoE 路由等精度敏感場景,離線將 FP32 權重拆分爲高位 BF16 與低位殘差 BF16(縮放因子 1/256),推理階段執行兩次 BF16 Tensor Core GEMM 並做線性組合,激活值全程保持 BF16;雙路計算融合至單一 Kernel,輸入僅搬運一次,雙寄存器累加器緩存中間結果,Epilogue 階段一次 FMA 修正後寫出,全程無 HBM 往返開銷。
- FusedMoE 流水線重構:路由階段採用共享內存分塊統計,爲每個專家預留連續顯存輸出區間;Gate-Up GEMM 直接通過路由索引讀取原始輸入,省去獨立 Gather 搬運;取消 Warp Specialization,由同一 Warp Group 完成數據搬運與計算,將訪存延遲掩蓋邏輯從 CTA 內軟件流水線升級爲跨 CTA 硬件調度;PDL 技術串聯全鏈路爲無氣泡執行。
- Fused AllReduce+Norm 通信計算融合:基於 CUDA multimem 與 P2P 技術,封裝爲 NVLink 原生一體化操作
RMSNorm(AllReduce(x) + residual, weight);高吞吐版本依託 NVSwitch 多播機制適配 Prefill 場景,低延遲版本基於 Lamport P2P 機制通過 PDL 實現雙 Kernel 重疊執行,適配 Decode 場景。
如何使用HPC-Ops
-
硬件環境:準備一台配備 NVIDIA SM90 架構 GPU(如 H20)的服務器,並安裝 Python 3.8+、CUDA 12.8+ 和 C++17 編譯器。
-
克隆倉庫:從 GitHub 克隆 HPC-Ops 源代碼倉庫到本地。
-
編譯打包:進入項目目錄,執行編譯打包命令生成 wheel 安裝文件。
-
安裝部署:用 pip 命令安裝生成的 wheel 文件,完成環境部署。
-
導入模塊:在 Python 腳本中導入 hpc 模塊。
-
準備數據:根據目標算子類型準備符合精度要求的輸入張量與配置參數。
-
調用算子:調用對應算子的 Python API(如 Attention、FusedMoE、Sampler 等)執行高性能推理。
-
測試驗證:參考 tests 目錄下的測試腳本驗證算子正確性與具體用法。
-
框架集成:通過提供的 Python API 將 HPC-Ops 無縫嵌入 vLLM、SGLang 等主流推理框架。
-
性能基準:用 benchmark 目錄下的腳本在目標硬件上運行性能復現與對比測試。
HPC-Ops的核心優勢
-
端到端全鏈路優化:覆蓋 Attention → Router → MoE → 通信融合 → Sampler 的推理全鏈路,端到端 QPM 提升 30%+,而非單點算子優化。
-
動態負載均衡根治長尾:運行時 Tile 級動態調度與貪心裝桶算法,長短請求混排場景下長文本加速最高 2.95 倍,端到端 QPM 提升 17%。
-
高精度 Router GEMM:雙 BF16 組合模擬 FP32 精度,誤差僅爲 TF32 的 1/36,性能較 cuBLAS FP32 最高提速 3.22 倍,兼顧數值敏感與算力釋放。
-
MoE 無氣泡流水線:FusedMoE 將路由、Gate-Up、量化、Down、Top-K 聚合五階段重構爲單一執行鏈路,消除顯存搬運與內核啓動開銷,較 vLLM/SGLang 提升 1.2x~1.6x。
-
通信計算深度融合:Fused AllReduce+Norm 封裝爲 NVLink 原生一體化操作,打通張量並行瓶頸,較 NCCL/FlashInfer 最高提速 1.68 倍。
HPC-Ops的項目地址
- GitHub倉庫:https://github.com/Tencent/hpc-ops
HPC-Ops的同類競品對比
| 維度 | HPC-Ops | FlashInfer |
|---|---|---|
| 項目性質 | 騰訊混元開源並長期維護的工業級算子庫,經大規模生產驗證 | 社區驅動的開源高性能算子庫,被 vLLM、SGLang 等框架廣泛集成 |
| Attention 動態調度 | 支持運行時 Tile 級動態任務分配與貪心裝桶,長短請求混排場景下長文本最高加速 2.95x,混合 batch 加速 1.59x~1.76x | 主要採用靜態 split-k 調度,在均勻長度負載表現穩定,但長短混排時易出現 CTA 級長尾延遲 |
| Attention 標準性能 | BF16 Prefill 最高 1.33x、Decode 2.22x;FP8 Decode 2.0x(相對 FlashInfer 基線) | 作爲社區主流基線,性能表現優異,但在動態負載與稀疏場景下存在優化空間 |
| Sparse Attention | FP8 塊稀疏 Prefill,支持預計算塊掩碼跳過無關 KV Tile,相對 FlashInfer 等基線最高 3.16x | 支持塊稀疏模式,但 HPC-Ops 在 FP8 精度下的稀疏調度與 Tile 量化有更精細的實現 |
| MoE 融合 | FusedMoE 將路由索引→Gate-Up→量化→Down→Top-K 聚合重構爲無氣泡流水線,性能領先 1.2x~1.6x | 提供基礎 MoE 支持,無全模塊流水線融合,存在多階段顯存搬運與 Kernel 啓動開銷 |
| Router GEMM | 獨創雙 BF16 模擬 FP32 精度,誤差僅爲 TF32 的 1/36,性能 3.22x,適合數值敏感的路由模塊 | 無專用高精度 Router GEMM 優化,需依賴 cuBLAS FP32 或接受 BF16/TF32 精度折損 |
| 通信計算融合 | Fused AllReduce+Residual+RMSNorm 封裝爲 NVLink 原生一體化操作,相對 FlashInfer 最高 1.68x~1.76x | 提供基礎通信算子,但無 AllReduce、殘差與歸一化的原生融合實現 |
HPC-Ops的應用場景
-
高吞吐在線推理服務:動態 Attention 調度與 Sampler 融合顯著降低長尾延遲,適合長短請求混排的真實業務負載。
-
MoE 大模型推理:FusedMoE 針對 DeepSeek-V3、Qwen3-235B 等 MoE 模型深度優化,提升 TP/EP 並行場景下的推理效率。
-
張量並行分佈式推理:Fused AllReduce+Norm 打通多卡通信瓶頸,適合單節點多 GPU 的大模型部署。
-
精度敏感推理:Router GEMM 以 BF16 算力實現 FP32 精度,滿足 MoE 路由、稀疏 Attention 等數值敏感模塊的需求。
© 版權聲明
文章版权归作者所有,未经允许请勿转载。
相關文章
暫無評論...