vLLM برای سختافزارهای قدیمیتر یه مسیر جدا میسازه
خلاصهٔ کاملتر
vLLM سالهاست خودش رو بهعنوان لایهٔ واسط بین مدلهای مختلف و سختافزارهای مختلف جا انداخته: انویدیا، AMD، اینتل XPU، TPU گوگل، IBM Spyre و Huawei Ascend. تو این پست اومده که معماری مدلهای open-weight جدید داره از هم فاصله میگیره و هر کدوم با لایهها و کرنلهای اختصاصی خودشون میان، برای همین اون انتزاع مشترک دیگه جواب نمیده.
راهحل تیم رفتن سراغ مدلهای flat بوده، یعنی تعریف مدل مخصوص هر سختافزار زیر vllm/models/ که بهجای torch.compile از فیوژن دستی استفاده میکنه. مشکلش اینه که این مسیر سازگاری با fullgraph torch.compile (یعنی اینکه کل گراف مدل یهجا ترِیس و بهینه بشه) و مکانیزم CustomOp رو میشکنه. نتیجهش برای شتابدهندههای out-of-tree و GPUهای قدیمی، دوبارهنویسی و نگهداری سنگینه.
پس vLLM یه دستهٔ دوم لایه هم اضافه میکنه، داخل model_executor/hw_agnostic، با چهار اصل: کامپایلشدنی، قابلتوسعه با CustomOp و PluggableLayer، ایزوله از مسیر سختافزارمحور، و قابلحمل، چون فقط با PyTorch خام یا DSLهایی مثل Triton و Helion نوشته میشن که همهجا اجرا میشن. بخشی از این کار برای بکاند transformers الان تو شاخهٔ main هست و با یه متغیر محیطی روشن میشه:
USE_HW_AGNOSTIC=1 vllm serve google/gemma-4-31B --model-impl=transformersاین مسیر با پلاگین Spyre روی Gemma 4 و Qwen3 و Granite 4.2 اعتبارسنجی شده. تو اندازهگیری روی H100، مدلهای hw-agnostic با اینکه فقط از پیادهسازیهای قابلحمل ساخته شدن، از نظر throughput (یعنی تعداد توکنی که در ثانیه بیرون میده) بهطور میانگین هندسی روی سه مدل تا ۳.۴٪ با نسخهٔ نیتیوی که از FlashAttention و CUTLASS استفاده میکنه فاصله دارن و جاهایی حتی جلو میزنن. تیم تأکید میکنه هدف این لایهها رکورد زدن روی Blackwell نیست، بلکه کار کردن روی سختافزارهای متنوعه.
نکات کلیدی:
- مدلهای flat مخصوص هر سختافزار، سازگاری با fullgraph torch.compile و CustomOp رو میشکنن
- لایههای hardware-agnostic تو مسیر model_executor/hw_agnostic قرار میگیرن
- چهار اصل طراحی: کامپایلشدنی، قابلتوسعه، ایزوله و قابلحمل (PyTorch، Triton، Helion)
- روی H100 فاصلهٔ توان عبور توکن با نسخهٔ نیتیو ۳.۴٪ بهصورت میانگین هندسی سه مدل
- با USE_HW_AGNOSTIC=1 روی بکاند transformers فعال میشه و با پلاگین Spyre روی Gemma 4، Qwen3 و Granite 4.2 تست شده




