Humming: کتابخونهی متنباز کرنل برای استنتاج کوانتیزه
خلاصهٔ کاملتر
طبق پست بلاگ vLLM، شرکت Ant Group و جامعهی vLLM کتابخونهی Humming رو متنباز کردن. این یه کتابخونهی کرنل برای quantized inferenceـه، یعنی اجرای مدل با وزنها و activationهای کمدقتتر (مثلاً ۴ بیتی به جای ۱۶ بیتی) تا حافظه و جابهجایی داده کمتر بشه. این موضوع مخصوصاً برای مدلهای MoE مهمه، چون مثلاً DeepSeek-V3 با ۶۷۱ میلیارد پارامتر فقط ۳۷ میلیاردش رو برای هر توکن فعال میکنه، ولی همهی وزنها باید تو حافظه باشن.
مشکلی که Humming حلش میکنه اینه که ترکیبهای کوانتیزاسیون خیلی زیادن: WNA16، W8A8، W4A8، W4A4 (W یعنی بیت وزن و A یعنی بیت activation)، بهعلاوهی فرمتهایی مثل INT4 و NVFP4 و انواع روش scale کردن. نوشتن و نگه داشتن یه کرنل جدا برای هر ترکیب بار سنگینی میشه. Humming همهی اینها رو به یه فرمت استاندارد واحد تبدیل میکنه که وزن، scale، zero point و بقیهی پارامترها رو جدا جدا توصیف میکنه.
بعد سه تا config کرنل رو مشخص میکنن: Layer Config برای شکل تنسورها و نوع داده و معماری هدف، Compute Config برای نوع GEMM، و Tuning Config برای اندازهی tile و تعداد stage و دستورهای MMA. کرنل با NVRTC یا NVCC به شکل JIT کامپایل و cache میشه. چون به فریمورکهای سنگین وابسته نیست، کامپایل یه کرنل W4A16 روی H200 از ۲۳.۳۵ ثانیه با CUTLASS به ۱.۸۲ ثانیه رسیده.
یه ترفند جالبش برای GPUهای قبل از Blackwellه که پشتیبانی بومی MXFP4 ندارن. Humming وزنهای MXFP4 رو داخل خود کرنل سریع به INT8 یا FP8 تبدیل میکنه، پس H200 هم میتونه W4A8-MXFP4 رو با سرعت خوب اجرا کنه و صرفهجویی حافظهی وزن ۴ بیتی رو هم نگه داره. Humming دو فرمت مخفی Tensor Coreهای Blackwell یعنی float4e0m3 و float8e3m4 رو هم پشتیبانی میکنه، ولی Rubin اینها رو نداره.
تو بنچمارکها، W4A16 متراکم تو batchهای کوچیک حدود ۳ تا ۴ برابر cuBLAS سرعت داره و روی H200 تو batchهای بزرگ تقریباً دو برابر Marlinه. تو MoE روی B300 مسیر Grouped به حدود ۵ برابر رسیده. W4A8 روی H20 و H200 حدود ۴.۲ و ۴.۵ برابر DeepGEMM W8A8 بوده. تو تست end-to-end با DeepSeek-V4.1-Flash روی هشت H20، جایگزینی Marlin W4A16 با Humming W4A8 توان خروجی رو ۱۴ تا ۴۳ درصد بیشتر و TTFT رو ۲۵ تا ۳۲ درصد کمتر کرده.
استفادهش هم سادهست: پکیجش حدود ۵۰۰ کیلوبایته و از vLLM 0.29.0 خودش جزو وابستگیهای نسخهی CUDA هست. با گزینههای --linear-backend و --moe-backend میشه Humming رو برای GEMM متراکم و MoE انتخاب کرد. اگه GPU نوع محاسبهی checkpoint رو پشتیبانی نکنه، خودش میره سراغ یه نوع با دقت بالاتر. برنامهی بعدی تیم اضافه کردن autotune و پشتیبانی از دستگاههای بیشتره.
نکات کلیدی:
- Humming همهی GPUهای NVIDIA از Turing (SM75) به بعد و Zhenwu 810E از T-Head رو پشتیبانی میکنه.
- کامپایل یه کرنل W4A16 روی H200 از ۲۳.۳۵ ثانیه با CUTLASS به ۱.۸۲ ثانیه رسیده.
- W4A8 روی H20 و H200 حدود ۴.۲ و ۴.۵ برابر DeepGEMM W8A8 سرعت داره.
- تو DeepSeek-V4.1-Flash توان خروجی ۱۴ تا ۴۳ درصد بیشتر و TTFT تا ۳۲ درصد کمتر شده.
- از vLLM 0.29.0 بدون نصب جدا در دسترسه و پکیجش حدود ۵۰۰ کیلوبایته.




