Akselerasi TinyML di Browser dengan WebFPGA

Sebuah framework open-source baru, WebFPGA, memungkinkan pengembang menjalankan inferensi TinyML langsung dari halaman web dalam waktu kurang dari 10 ms. Framework ini menggunakan FPGA yang terhubung via USB yang hanya mengonsumsi beberapa puluh miliwatt dan menjaga setiap byte data tetap berada di perangkat.

Model TinyML—jaringan saraf kecil yang berjalan pada mikrokontroler—kini menjadi standar untuk AI pada perangkat (on-device AI). Namun, pengembang masih harus menyeimbangkan kecepatan, daya, dan privasi saat mendorong inferensi ke browser. Jalur tradisional mengandalkan WebGPU, yang berjalan pada prosesor grafis, atau layanan cloud yang mengirimkan data keluar dari perangkat. Keduanya meningkatkan latensi, mengonsumsi lebih banyak energi, dan mengekspos input mentah ke server jarak jauh.

WebFPGA mengatasi masalah-masalah tersebut. Browser berkomunikasi langsung dengan FPGA melalui WebUSB API. API tersebut berkomunikasi dengan pengontrol FTDI USB-to-serial, yang memprogram chip Lattice iCE40-UP5K. Setelah bitstream dimuat, FPGA menjalankan runtime TinyML yang mengeksekusi model sepenuhnya pada akselerator perangkat keras. Dari sudut pandang pengembang, satu panggilan JavaScript saja dapat memuat file .bit dan melakukan streaming tensor input.

Perbandingan angka-angkanya

  • WebFPGA: latensi 4 ms, daya ~30 mW, tidak ada data yang keluar dari host.
  • WebGPU: latensi 12 ms, ~200 mW, CPU/GPU masih menangani sebagian jalur data, sehingga risiko eksposur data tetap ada.
  • Cloud inference: latensi 80 ms, ~500 mW saat tumpukan jaringan (network stack) berjalan, dan setiap sampel dikirim ke server jarak jauh.

Angka-angka tersebut memberikan alasan kuat untuk skenario di mana setiap milidetik sangat berharga dan daya tahan baterai sangat terbatas.

Skenario dunia nyata

  1. Asisten suara bereaksi dalam waktu kurang dari 6 ms, tanpa pernah mengirimkan audio keluar dari perangkat.
  2. Pemantauan sensor industri menandai anomali saat itu juga ketika muncul, bahkan pada mesin terisolasi tanpa internet.
  3. Filter gambar on-the-fly diterapkan dalam waktu kurang dari 10 ms, sehingga membebaskan CPU untuk rendering UI.

Memulai

  1. Instal toolchain open-source: Yosys (synthesis), nextpnr-ice40 (place-and-route), dan icepack (bitstream generation).
  2. Konversi model TensorFlow Lite (.tflite) ke Verilog dengan utilitas tinyml-conv.
  3. Jalankan sintesis dan buat file .bit untuk iCE40-UP5K.
  4. Sertakan webfpga.js pada halaman web; satu panggilan JavaScript akan memuat bitstream melalui WebUSB dan melakukan streaming data inferensi.

Alur kerja ini mencerminkan pipeline pengembangan FPGA yang sudah ada, tetapi langkah terakhir hanya memerlukan browser web standar dan kabel USB—tanpa driver proprietary atau SDK yang berat.

Mengapa beberapa pengembang mungkin tetap memilih WebGPU atau cloud

WebGPU memiliki dukungan perangkat keras yang lebih luas di berbagai laptop dan desktop, dan ekosistemnya sudah menawarkan driver grafis serta peranti (tooling) yang matang.

WebFPGA menunjukkan bahwa browser bisa lebih dari sekadar lapisan UI; ia dapat menjadi portal menuju perangkat keras AI dengan latensi ultra-rendah yang menjaga privasi. Untuk aplikasi di mana setiap milidetik sangat berarti dan data harus tetap lokal, framework ini menawarkan alternatif yang menarik bagi pipeline inferensi yang berpusat pada GPU atau cloud.