蚂蚁集团与 vLLM 社区开源量化推理内核库 Humming
TL;DR · AI 摘要
èèéå¢ä¸ vLLM 社åºå¼æºé忍çå æ ¸åº Humming · AIHOT vLLM 宿¹å客 · Ant Group and the vLLM Comm...
核心要点
- 主题聚焦:蚂蚁集团与 vLLM 社区开源量化推理内核库 Humming
- 来源:AI HOT 精选,建议结合原文判断细节。
- AI 分析暂不可用,本条为保底评分与摘要。
èèéå¢ä¸ vLLM 社åºå¼æºé忍çå æ ¸åº Humming · AIHOT
vLLM 宿¹å客
·
Ant Group and the vLLM Community
2026-10-21 08:00
7 å°æ¶å
ç²¾é
AI è¯å
67
èèéå¢ä¸ vLLM 社åºå¼æºé忍çå æ ¸åº Humming
Announcing Humming: Fast, Flexible Kernels for Quantized Inference
AI 导读
èèéå¢ä¸ vLLM 社åºå¼æºéç¨é«æ§è½é忍çå æ ¸åº Hummingï¼ä»åºä¸º github.com/vllm-project/hummingã
æ¨èçç±
åæç»åºç»ä¸éå表示å JIT ç¼è¯çå æ ¸è®¾è®¡åå¤é¡¹åºåæ°åï¼è¯»è å¯ä»¥æ®æ¤è¯ä¼°ä¸å GPU ä¸çéåæ¨çæ¹æ¡éæ©ã
æ£æ · AI ç¿»è¯
èèéå¢ä¸ vLLM 社åºå¼æº Hummingï¼è¿æ¯ä¸ä¸ªé¢åé忍ççéç¨é«æ§è½å æ ¸åºãHumming å ·å¤ä»¥ä¸ç¹æ§ï¼
- 广æ³çè®¾å¤æ¯æ ï¼æ¯æä» Turing èµ·ç NVIDIA GPU æ¶æï¼ä»¥å平头å¥éå²³ 810E ç CUDA å ¼å®¹è®¾å¤ã
- å ¨é¢çé忝æ ï¼ç»ä¸æ¶ææ¯æç¨ å¯ä¸ MoE å·¥ä½è´è½½ä¸æéåæ¿æ´»æ ¼å¼çå¤ç§ç»åï¼è¦ç广æ³çæ´æ°ä¸æµ®ç¹ç±»åãä½å®½åç¼©æ¾æ¹æ¡ã
- 强å²çæ§è¡æ§è½ ï¼å¨è®¸å¤ä»£è¡¨æ§å·¥ä½è´è½½ä¸æ¾èä¼äº vLLM MarlinãFlashInfer å DeepGEMM çç°æå®ç°ã
ä»åºï¼ github.com/vllm-project/humming
èæ¯
éçæ¨¡å忍çå·¥ä½è´è½½çå¢é¿ï¼å å容éãå å带宽åè®¡ç®ææ¬æ¥çå¶çº¦é¨ç½²ãè¿å¨ MoE 模åä¸å°¤ä¸ºææ¾ï¼æ¯ä¸ª token ä» æ¿æ´»ä¸é¨åä¸å®¶ï¼ä½å ¨é¨æéä»éåå¨ãä¾å¦ DeepSeek-V3 æ¥æ 6710 äº¿åæ°ï¼æ¯ä¸ª token æ¿æ´» 370 äº¿åæ°ãéåéè¿é使éåæ¿æ´»ç精度æ¥åå°å åå ç¨åæ°æ®æ¬è¿ï¼åæ¶ä¹è½æåè®¡ç®æçã
ä¸å模åå GPU 代é 对éåçéæ±åä¸ç¸åã常è§é ç½®å æ¬ WNA16ãW8A8ãW4A8 å W4A4ï¼å ¶ä¸ W å A åå«è¡¨ç¤ºæéåæ¿æ´»ä½å®½ï¼N 表示å¯åçæéä½å®½ãå³ä½¿ç²¾åº¦ç¸åï¼INT4 å NVFP4 çæ¹æ¡å¨æ°å¼æ ¼å¼åç¼©æ¾æ¹å¼ä¸ä¹æå·®å¼ã缩æ¾ç²åº¦ã缩æ¾è¡¨ç¤ºãåç»å¤§å°ä»¥å对称æé对称éåè¿ä¸æ¥æ©å±äºé 置空é´ã
åªæåå©é«æå æ ¸ï¼è¿äºåå¨å计ç®ä¸çèçæè½è½¬å为æ´ä½çå»¶è¿åæ´é«çååãPrefillãdecode 以åä¸åç MoE ä¸å®¶è´è½½å¯¹è®¡ç®åå åæåºä¸åè¦æ±ãå æ ¸å¿ é¡»éåºè¿äºå·¥ä½è´è½½ï¼åæ¶ä¿æè½¬æ¢ãåéååè°åº¦å¼éå¤äºä½ä½ã
为æ¯ç§ç»åå¼ååéæä¸ç¨å æ ¸ä¼å¸¦æ¥ä¸æå¢é¿çç»´æ¤è´æ ãæ¯æ°å¢ä¸ç§ç»åï¼é½å¯è½éè¦åèªçæéé¢å¤çãå æ ¸éæ©ãæ¡æ¶éé å¨åæµè¯ãä¼åå·¥ä½éåè¿éå¨å¤ä¸ªå®ç°ä¹é´åæ¥ã
Humming éè¿å°éåæè¿°ä¸æ§è¡éæ©å离ï¼å¹¶ç±å ±äº«ç»ä»¶ç»åå æ ¸æ¥è§£å³è¿ä¸é®é¢ã
éç¨æ¶æ
Humming çæ§è¡è·¯å¾å为ä¸é¨åï¼è¡¨ç¤ºéå计ç®ã为硬件åå·¥ä½è´è½½éæ©é ç½®ãä» CUDA ç»ä»¶ç¼è¯å æ ¸ã
ç»ä¸çéå表示
ä¸åéåå·¥å ·å¯¼åºç模å卿°å¼æ ¼å¼ãåæ°ç»ç»åæéå¸å±ä¸åä¸ç¸åãHumming å°æ¯æçå¯¼åºæ ¼å¼è½¬æ¢ä¸º Humming æ åæ ¼å¼ï¼ä¸ç§éç¨çéåæè¿°ï¼æéã缩æ¾ãé¶ç¹åå ¶ä»å¼ éåæä¸è´æ¹å¼ç»ç»ã
该表示å¨ä¿çåæ¹æ¡éåè¯ä¹çåæ¶ï¼å°æéæ ¼å¼ã缩æ¾ç²åº¦ãç¼©æ¾æ°æ®ç±»åãé¶ç¹åäºçº§ç¼©æ¾æè¿°ä¸ºç¬ç«åæ°ãæ¿æ´»æå ¶èªèº«çæ°å¼æ ¼å¼åéå设置ãè¿äºåæ°å¯å¨æ ¼å¼å硬件约æä¸è¿è¡ç»åã
ä¾å¦ï¼åç» INT4 æéå¯ä»¥ä¸ BF16 æ¿æ´»å¼é 对使ç¨ãéç¨ä¸åç¼©æ¾æ¹æ¡çä½ç²¾åº¦æµ®ç¹æé使ç¨åä¸å¥åæ°ä½ç³»ãè¿ä¸ºæ¨çæ¡æ¶æä¾äºé¢åä¸åæ¥æºæ¨¡åçç»ä¸æ¥å£ã
é对æ¯ç§å·¥ä½è´è½½çè°ä¼ä¸ JIT ç¼è¯
æ åæ ¼å¼å¨åç±»å¯¼åºæ ¼å¼ä¹é´æä¾ç»ä¸ç表示ãéåï¼é¢å¤ç伿 ¡éªåæ°ãå¡«å 维度ï¼å¹¶å°è¿äºå¼ ééæ°æå ä¸ºç®æ å æ ¸éç¨çå¸å±ãHumming å°éåæè¿°ä¸æéå½¢ç¶ãGEMM ç±»åãç®æ GPU å计ç®é项ç»åèµ·æ¥ï¼ä»¥é ç½®æ§è¡è¿ç¨ã
ä¸ç§é ç½®ç¨äºæè¿°å æ ¸ï¼
- å±é ç½® æè¿°å¼ éå½¢ç¶ãæ°æ®ç±»åãéååæ°åç®æ æ¶æã
- 计ç®é ç½® æå® GEMM ç±»åå计ç®é项ï¼ä¾å¦æ¹æ¬¡ä¸åæ§åè¾å ¥ç¼©æ¾å¸å±ã
- è°ä¼é ç½® éæ©ç¦çå½¢ç¶ãæµæ°´çº¿é¶æ®µæ°ãwarp ç¹åãå å访é®å MMA æä»¤ãå®è¿æ§å¶å¹¶åä¸è°åº¦ï¼TMA å¯ä»¥æå¼ éè¿è¡é ç½®ã
é»è®¤æ åµä¸ï¼Humming 使ç¨éå¯¹å ·ä½è®¾å¤çå¯åå¼è§åæ¥éæ©è°ä¼é ç½®ãå®å¯ä»¥ä¸ºä¸åèå´çè¾å ¥å°ºå¯¸åå¤ä¸åçé ç½®ï¼å¹¶å¨è¿è¡æ¶åæ´¾å°åéçå æ ¸ã
Humming çç»ä¸æ¶æä½¿é对ä¸åå·¥ä½è´è½½è°ä¼æ§è¡åæ°åéæ©æµæ°´çº¿åå¾ç®åç´æ¥ãå¨å°æ¹æ¬¡å°ºå¯¸ä¸ï¼ä½¿ç¨å¼æ¥æ·è´ï¼ cp.async ï¼å MMA çå¤çº§æµæ°´çº¿å¯è½ä¼äºå´ç» TMA å UMMA æå»ºçæµæ°´çº¿ãå¨è¾å¤§æ¹æ¬¡å°ºå¯¸ä¸ï¼TMA å UMMA å¯ä»¥æä¾æ´å¥½çååéãHumming å¨åä¸é ç½®åç»ä»¶æ¡æ¶å åæ¶æ¯æè¿ä¸¤ç§æ§è¡è·¯å¾ï¼ä»èè½å¤ä¸ºæ¯ç§å·¥ä½è´è½½éæ©æ´ææççç¥ã
è¿ä¸ç§é ç½®å ±åç¹åç± NVRTC æ NVCC ç¼è¯çå æ ¸ãç¼è¯åçå æ ¸ä¼è¢«ç¼å以便å¤ç¨ãæ¨çæ¶å°éå®çå æ ¸ä¸é¢å¤çåçæéåè¿è¡æ¶æ¿æ´»å¼ç»åèµ·æ¥ã
è·¨æ ¼å¼ä¸æ¶æçå ±äº« CUDA ç»ä»¶
å¨ CUDA å±é¢ï¼Humming å°ä»»å¡è°åº¦ãæ°æ®ç§»å¨ãåéåä¸ç¼©æ¾ãTensor Core 计ç®ä»¥åè¾åºå¤çç»ç»ä¸ºå¯å¤ç¨çç»ä»¶ã宿便 åæµæ°´çº¿ãwarp ç¹åæµæ°´çº¿åä¸ç¨ UMMA æµæ°´çº¿ãè¿äºæµæ°´çº¿å ±äº«å ¼å®¹çç»ä»¶ï¼åæ¶éç¨åèªæ§è¡çç¥æéçæ°æ®æµå忥æ¹å¼ã
æ¯ç»ç»ä»¶å¤çä¸åçå忥æºï¼
- æ°å¼å¤çè´è´£éåæ ¼å¼ã è§£ç åç®æ¯ç»ä»¶å¤çä½å®½ãæ´æ°ææµ®ç¹è¡¨ç¤ºã缩æ¾å ååé¶ç¹ãåéåä¸ç¼©æ¾è¢«éæå°å æ ¸ç计ç®ä¸ã
- å åä¸è®¡ç®å端è´è´£ GPU æ¶æã Humming ä¸ºç®æ æ¶æéæ©æ°æ®ç§»å¨å Tensor Core å®ç°ï¼å¹¶å¨æ¯ææ¶ä½¿ç¨å¼æ¥æ·è´ãTMA å夿ã
- 任塿 å°ä¸è°åº¦è´è´£ç¨ å¯å MoE å·¥ä½è´è½½ã æ¯ç§ GEMM ç±»å使ç¨ç¸åºçè°åº¦é»è¾ã缩æ¾ååç½®å æ³ä¹å¯ä»¥èåå°è¾åºé¶æ®µã
JIT ç¼è¯ä¼æ ¹æ®ä¸ç§é ç½®ç»åè¿äºç»ä»¶ï¼å¹¶æ¶é¤æªä½¿ç¨çå®ç°åæ¯ãå æ¤ï¼å¯ä»¥éè¿æ©å±ç¸å ³ç»ä»¶æ¥æ¯ææ°çæ ¼å¼ææ¶æãå¯¹å ±äº«ç»ä»¶çæ¹è¿ä¼ä½¿å ¼å®¹çé ç½®åçï¼ä»èåå°å¯¹åèªä¸ç¨å æ ¸çéå¤å¼ååç»´æ¤ã
è¿ä¸ª CUDA å®ç°è½»éä¸é¿å äºééçº§å æ ¸æ¡æ¶ä¾èµï¼åæ¶ä¿æ JIT ç¼è¯å¿«éã卿们äºé å¤ CUDA 13.4 ç H200 æå¡å¨ä¸è¿è¡çå W4A16 å æ ¸ç¼è¯æµè¯ä¸ï¼å¨ç¦ç¨ç¼è¯ç¼åçæ åµä¸ï¼ç¼è¯æ¶é´ä» CUTLASS é å NVCC ç 23.35 ç§ éè³ Humming é å NVCC ç 1.82 ç§ æ é å NVRTC ç 1.88 ç§ ãè¿éä½äºä¸ºæ°å·¥ä½è´è½½åå¤å æ ¸çææ¬ï¼å¹¶ä½¿è¿ä»£è°ä¼æ´å å®ç¨ãHumming è¿ä¼å¨æ¨¡åé¢çæé´å¹¶è¡ç¼è¯å æ ¸ãå¨æä»¬çæµè¯ä¸ï¼ç¼è¯å¹¶å è½½è¦çåå± GEMM ææåæ¯æ M 大å°çå æ ¸ä» é 约 2â4 ç§ ï¼ä½¿å¾å¨æ¨çååå¤å¤ä¸ªä¸ç¨å æ ¸åå¾åå®å¯è¡ã
åºäºè®¾å¤åæ°çæ§è½è°ä¼
Humming å©ç¨ GEMM é ç½®å设å¤åæ°å¯¹å æ ¸è¿è¡æ·±åº¦ä¼åãéåæ ¼å¼ãç©éµå½¢ç¶ãGPU æä»¤æ¯æãSM æ°éãå ±äº«å ååå¯åå¨èµæºé½ä¼å½±åæ§è¡éæ©ï¼ä»èå°ä½ä½åå¨çä¼å¿è½¬å为å®é çæ¨çæ§è½ã
å¨ç°æ GPU ä¸å®ç°é«æç W4A8-MXFP4 æ¨çã Blackwell ä¹åçæ¶æç¼ºä¹åç MXFP4 Tensor Core æ¯æï¼èä¼ ç»ç W4A8-MXFP4 å æ ¸å¨è¾å¤§ M æ¶å¯è½åéäºåéåå缩æ¾å¼éãHumming éè¿å¿«éç MXFP4 å° INT8/FP8 åéåè·¯å¾è§£å³äºè¿ä¸é®é¢ï¼è¯¥è·¯å¾å¨å æ ¸å å° MXFP4 æé转æ¢ä¸ºåæ¯æçè®¡ç®æ ¼å¼ã卿¤è®¾ç½®ä¸ï¼è¯¥è·¯å¾å¨è¾å° M æ¶æ¾èä¼äºä¼ ç» W4A8 å®ç°ï¼å¨è¾å¤§ M æ¶æ¥è¿ W8A8 æ§è½ãå æ¤ï¼H200 ç GPU å¯ä»¥è¿è¡é«æ§è½ W4A8-MXFP4 å æ ¸ï¼åæ¶ä¿ç 4 使éçåå¨ä¼å¿ã
为æ¯ç§è®¾å¤å¹é åéåè·¯å¾ã ç¸åçéåæ ¼å¼å¨ä¸å GPU ä¸å¯è½åçäºä¸åçå®ç°ãHumming ä¼ä¸ºè®¾å¤éæ©è§£ç ãæ°å¼è½¬æ¢å缩æ¾è·¯å¾ï¼å¹¶å°å®ä»¬ä¸åéçå å访é®åè®¡ç®æµæ°´çº¿é 对ï¼ä»¥å尿令忰æ®ç§»å¨å¼éãå ±äº«ç»ä»¶ä½¿è¿äºä¼åå¯å¨å ¼å®¹çç¨ å¯å MoE å æ ¸ä¸å¤ç¨ã
丰å¯çè°ä¼æ§å¶ä¸è®¾å¤ç¹å®å¯åå¼ã Humming æä¾ tile å½¢ç¶ãæµæ°´çº¿é¶æ®µæ°ãwarp ç¹åãTMAãMMA æä»¤ãCTA å¹¶åå Stream-K è°åº¦çæ§å¶é¡¹ã设å¤ç¹å®çå¯åå¼å° GEMM å½¢ç¶ä¸èµæºçº¦æç¸ç»åï¼ä»¥å¹³è¡¡å¹¶è¡æ§ãæ°æ®å¤ç¨åæµæ°´çº¿å¼éï¼å¹¶éçè¾å ¥å¤§å°ååéæ©ä¸åçæ§è¡çç¥ãå¼åè å¯ä»¥ç´æ¥ä½¿ç¨é»è®¤é ç½®ï¼æé对ç¹å®æ¨¡ååé¨ç½²åºæ¯å¯¹å ¶è¿è¡è°æ´ã
ç»æ
广æ³çè®¾å¤æ¯æ
Humming çç»ä¸æ¶æå®ç°äºå¹¿æ³ç GPU æ¯æãå¯¹äº NVIDIA GPUï¼Humming å ¨é¢æ¯æä» Turing èµ·çæ¯ä¸ä»£æ¶æï¼ä¸ºå¤ä»£ç¡¬ä»¶å¸¦æ¥ç»ä¸çéåè®¡ç®æ¡æ¶ã
ç»ä¸ç JIT æ¶æä¹è®© Humming å¯ä»¥è½»æ¾æ©å±å°å ¶ä»å ¼å®¹ CUDA ç¼ç¨ç GPUãHumming å·²å ¨é¢æ¯æå¹³å¤´å¥éå²³ 810Eï¼å°å ¶å ±äº«å æ ¸ä¸è°ä¼è½å另尿´å¤ç¡¬ä»¶å¹³å°ã
ä¸å¾å±ç¤ºäº Humming å¨å设å¤ä¸æ¯æç髿§è½æ¿æ´»ç±»åï¼è¿äºç±»åè½å¤å åå©ç¨è®¾å¤çå³°å¼è®¡ç®è½åãå¾ä¸çç¥çé¨åç±»åä»å¯éè¿å ¶ä»æä»¤è·¯å¾è¿è¡ãä¾å¦ï¼B300ï¼SM103ï¼ä¸ç UMMA æä»¤ä¸åæ¯æ INT8 计ç®ï¼ä½æ´æ©ç MMA æä»¤ä»å¯æ§è¡ INT8 GEMMï¼åªæ¯æ§è½ä¼å¤§å¹ éä½ã
é忝æ
Humming 对éåç±»åçæ¯æä¸»è¦åå³äºæ¿æ´»ç±»å䏿éç±»åä¹é´çå ¼å®¹æ§ãå ¶ç»ä¸çéå表示ä¸å æ ¸æ¶æå 许å¤ç§æ´æ°åæµ®ç¹æéæ ¼å¼ä¸ä¸åç²¾åº¦çæ¿æ´»é å使ç¨ï¼ä¸ºæ¨¡å精度åé¨ç½²æ§è½æä¾çµæ´»éæ©ã
ä¸å¾å±ç¤ºäº Humming æ¯æçæé䏿¿æ´»ç±»åç»åãè¡è¡¨ç¤ºæéç±»åï¼åè¡¨ç¤ºæ¿æ´»ç±»åï¼å¾éè¡¨ç¤ºæ¯æçç»åãç»å䏿çè®¾å¤æ¯æç©éµï¼å®å¾ååºåç¡¬ä»¶æ¶æä¸å¯ç¨ç髿§è½éå计ç®è·¯å¾ã
Humming è¿æ¯æä¸ç§ææ°ä½ä¸ºé¶çç¹æ®æµ®ç¹æ ¼å¼ï¼å ¶å¯è¡¨ç¤ºçå¼ä¸ç¸åä½å®½çå¯¹ç§°æ´æ°ä¸è´ãä¾å¦ï¼æé¤ -128 å float8e0m7 ç INT8 ä¸ -127 å° 127 çæ´æ°è¡¨ç¤ºç¸åãè¯¥æ ¼å¼æéçæ¿æ´»ç±»åå ¼å®¹æ§ä¸ç¸åä½å®½ç INT æéç¸åãHumming ä¼èªå¨å°ç¬¦åæ¡ä»¶çå¯¹ç§°æ´æ°æé转æ¢ä¸ºè¯¥æ ¼å¼ï¼ä»¥å®ç°æ´å¿«çåéåã
社åºè¿åç°äº Blackwell Tensor Core ç两项éèè½å ï¼åçæ¯æ float4e0m3 å float8e3m4 ï¼è¿ä¸¤ç§ç¹æ®æµ®ç¹æ ¼å¼æªå¨ PTX ç±»åç³»ç»ä¸å ¬å¼ãHumming 卿æ Blackwell æ¶æä¸æ¯æè¿äºç¹æ§ï¼å æ¬æ°æ®ä¸å¿ç SM100/SM103 以åé¢åå·¥ä½ç«å个人计ç®ç SM120/SM121 设å¤ãä¸¤ç§æ ¼å¼åå·²éæå°å ¶ç»ä¸çéåä¸è®¡ç®æ¡æ¶ä¸ï¼ä¸ºä½ç²¾åº¦æ¨çæä¾æ´å¤åç计ç®é项ãRubin 䏿¯æè¿ä¸¤ç§éèç Tensor Core æ ¼å¼ï¼å æ¤å¯¹è¿äºåç计ç®è·¯å¾çæ¯æä¸ä¼å»¶ä¼¸å° Rubinã
æ§è½
以ä¸å æ ¸å¾®åºåæµè¯ç± vLLM 社åºè¿è¡ï¼æµé M è¦ç 1 å° 8192 ä¹é´æ¯ä¸ª 2 ç广¶ç GEMM æ§è½ãå æ ¸å®å ¨é¢çï¼å¹¶å¨å· L2 ç¼åä¸ç¬ç«è®¡æ¶ï¼æ ·æ¬ä¹é´çæåé¡¿ãMoE å éæ¯ä½¿ç¨ Gateup å Down GEMM å»¶è¿ä¹åãæ¯å¼ å¾é½æ æäºå ¶åºçº¿ãéåæ ¼å¼ãç©éµç»´åº¦åè½¯ä»¶çæ¬ã
#### WnA16
WnA16 æ¯é忍ç䏿éç¨ãåºç¨æå¹¿æ³çæ¹æ³ä¹ä¸ãå®å°ä½æ¯ç¹æéä¸ FP16/BF16 æ¿æ´»ç¸ç»åï¼å¨åå°æéåå¨åå åæµéçåæ¶ï¼å©ç¨å¹¿æ³å¯ç¨ç 16 ä½è®¡ç®è½åãè¿ä½¿å ¶éç¨äºè®¸å¤ GPU ä¸ä»£å模åé¨ç½²åºæ¯ãW4A16 ç³»åå°¤å ¶åå°ç¤¾åºå ³æ³¨ï¼ä¹æ¯ Humming ä¼åå·¥ä½çéç¹ã
对äºå¯é W4A16ï¼Humming å¨å¤§å¤æ°æµè¯é ç½®ä¸ä¸ vLLM Marlin æå¹³æä¼äºåè ï¼å¹¶å¨è¥å¹² Hopper å Blackwell å·¥ä½è´è½½ä¸å徿¾èæåãä¸å¾ä»¥ cuBLAS ä½ä¸ºå ±ååºçº¿ãå¨å°æ¹éä¸ï¼Humming å¨å¤ä¸ªè®¾å¤ä¸å¸¦æ¥çº¦ 3â4 åå éãéçæ¹éå¢å¤§ï¼å®æç»é«æå©ç¨ç¡¬ä»¶ï¼å¨ H200 大æ¹éå·¥ä½è´è½½ä¸è¾¾å°çº¦ Marlin ç䏤忧è½ï¼å¨é¨å B300 åºæ¯ä¸è¶ è¿å ¶ä¸åã
è¿äºæ¶çä¹å»¶ä¼¸å° MoEãHumming 为 token åå¸å¨åä¸å®¶ä¸ã䏿¯ä¸ªä¸å®¶çå·¥ä½ééè´è½½ååçå·¥ä½è´è½½æä¾é«æç Indexed å Grouped è·¯å¾ãå¨ä¸å¾ä¸ï¼H20 å H200 ä¸ç MXFP4 W4A16 å¨è¥å¹²ä¸å¤§æ¹éåºæ¯ä¸è¾¾å°çº¦ Marlin ç䏤忧è½ãå¨ B300 ä¸ï¼MXINT4 å NVFP4 è·¯å¾å¨å¤§æ¹éä¸å徿´å¤§æ¶çï¼å ¶ä¸ Grouped è·¯å¾è¾¾å°çº¦ 5 åãSM120 å SM121 ä¸çç»æä¹æ¾ç¤ºï¼Humming å¨ä¸ç³»åå·¥ä½è´è½½ä¸ä¼äº Marlin åç¸åºç FlashInfer å®ç°ã
Humming çä¼åè¿ä» W4A16 æ©å±å°å ¶ä» WnA16 ç»åãå ¶å ±äº«çåéåä¸è®¡ç®è·¯å¾ä¸ºä¸åä½å®½çæ´æ°åæµ®ç¹æéæä¾å¼ºå²æ§è½ï¼å æ¬ INT1ãINT2ãINT3 以å FP4 å° FP8ãä¸å¾å±ç¤ºäºè¿äºæ ¼å¼å¨å°æ¹éåä¸çæ¹éä¸çå¹¿æ³æ¶çï¼å ¶ä¸ SM120 ä¸çæä½ä½å®½é ç½®è¶ è¿ BF16 cuBLAS æ§è½ç 5 åãå¨ H20 ç大æ¹éä¸ï¼å¤ä¸ªä½å®½ä¿ææ¥è¿ BF16 cuBLAS çè®¡ç®æçãè¿ä½¿æ¨¡åè½å¤å¨ç²¾åº¦ãåå¨åååä¹é´ååºæ´ç»ç²åº¦çéæ©ã
#### W8A8 / W4A8 / W4A4
å¨ Hopper ä¸ï¼éç¨å级缩æ¾ç FP8 W8A8 å·²æä¸ºé«æ§è½é忍ççä¸»æµæ¹æ³ãHumming éè¿ååä¼åæ°æ®ç§»å¨ã缩æ¾åä¸å®¶è°åº¦ï¼è¿ä¸æ¥æ¹è¿è¿ä¸æçç计ç®è·¯å¾ã䏿¹å·¦åå±ç¤ºäº H20 å H200 ä¸ç W8A8 ç»æãå¨å°æ¹éåä¸çæ¹éä¸ï¼Humming åå«è¾¾å° DeepGEMM Contiguous 约 2.6 åå 2.5 åçæ§è½ï¼Indexed å Grouped 两ç§å¸å±åå ·æç«äºåã
éçæ´å¤æ¨¡åéç¨åç MXFP4 æééåï¼å°æ´å°çæéå ç¨è½¬å为å®é æ¨çæ¶çåå¾è¶æ¥è¶æä»·å¼ãHumming éè¿é«æç W4A8 è·¯å¾è§£å³è¿ä¸é®é¢ï¼å¨å è½½ MXFP4 æéæ¶å¿«éåéåï¼å¹¶ä½¿ç¨ FP8 Tensor Core è¿è¡è®¡ç®ï¼ä»èå¨ Hopper ä¸å®ç°é«æç W4A8-MXFP4 æ§è¡ã䏿¹å³å以 DeepGEMM W8A8 为åºçº¿ãå¨å°æ¹éåä¸çæ¹éä¸ï¼Humming ç W4A8 å¨ H20 ä¸è¾¾å°çº¦ 4.2 ååºçº¿æ§è½ï¼å¨ H200 ä¸è¾¾å° 4.5 åï¼åæ¶ä¹å¤§å¹ ä¼äºåä¸å¾ä¸ Humming ç W8A8 ç»æãæéæµéçåå°è½¬å为æ´ä½ç GEMM å»¶è¿ãFlashInfer CUTLASS W4A8 乿¯åºäº Humming æ¹æ³çå®ç°ï¼è Humming å½åçå®ç°å¨æ¤å¤å±ç¤ºçåºåæµè¯ä¸å徿´å¥½æ§è½ã
Blackwell 为 MXFP8 å MXFP4 çå¾®ç¼©æ¾æ ¼å¼å¢å äºåç Tensor Core æ¯æã仿°æ®ä¸å¿ SM100/SM103 设å¤å°é¢åå·¥ä½ç«å个人计ç®ç SM120/SM121 设å¤ï¼Humming å©ç¨åæ¶æçä½ç²¾åº¦è®¡ç®è½åï¼å¨åä¸å æ ¸åè°ä¼æ¡æ¶å æ¯æ W8A8ãW4A8 å W4A4ã
å¨ B300ï¼SM103ï¼ä¸ï¼Humming å¨å ¨é¨ä¸ç§ MX æ ¼å¼ç»åä¸åå±ç°åºæ¾èçæ§è½æåã䏿¹æ¯ä¸ªé¢æ¿å以对åºç²¾åº¦ä¸ç DeepGEMM Contiguous ä½ä¸ºåºçº¿ãå¨ä¸å°æ¹éè§æ¨¡ä¸ï¼W8A8ãW4A8 å W4A4 åå«è¾¾å°çº¦ 1.25Ãã1.6à å 1.4à çåºçº¿æ§è½ï¼å¹¶å¨è®¸å¤å·¥ä½è´è½½ä¸ä¼äºå¯¹åºç FlashInfer å®ç°ãIndexed å Grouped 两æ¡è·¯å¾ååçäºåçä½ç²¾åº¦è®¡ç®ï¼ä¸ºä¸åçä¸å®¶å¸å±æä¾äºé«æé项ã
è¿äºæ¶çåæ ·å»¶ä¼¸è³ SM120 å SM121ãå¨ä¸æ¹ç»æä¸ï¼Humming ç MXFP4 à MXFP8 W4A8 å NVFP4 à NVFP4 W4A4 å¨å¤§å¤æ°æµè¯ç¹ä¸ä¼äº FlashInfer CUTLASSãå¨ SM121 çå°æ¹éè§æ¨¡ä¸ï¼W4A8 çæ§è½æå约达 19%ï¼W4A4 约达 9%ï¼å¨ SM120 ä¸ï¼Humming å¨å¤§å¤æ°æµè¯è§æ¨¡ä¸åæ ·é¢å ãç»ä¸æ¶æå°è¿äºä½ç²¾åº¦æ¨çä¼å另尿´å¤è®¾å¤ï¼æé«æéåè®¡ç®æ©å±å°æ°æ®ä¸å¿ä¹å¤ã
#### 端å°ç«¯æ¨çæ§è½
Humming ç W4A8 æ¶çå»¶ä¼¸è³æ¨¡åæå¡ã卿们äºå «å H20 GPU ä¸ä»¥ TP=8 è¿è¡ç DeepSeek-V4.1-Flash æµè¯ä¸ï¼ä¿ææ¨¡å MXFP4 æéä¸åï¼å¹¶å° MoE æ§è¡ä» Marlin W4A16ï¼BF16 æ¿æ´»ï¼åæ¢ä¸º Humming W4A8ï¼tokenwise FP8 æ¿æ´»ï¼ï¼ç«¯å°ç«¯ååæå约 14%â43% ï¼å¹³åé¦ token æ¶å»¶ï¼TTFTï¼éä½çº¦ 25%â32% ãååä¼å¿éå¹¶å度å¢é¿èæ©å¤§ï¼å¨å¹¶å度为 64 æ¶ï¼è¾åºååä» 442.37 tokens/s æåè³ 633.94 tokens/sï¼è平忝è¾åº token èæ¶ï¼TPOTï¼ä¸é约 31% ã
å¹¶å度
MoE å端
è¾å ¥ååï¼tokens/sï¼â
è¾åºååï¼tokens/sï¼â
TTFTï¼msï¼â
TPOTï¼msï¼â
1
vLLM Marlin W4A16
2827.15
88.30
543.13
9.24
Humming W4A8
3226.23 (+14.1%)
100.77 (+14.1%)
383.80 (-29.3%)
8.46 (-8.5%)
2
4781.06
149.33
794.31
10.33
5646.98 (+18.1%)
176.38 (+18.1%)
555.66 (-30.0%)
9.20 (-10.9%)
4
7427.64
231.99
1422.32
11.72
9160.81 (+23.3%)
286.12 (+23.3%)
971.74 (-31.7%)
10.22 (-12.9%)
8
9190.03
287.04
2049.81
19.90
12263.89 (+33.4%)
383.04 (+33.4%)
1386.91 (-32.3%)
15.49 (-22.2%)
16
11124.67
348.96
2463.69
36.28
15171.00 (+36.4%)
475.89 (+36.4%)
1844.71 (-25.1%)
26.44 (-27.1%)
32
12669.43
398.83
3546.74
66.44
17804.79 (+40.5%)
560.49 (+40.5%)
2465.47 (-30.5%)
47.48 (-28.5%)
64
13937.42
442.37
5467.35
123.25
19973.00 (+43.3%)
633.94 (+43.3%)
3882.94 (-29.0%)
85.70 (-30.5%)
ç¨æ³
å®è£
ä½¿ç¨ pip å®è£ Hummingï¼
pip
install
humming-kernelsHumming ä½¿ç¨ CUDA ç¼è¯å¨æéçæå æ ¸ãå¦æç³»ç»ä¸æ²¡æå¯ç¨ç CUDA ç¼è¯å¨ï¼è¯·éæ©ä»¥ä¸å®è£ é项ä¹ä¸ï¼ä»¥å å«éç¨äºä½ æå¨ç¯å¢ CUDA ä¸»çæ¬çç¼è¯ä¾èµï¼
pip
install
"humming-kernels[cu12]"
# CUDA 12
pip
install
"humming-kernels[cu13]"
# CUDA 13Humming æ¬èº«æä¸ºè½»éï¼ä¾èµç®åï¼wheel å ä» çº¦ 500 KBãæéç¼è¯é¿å äºæå 大éé¢ç¼è¯å æ ¸ãååä¸ï¼ä»»ä½è½å¤è¿è¡ PyTorch 2.7 çç¯å¢ä¹è½è¿è¡ Hummingï¼å æ¤æäºéæå°ç°ææ¨çç¯å¢ä¸ã
å¨ vLLM ä¸ä½¿ç¨ Humming
Humming 已深度éæå° vLLM ä¸ãä» vLLM 0.29.0 å¼å§ï¼CUDA å®è£ å·²å å« Humming ä½ä¸ºä¾èµï¼å æ¤æ éåç¬å®è£ HummingãHumming æ¯æä» Turing èµ·æææ¶æç NVIDIA GPUï¼SM75 å以ä¸ï¼ã
--linear-backend å --moe-backend é项åå«éæ© Humming ä½ä¸ºç¨ å¯ GEMM å MoE GEMM ç计ç®å端ãä¾å¦ï¼å¨å¼ éå¹¶è¡è§æ¨¡ä¸º 8 æ¶åæ¶ä¸ºä¸¤è å¯ç¨ Hummingï¼
vllm
serve
deepseek-ai/DeepSeek-V4.1-Flash-1017
\
--tensor-parallel-size
8
\
--linear-backend
humming
--moe-backend
humming--quantization humming éé¡¹ä» ä½ä¸ºå ¼å®¹è·¯å¾ï¼ç¨äº Humming æ¯æä½ vLLM ä¸åæ¯ææå°æªåçæ¯æçæ ¼å¼ï¼ä¾å¦ GPTQ INT3ãä¾å¦ï¼éè¿æ¤å ¼å®¹è·¯å¾å è½½ GPTQ INT3 æ£æ¥ç¹ï¼
vllm
serve
hfl/Qwen2.5-VL-3B-Instruct-GPTQ-Int3
--quantization
hummingéæ©æ¿æ´»ç±»å
é»è®¤æ åµä¸ï¼Humming ä½¿ç¨ checkpoint 䏿å®çæ¿æ´»ç±»åï¼å¹¶æ ¹æ®è®¾å¤è°æ´æ§è¡æ¹å¼ã妿 GPU 䏿¯æè¯¥è®¡ç®ç±»åï¼Humming ä¼åéå°åæ¯æçæ´é«ç²¾åº¦ç±»åãä¾å¦ï¼ä¸å ·å¤åç MXFP4 æ¯æç设å¤å¯ä»¥èªå¨ä½¿ç¨ FP8ãBF16 æ FP16 计ç®è·¯å¾ï¼ä»è让åä¸ä¸ªéå checkpoint è·¨ GPU 代é è¿è¡ã
ç¨æ·å¯ä»¥éè¿ vLLM çéåé ç½®æ¥å£è¦çé»è®¤è®¾ç½®ï¼ä¸ºé¨ç½²éæ©æ¿æ´»ç±»åã以ä¸ç¤ºä¾å° MoE å±çæ¿æ´»ç±»å设置为 MXFP8ï¼
vllm
serve
openai/gpt-oss-20b
--moe-backend
humming
--quantization-config.moe.activation
mxfp8æªæ¥è®¡å
æ´å¹¿æ³ãæ´æ·±å ¥çè®¾å¤æ¯æ
Humming å°ç»§ç»æ©å¤§ç¡¬ä»¶è¦çèå´ï¼åæ¶éé æ°è®¾å¤ç计ç®ä¸å åè½åï¼å¸®å©æ´å¤å¹³å°éæ¾é忍ççæ§è½æ½åãä¼å äºé¡¹å æ¬ï¼
- æ¯ææ´å¤ Rubin æ¶æç¹æ§ï¼å æ¬ Locality Domainsï¼ä»¥è¿ä¸æ¥ä¼å任塿 å°åæ°æ®è®¿é®ã
- å°æ¯ææ©å±å°æ´å¤ T-Head PPU 设å¤ï¼å æ¬ Zhenwu M890ã
- æ¯ææ´å¤å ¼å®¹ CUDA ç¼ç¨ç设å¤ï¼å°ç°æéåæ ¼å¼ãå æ ¸ç»ä»¶åè°ä¼è½å另尿´å¤ç¡¬ä»¶å¹³å°ã
å å ¥ Autotune
éè¿é对æ§è°ä¼ï¼Humming å¨å¤§å¤æ°åºæ¯ä¸å·²ç»è½å¤è¾¾å°ä¸çé¢å çæ§è½ãç¶èï¼æ¨¡åå½¢ç¶ãéåé ç½®å设å¤èµæºçèå´åå广æ³ï¼å¯å弿¹æ³é¾ä»¥å¨æ¯ç§æ åµä¸é½éåºæä¼é ç½®ã
å æ¤ï¼Humming 计åå¼å ¥ autotuneï¼å¨ç®æ 设å¤ä¸å¯¹åéé ç½®è¿è¡åºåæµè¯ï¼ä¸ºæ¯ä¸ªå·¥ä½è´è½½æ¾å°æ´å¥½çæ§è¡åæ°ãAutotune å°è¡¥å ç°æå¯å弿¹æ³ï¼åå°æå¨é ç½®æç´¢ï¼å¸®å©æ´å¤å·¥ä½è´è½½æ¥è¿å æ ¸å¯è¾¾å°çæä½³æ§è½ã
䏿¨çæ¡æ¶çæ´æ·±éæ
Humming å°ç»§ç»æ·±åä¸ vLLM çæ¨çæ¡æ¶çéæï¼æ©å¤§å¨é忍¡åå è½½ãåç«¯éæ©ãå¹¶è¡æ¨çãè¿è¡æ¶è°åº¦å设å¤éé çæ¹é¢çæ¯æãæä»¬çç®æ æ¯è®©æ´å¤éåæ¹æ³è½å¤é åæ¡æ¶ç宿´è½åï¼å æ¬é¢åä¸å®¶å¹¶è¡ï¼EPï¼çéå All-to-Allï¼A2Aï¼éä¿¡çä¼åãè¿äºå·¥ä½å°ä½¿é«æ§è½éåå æ ¸å¨å¤æ ·åé¨ç½²åºæ¯ä¸æ´æä½¿ç¨ï¼å¹¶å¸®å©å°å æ ¸æ§è½æ¶ç转å为端å°ç«¯æ¨çæ¶çã
è´è°¢
æä»¬æè°¢èèéå¢ç Jinzhen LinãZekai Gu å Zhilin Huangï¼ä»¥å Michael GoinãRoberto L. CastroãChauncey Jiang å vLLM 社åºçå ¶ä»æåï¼æè°¢ä»ä»¬å¨ Humming å¼åè¿ç¨ä¸çè´¡ç®ä¸æ¯æã
æä»¬è¿è¦æè°¢ vLLM ç¤¾åºæä¾å¼åãæµè¯å CI èµæºï¼ä½¿æä»¬è½å¤å¨å¹¿æ³ç硬件åå·¥ä½è´è½½ä¸éªè¯å¹¶æ¹è¿ Hummingã
Humming ç设计ä¸ä¼åçµææ¥èª MarlinãvLLM MarlinãLMDeployãDeepGEMMãFlashInferãCUTLASS åå ¶ä»å¼æºé¡¹ç®ãæä»¬æè°¢è¿äºé¡¹ç®çä½è åè´¡ç®è å享ä»ä»¬çæ³æ³ä¸å®ç°ï¼å¸®å©æ¨å¨æ´ä¸ªç¤¾åºç髿§è½é忍çåå±ã
æ¥æºï¼ vLLM 宿¹å客 · vllm.ai
弿ºçæ
é¨ç½²å·¥ç¨
äº§åæ´æ°
#
弿º/ä»åº
é¨ç½²/å·¥ç¨