Versnel TinyML in de browser met WebFPGA
Een nieuw open-source framework, WebFPGA, stelt ontwikkelaars in staat om TinyML-inferentie rechtstreeks vanuit een webpagina uit te voeren in minder dan 10 ms. Het maakt gebruik van een via USB verbonden FPGA die slechts enkele tientallen milliwatt verbruikt en elke byte aan gegevens op het apparaat houdt.
TinyML-modellen — kleine neurale netwerken die op microcontrollers draaien — zijn inmiddels de standaard voor on-device AI. Toch moeten ontwikkelaars nog steeds balanceren tussen snelheid, energieverbruik en privacy wanneer ze inferentie naar de browser verplaatsen. Traditionele methoden vertrouwen op WebGPU, dat op de grafische processor draait, of op clouddiensten die gegevens van het apparaat afsturen. Beide verhogen de latentie, verbruiken meer energie en stellen ruwe invoergegevens bloot aan externe servers.
WebFPGA lost deze problemen op. De browser communiceert rechtstreeks met een FPGA via de WebUSB API. De API communiceert met een FTDI USB-naar-serieel controller, die een Lattice iCE40-UP5K-chip programmeert. Nadat de bitstream is geladen, voert de FPGA een TinyML-runtime uit die het model volledig op de hardware-accelerator uitvoert. Vanuit het perspectief van een ontwikkelaar laadt een enkele JavaScript-aanroep een .bit-bestand en streamt input-tensors.
Hoe de cijfers zich verhouden
- WebFPGA: 4 ms latentie, ~30 mW vermogen, geen gegevens verlaten de host.
- WebGPU: 12 ms latentie, ~200 mW, CPU/GPU verwerken nog steeds een deel van het datapad, waardoor er enige blootstelling blijft.
- Cloud-inferentie: 80 ms latentie, ~500 mW wanneer de netwerkstack draait, en elke sample wordt naar een externe server verzonden.
Deze cijfers vormen een duidelijk argument voor scenario's waarin elke milliseconde telt en de batterijduur beperkt is.
Scenario's uit de praktijk
- Spraakassistenten reageren in minder dan 6 ms, zonder audio van het apparaat af te sturen.
- Industriële sensormonitoring signaleert anomalieën zodra ze verschijnen, zelfs op geïsoleerde machines zonder internet.
- On-the-fly beeldfilters worden in minder dan 10 ms toegepast, waardoor de CPU vrijkomt voor UI-rendering.
Aan de slag gaan
- Installeer de open-source toolchain: Yosys (synthese), nextpnr-ice40 (place-and-route) en icepack (bitstream
