Hugging Face zveřejnil 207 WebGPU kernelů pro prohlížeč, loader k nim vyšel jako náhled
Organizace webgpu-kernels na Hubu nese 207 výpočetních programů pro grafický čip pod licencí Apache 2.0 a balíček @huggingface/kernels je z prohlížeče stáhne a spustí. Proti ONNX Runtime Web vyšly podle blogu 2,57× rychlejší, jenže na jediném čipu Apple M4, proti vývojovému sestavení a jen u 809 z 1 756 případů. Celý model z nich zatím nikdo neposkládá, napojení na vyšší vrstvy teprve přijde.

Hugging Face zveřejnil 1. září první vrstvu svého plánu na rychlý běh modelů v prohlížeči: organizaci webgpu-kernels s 207 kernely a knihovnu @huggingface/kernels, která je z Hubu stáhne a spustí. Kernel je tu jeden výpočetní program pro grafický čip, třeba násobení matic, softmax nebo normalizace vrstvy, napsaný v jazyce WGSL, který prohlížeče spouštějí přes rozhraní WebGPU. Podepsaní jsou Nico Martin a Joshua (na Hubu Xenova) z týmu WebAI.
Každý kernel je samostatný repozitář
Podle výpisu rozhraní Hubu vzniklo všech 207 repozitářů 31. srpna a všechny nesou licenci Apache 2.0. Jména prozrazují, odkud sada vychází: 175 kernelů má předponu ai.onnx, tedy operátory standardu ONNX, a 32 předponu com.microsoft, což jsou rozšiřující operátory ONNX Runtime, například MultiHeadAttention, PagedAttention, MoE nebo MatMulNBitsQkv pro násobení s kvantovanými váhami. Je to tedy táž sada operací, kterou dnes v prohlížeči vykonává ONNX Runtime Web, jen rozložená na kusy.
V každém repozitáři leží manifest.json se smlouvou operace (vstupy, výstupy, atributy, odvození tvaru výstupu), test.json s případy správnosti, bench.json s případy pro měření a šablony *.wgsl.jinja, ze kterých se shader skládá až pro konkrétní tvar dat a zařízení. Jeden kernel proto mívá víc variant. Sčítání dvou stejně velkých tenzorů jde vektorizovanou cestou, sčítání s rozšířením tvarů potřebuje jiné indexování a běhové prostředí si vybere samo.
Na Hubu je to zdaleka největší skupina. Z 506 kernelů, které rozhraní api/kernels vypisuje k 2. září, jich 207 patří WebGPU, 174 CUDA, 24 platformě XPU od Intelu, 23 ROCm a 20 Metalu; 82 nemá platformu uvedenou. Je to vlastní součet z výpisu, ne číslo z blogu.
Loader je náhled a říká to sám
Balíček @huggingface/kernels vyšel na npm 1. září ve verzi 0.0.1-preview.1: šest souborů, 259 kB po rozbalení, licence Apache 2.0. Jeho README začíná větou, že jde o časný náhled a rozhraní se ještě může změnit. Volání getKernel("webgpu-kernels/ai.onnx.Add", { version: 1 }) sleduje větev v1 repozitáře, která se s opravami posouvá; kdo chce neměnné bajty, předá místo verze čtyřicetimístný otisk commitu. Kernel od jiného vydavatele než z organizace webgpu-kernels loader odmítne, dokud nedostane trustRemoteCode: true. Je to kód, který poběží na grafickém čipu čtenáře, a README to říká přesně těmito slovy.
Zrychlení 2,57×, měřené na jednom čipu
Blog srovnává kernely s WebGPU backendem ONNX Runtime Web na grafickém čipu Apple M4. Z 1 756 testovacích případů zůstalo 809, u kterých obě strany daly shodný výsledek a spolehlivý čas. V nich vyšly kernely Hugging Face rychlejší 2,57× po geometrickém průměru a 1,90× v mediánu, s 629 výhrami, 176 prohrami a čtyřmi remízami. U čtyř běžných operací uvádí tabulka 3,52× pro Add, 2,11× pro Softmax, 2,22× pro LayerNormalization a jen 1,14× pro MatMul, tedy pro násobení matic, které v jazykovém modelu spotřebuje nejvíc času. Extrémy jako víc než 10 000× u jednoho případu Einsum nebo 301× u CumSum označuje blog sám za výjimky, kde obecná implementace narazila na pomalou cestu.
Tři věci u toho čísla platí. Měřil se jen čas na grafickém čipu, bez načtení kernelu, kompilace shaderu a přenosu dat tam a zpět. Protistranou bylo vývojové sestavení onnxruntime-web 1.30.0-dev.20260826, nahrané na npm 27. srpna, ne poslední stabilní vydání 1.29.0 z 24. srpna. A jde o jednotlivé operace, ne o celý model; jak se rozdíl projeví u hotové sítě, blog neuvádí. Autoři k tomu píšou, že zlepšení chtějí spolu s týmem ONNX Runtime přenést i do něj, takže obě strany srovnání se mají časem potkat.
Fleet sbírá měření z cizích počítačů
Výkon WebGPU se liší podle čipu, prohlížeče i ovladače, a tak Hugging Face spustil k sadě i Fleet: stránku, která kernely na počítači návštěvníka otestuje, změří a vrátí mu kartu s hodnocením. Se souhlasem se výsledek odešle jako podklad pro hledání chyb a výběr variant na zařízeních, ke kterým tým sám nemá přístup. Na stránce visí ukázkové karty pro Apple M4 Max a GeForce RTX 5060.
Kde to vůbec poběží
Kernely potřebují prohlížeč s WebGPU, tedy s objektem navigator.gpu. Podle dat projektu Can I use ho mají zapnutý Chrome a Edge od verze 113 a Safari na iOS od 26.0. Na počítači ho Safari zapíná jen na macOS 26 a novějším a Firefox jen na Windows a na macOS 26 s čipem Apple Silicon; na Linuxu zůstává ve Firefoxu za příznakem a u Chromu závisí na hardwaru a ovladači. Podíl prohlížečů s plnou podporou počítá Can I use na 84 %, s částečnou na 3 % (podle StatCounteru za červenec 2026).
Model z toho zatím neposkládáte
Sada je stavebnice operací, ne běhové prostředí. Blog to říká otevřeně: kernely jsou první vrstva a napojení na nástroje pro celé modely teprve přijde. Ukázka v dokumentaci sčítá šest čísel a autoři sami dodávají, že v takové velikosti stojí cesta na grafický čip víc než výpočet. Kdo dnes chce spustit model v prohlížeči, dál sáhne po ONNX Runtime Web nebo Transformers.js. Nová sada je zatím pro ty, kdo si běhové prostředí staví sami, nebo kdo chce porovnat vlastní shader s referenčním.
Zdroje
- Introducing @huggingface/kernels: 200+ WebGPU Kernels for Local AI, blog Hugging Face, 1. září 2026
- organizace webgpu-kernels a výpis api/kernels, ze kterého jsou počty a data vzniku
- záznam balíčku @huggingface/kernels v registru npm a záznam onnxruntime-web s daty vydání
- Fleet GPU Trials
- WebGPU na Can I use a zdrojová data