هاگینگفیس ۲۰۷ کرنل WebGPU منتشر کرد
خلاصهٔ کاملتر
تیم WebAI هاگینگفیس کتابخونهٔ @huggingface/kernels رو همراه با ۲۰۷ کرنل WebGPU روی Hub منتشر کرده. کرنل یعنی همون عملیات پایهای که مدل موقع اجرا روی GPU انجام میده: ضرب ماتریسی، نرمالسازی، کانولوشن، عملیات attention و کوانتیزیشن. به گفتهٔ نویسندهها هدف تیم اینه که اجرای مدل تو مرورگر هم سریع باشه هم راحت، و این پایینترین لایهٔ اون کاره. همهٔ کرنلها با لایسنس Apache-2.0 منتشر شدن.
نکتهٔ اصلی اینه که هر کرنل یه مخزن کامله، نه یه فایل شیدر تنها. تو هر مخزن manifest.json قرارداد ورودی و خروجی رو تعریف میکنه، test.json کیسهای درستیسنجی داره، bench.json کیسهای بنچمارک و فایلهای *.wgsl.jinja هم پیادهسازی پارامتری WGSL هستن. اینجوری میتونی نسخهٔ مشخصی رو لود کنی و بدون خوندن کد شیدر بفهمی کرنل دقیقاً چیکار میکنه.
لود کردن از Hub با getKernel انجام میشه: آیدی مخزن و نسخهٔ قرارداد رو میدی، بعد تابع برگشتی رو با دیتا و شکل تنسورها صدا میزنی.
import { getKernel } from "@huggingface/kernels";
const add = await getKernel("webgpu-kernels/ai.onnx.Add", { version: 1 });
const { c } = await add({
a: { data: new Float32Array([1, 2, 3, 4, 5, 6]), shape: [2, 3] },
b: { data: new Float32Array([10, 20, 30]), shape: [3] },
});خود لودر شکل خروجی رو از manifest درمیآره و بافر c رو خودش میسازه. همین الگوی صدا زدن برای عملیات سنگینتر مثل ai.onnx.MatMul هم عین همینه و فقط آیدی مخزن و ورودیها عوض میشه. کرنل Add خودش چند وریانت داره (شکلهای برابر، برادکست برداری، پردازش اسکالر) و رانتایم بدون تغییر API مناسبترین رو انتخاب میکنه.
برای بنچمارک، تیم روی GPU مک M4 و در برابر ORT WebGPU نسخهٔ 1.30.0-dev.20260826 از ۱۷۵۶ کیس تست، ۸۰۹ کیس قابل مقایسه رو نگه داشته. نتیجه: میانگین هندسی ۲.۵۷ برابر و میانهٔ ۱.۹۰ برابر سریعتر، با ۶۲۹ برد، ۱۷۶ باخت و ۴ مساوی. Add حدود ۳.۵۲ برابر، Softmax ۲.۱۱ برابر و MatMul فقط ۱.۱۴ برابر جلو بود. نویسندهها تأکید میکنن فقط زمان اجرا روی GPU اندازه گرفته شده و لود و کامپایل شیدر حساب نشده.
چون رفتار WebGPU بین GPU و درایور و مرورگر فرق میکنه، هاگینگفیس ابزار Fleet رو هم راه انداخته؛ یه سوییت تست و بنچمارک که تو مرورگر خودت اجرا میشه و با اجازهٔ خودت نتیجهٔ سختافزارت رو بهصورت خصوصی میفرسته تا خطاها و کیسهای خیلی کند پیدا بشن. تیم میگه داره با تیم ONNX Runtime هم کار میکنه تا این بهبودها به بالادست منتقل بشه.
نکات کلیدی:
- ۲۰۷ کرنل WebGPU با لایسنس Apache-2.0 تو سازمان webgpu-kernels روی Hub
- نصب لودر جاوااسکریپتی با npm install @huggingface/kernels@preview
- میانگین هندسی ۲.۵۷ برابر و میانهٔ ۱.۹۰ برابر سریعتر از ORT WebGPU روی M4 در ۸۰۹ کیس
- یه کیس Einsum بیلینیر با اندازهٔ ۴۰۹۶ تو ۰.۱۳۶ میلیثانیه در برابر ۱۳۹۶ میلیثانیه اجرا شده
- اجرای کرنلها به مرورگری با پشتیبانی WebGPU نیاز داره




