O que foi lançado
A equipe WebAI da Hugging Face anunciou o @huggingface/kernels, uma biblioteca JavaScript para carregar e executar kernels WebGPU otimizados diretamente do Hugging Face Hub. O lançamento vem acompanhado de uma coleção inicial de 207 kernels, publicados como repositórios individuais na organização webgpu-kernels sob licença Apache-2.0.
O objetivo é simples e ambicioso: fazer a inferência de modelos de IA rodar no navegador de forma cada vez mais rápida. A ideia central é que um modelo executando no browser, em última análise, vira uma sequência de operações de GPU — multiplicações de matrizes, normalizações, convoluções, primitivas de atenção, operações de quantização e transformações de layout de dados. O WebGPU expõe essas operações de forma portátil entre navegadores, e a WGSL fornece a linguagem comum para os shaders que as executam.
Por que kernels importam
A portabilidade do WebGPU, porém, não garante desempenho automaticamente. Dois shaders podem implementar a mesma operação e produzir o mesmo resultado, mas se comportar de forma totalmente diferente entre aceleradores distintos. Tamanhos de workgroup, padrões de acesso à memória, vetorização, tipos de dados e estratégias de fusão afetam o desempenho — e a melhor escolha muda conforme o formato do input, o dispositivo, o navegador e os recursos WebGPU disponíveis.
Por isso, a Hugging Face defende que os kernels formam a camada fundamental da inferência rápida no navegador: runtimes de nível mais alto só são tão eficientes quanto as operações que despacham. Ao tornar cada operação individualmente descobrível, testável, comparável e versionada, dá para melhorar a fundação de forma independente, mantendo um contrato estável para as camadas acima.
Um repositório de kernel, não apenas um shader
Cada kernel da coleção tem seu próprio repositório e um “kernel card” que documenta semântica da operação, entradas, saídas, atributos, tipos de dados suportados e um exemplo pronto para uso. Por trás do card, o repositório empacota os artefatos necessários para entender e avaliar a implementação:
- manifest.json: fonte da verdade para o contrato da operação (entradas, saídas, atributos e regras de derivação de shape);
- metadata.json: identificador, digests e proveniência do kernel;
- test.json: casos de correção para validar a implementação;
- bench.json: casos de benchmark e tuning usados para avaliar o kernel;
- arquivos *.wgsl.jinja: implementações WGSL parametrizadas para gerar shaders para um pedido e dispositivo específicos.
Essa estrutura transforma um shader em um artefato de software reutilizável: a interface é inspecionável sem ler WGSL, casos de correção e desempenho viajam junto com a implementação, e versões publicadas podem ser carregadas explicitamente.
Como carregar um kernel
A instalação é feita pelo npm com npm install @huggingface/kernels@preview. A execução exige um navegador com suporte a WebGPU, verificável em JavaScript com "gpu" in navigator. A biblioteca expõe getKernel, que recebe o ID do repositório no Hub e a versão do contrato, e retorna uma função invocável com dados tipados e shapes de tensores.
O exemplo mínimo do ai.onnx.Add (adição elementwise com broadcasting multidirecional) ilustra o padrão de chamada, que permanece idêntico para operações pesadas como a multiplicação de matrizes (ai.onnx.MatMul) — apenas o ID do repositório e os inputs mudam.
Quão mais rápidos são os kernels?
Em comparação direta com o ORT WebGPU em uma GPU Apple M4 (usando ONNX Runtime Web 1.30.0-dev), a coleção foi 2,57x mais rápida na média geométrica e 1,90x na mediana, com 629 vitórias, 176 derrotas e 4 empates em 809 casos comparáveis. Alguns ganhos individuais foram muito maiores: um caso de Einsum bilinear rodou em 0,136 ms contra 1.396 ms (mais de 10.000x mais rápido), e um CumSum por linha em 0,016 ms contra 4,784 ms (301x). A equipe ressalta que são casos incomuns, não o ganho esperado em todo lugar, mas mostram o quanto um kernel especializado ajuda quando uma implementação genérica cai em um caminho lento.
Fleet: de um dispositivo para uma frota
O desempenho do WebGPU varia entre GPUs, navegadores e drivers, então resultados de uma única máquina contam só parte da história. O Fleet é uma suíte de benchmark e testes in-browser que roda e pontua os kernels no hardware de cada usuário. Com consentimento, cada execução contribui evidências privadas que ajudam a encontrar falhas, comparar variantes e melhorar as regras de seleção — usando cobertura real de dispositivos que um laboratório de testes convencional jamais cobriria.
A Hugging Face também afirma estar trabalhando com a equipe do ONNX Runtime para integrar essas melhorias e beneficiar o ecossistema ONNX Runtime Web como um todo.
Descubra mais sobre noticiAI
Assine para receber nossas notícias mais recentes por e-mail.



