Introducing @huggingface/kernels: 200+ WebGPU Kernels for Local AI
Oleh Zai · Let's Make It Easy
Dipublikasikan 2026-09-02
Browser-based AI is usually discussed at the model level. The part that actually runs, though, is a long sequence of GPU operations: matrix multiplication, normalization, attent...
Browser-based AI is usually discussed at the model level. The part that actually runs, though, is a long sequence of GPU operations: matrix multiplication, normalization, attention, quantization, and data movement. If those operations are slow, a good model still feels slow.
1. Apa Itu @huggingface/kernels?
Hugging Face memperkenalkan @huggingface/kernels sebagai library untuk mengambil dan menjalankan WebGPU kernels dari Hugging Face Hub. Kernel di sini adalah implementasi operasi GPU tertentu, bukan model AI lengkap. Paketnya mencoba membuat operasi tersebut bisa dipakai oleh runtime browser dengan kontrak yang jelas dan versi yang eksplisit.
Rilis awalnya berisi 207 kernels. Setiap kernel dikemas bersama manifest, template shader WGSL, contoh correctness, kasus benchmark, dan instruksi penggunaan. Format seperti ini lebih berguna daripada sekadar menaruh file shader di sebuah URL karena developer dapat melihat apa yang diuji dan versi kontrak yang dipakai.
2. Mengapa WebGPU Butuh Kernel yang Terukur?
WebGPU memberi API yang portabel, tetapi portabel tidak sama dengan konsisten cepat. Workgroup size, pola akses memory, tipe data, bentuk tensor, browser, driver, dan GPU bisa mengubah hasil secara signifikan. Shader yang menang pada satu perangkat belum tentu menang pada perangkat lain.
Hugging Face juga memperkenalkan Fleet, tool di browser untuk menjalankan benchmark dan test kernel di hardware pengguna. Artikel tersebut menyebut hasil dengan consent dapat membantu menemukan output yang salah atau kasus yang sangat lambat. Ini menarik karena data performa tidak hanya datang dari satu lab, walaupun hasil komunitas tetap perlu dibaca dengan konteks perangkat dan konfigurasi.
3. Apa Artinya untuk Builder?
Kalau Anda sedang membuat inference di browser, jangan hanya mengukur waktu load model. Ukur juga operasi yang paling sering dipanggil, cold start, transfer data, dan latency end-to-end. Bandingkan hasil di browser serta hardware yang benar-benar dipakai pengguna.
Angka 2.57x yang disebut Hugging Face berasal dari perbandingan mereka dengan ORT WebGPU pada subset kasus yang output-nya cocok dan timing-nya dapat diandalkan. Itu bukan angka universal. Untuk keputusan production, ulangi benchmark dengan workload sendiri dan cek dukungan WebGPU di target browser.
Sumber primer dan repository referensi tersedia di bawah.
4. Checklist Eksperimen
Mulai dari satu operator yang memang dominan di workload Anda. Simpan versi kernel dan konfigurasi browser, catat bentuk input, lalu bandingkan hasil dengan baseline yang sama. Correctness harus diperiksa sebelum speedup dihitung. Untuk aplikasi publik, siapkan fallback ketika WebGPU tidak tersedia atau driver menghasilkan error.
Pengemasan versi juga penting. Kontrak JavaScript yang stabil dapat membantu runtime berganti implementasi tanpa memaksa aplikasi mengubah cara memanggil operasi. Namun, versioning tidak menggantikan observability. Catat perangkat, browser, shader variant, dan hasil test supaya regresi tidak terlihat seperti variasi latency biasa.
Referensi: https://huggingface.co/blog/webgpu-kernels