Hugging Face merilis @huggingface/kernels pada 1 September, sebuah pustaka loader JavaScript untuk mengunduh, menyiapkan, dan menjalankan kernel WebGPU yang sudah dioptimalkan langsung dari Hub. Bersamaan dengan itu dirilis pula 207 operator GPU yang sudah disetel, mencakup perkalian matriks, normalisasi, konvolusi, primitif atensi, operasi kuantisasi, dan konversi tata letak data, mencakup berbagai arsitektur machine learning. Semuanya dirilis di bawah lisensi Apache-2.0.
Bagian yang paling tidak biasa adalah cara pengorganisasiannya. Setiap kernel dipublikasikan sebagai repositori tersendiri, lengkap dengan definisi antarmuka, template shader, uji korektnesan, dan data benchmark. Begitu berada di Hub, sebuah operator dan sebuah model mengikuti mekanisme yang sama persis untuk versioning, pengunduhan, dan referensi.
809 uji banding berpasangan
Angka performa berasal dari perbandingan langsung dengan ORT WebGPU 1.30.0-dev pada 809 kasus uji: percepatan rata-rata geometris 2,57x, percepatan median 1,90x, dengan rekor 629 menang, 176 kalah, dan 4 seri. Bila dirinci per operator, Add lebih cepat 3,52x, Softmax lebih cepat 2,11x, dan LayerNormalization lebih cepat 2,22x.
Perhitungan kasar menempatkan tingkat kemenangan di angka 78%. Rata-rata geometris 2,57x yang jauh melampaui median 1,90x menunjukkan distribusi yang miring ke kanan — sejumlah kecil operator melesat jauh lebih cepat dan menarik rata-rata ke atas. Percepatan yang benar-benar terasa pada beban kerja nyata kemungkinan besar lebih dekat ke angka median dibanding angka paling mencolok dalam pengumuman. Ini tidak mengubah arah kesimpulannya, hanya mengembalikan ekspektasi ke tempat yang lebih realistis.
Bersamaan dengan kernel-kernel ini hadir pula alat benchmark dalam-browser bernama Fleet, dibangun di atas gagasan crowdsourcing: siapa pun yang menjalankannya di perangkat masing-masing menyumbangkan bukti performa dan korektnesan. Fragmentasi perangkat keras WebGPU jauh lebih parah dibanding CUDA di sisi server — GPU terintegrasi, GPU diskret, GPU perangkat mobile, dan implementasi browser yang berbeda-beda semuanya berperforma berbeda, dan segelintir mesin di laboratorium tidak cukup untuk menangkap gambaran menyeluruh. Menyebarkan pengujian ke pengguna adalah solusi yang pragmatis.
Mengapa kernel jadi titik hambat
Daya tarik menjalankan model di browser selalu jelas: komputasi terjadi di perangkat pengguna, server tidak menanggung biaya komputasi, dan data tidak perlu meninggalkan perangkat. Yang selama ini menghambat adopsi biasanya bukan format model atau framework inferensi, melainkan lapisan di bawahnya — kernel. Softmax yang sama, ditulis dengan baik versus ditulis seadanya, adalah perbedaan antara bisa real-time atau tidak.
Sebelumnya, lapisan ini hanya bisa diperbarui bersamaan dengan runtime inferensi secara keseluruhan. Mengganti ke implementasi atensi yang lebih cepat biasanya berarti menunggu rilis framework berikutnya. Dengan memecah kernel menjadi repositori independen, sebuah operator menjadi unit yang bisa diganti, di-rollback, atau ditingkatkan secara mandiri. Mengganti kernel perkalian matriks yang dioptimalkan untuk GPU tertentu, khusus untuk satu model, secara teori tidak perlu menyentuh kode lain sama sekali.
Cara pemanggilannya pun dibuat singkat — ambil objek kernel lalu panggil langsung seperti fungsi:
const add = await getKernel("webgpu-kernels/ai.onnx.Add", { version: 1 });Prasyaratnya adalah dukungan WebGPU di browser, dan deteksinya cukup satu baris: "gpu" in navigator.
Dampaknya bagi perkakas on-device
Pihak yang diuntungkan dari pembaruan ini cukup spesifik: tim yang membangun pemrosesan gambar berbasis browser murni, transkripsi lokal, penerjemahan offline, dan perkakas yang mengutamakan privasi. Model bisnis produk-produk semacam ini bertumpu pada server yang hanya mengirim file statis tanpa menanggung biaya komputasi, dan ukuran model yang bisa dijalankan di browser langsung ditentukan oleh performa kernel. Bila kernel secara keseluruhan menjadi kira-kira dua kali lebih cepat, batas atas ukuran model yang layak dipakai pun naik satu tingkat — operasi yang tadinya butuh tiga detik kini bisa selesai kurang dari satu detik.
Bagian yang perlu disikapi dengan hati-hati juga harus disampaikan dengan jelas. Perbandingan benchmark dilakukan terhadap versi dev ORT WebGPU, dan pesaing itu pun terus merilis pembaruannya sendiri; 207 operator terdengar banyak, tetapi yang dicakup adalah operasi-operasi umum, sementara siapa pun yang menemui arsitektur yang jarang dipakai tetap harus menulis kernelnya sendiri. Dukungan WebGPU memang sudah meluas di berbagai browser, tetapi kualitas implementasi di perangkat mobile masih tidak merata, sehingga perilaku lintas perangkat tetap perlu diperiksa langsung dengan alat seperti Fleet.
Mengubah kernel menjadi aset yang bisa dialamatkan, diberi versi, dan diverifikasi secara crowdsourced punya arti yang lebih besar dalam jangka panjang dibanding sekadar percepatan dua kali lipat. Bobot model sudah lama beredar dengan cara seperti ini — kode infrastruktur menyusul cepat atau lambat hanyalah soal waktu.
Sumber: blog resmi Hugging Face, CocoLoop, repositori Hugging Face Hub; jumlah kernel, 809 kasus uji, percepatan rata-rata geometris 2,57x dan median 1,90x, serta rekor 629-176-4 dan kelipatan per operator telah diperiksa terhadap pengumuman resmi — perhitungan tingkat kemenangan dan pembacaan kemiringan distribusi merupakan estimasi editorial.