En utvikler har fått en GAN-modell med 12,6 millioner parametere til å generere 64×64 bilder på en mikrokontroller med bare 512 KB SRAM og ingen ekstern RAM. Det tar 26 sekunder per bilde, kjøres på dual-core RISC-V og krever null ferdiglagde ML-rammeverk. Ren C. Resultatet? Et katteransikt, piksel for piksel, fra en chip som koster noen titalls kroner.

Dette er ikke akkurat bildegenerering i verdensklasse. Men det er noe annet som er langt mer interessant: det er et bevis på at inferens ikke krever et datasenter, ikke krever PyTorch, ikke krever en GPU. Det krever bare nok forståelse til å implementere det fra bunnen av.

La meg forklare hva som faktisk skjedde her, og hvorfor det er verdt å bite seg merke i.

Hva er en DCGAN, og hvorfor er dette overraskende?

En DCGAN (Deep Convolutional Generative Adversarial Network) er en type generativt nevralt nettverk. Den trenes med to konkurrerende nettverk: en generator som lager bilder, og en diskriminator som forsøker å avsløre falske bilder. Over tid lærer generatoren å lage stadig mer overbevisende resultater.

Det overraskende er ikke selve DCGAN-arkitekturen – den er godt dokumentert og daterer seg til 2015. Det overraskende er at en modell med 12,6 millioner parametere ble presset ned i en chip med 512 KB arbeidsminne. Til sammenligning: et vanlig JPEG-bilde fra telefonen din tar mer plass enn det totale arbeidsminnet på denne brikken.

Nøkkelen til at dette i det hele tatt er mulig, er int8-kvantisering med per-kanal presisjon. I stedet for å lagre hvert tall som en 32-bit float, brukes 8-bit heltall. Det reduserer minnebehovet med en faktor på fire. Vektene i modellen strømmes direkte fra et SD-kort ved hjelp av dobbelbuffering – mens ett lag beregnes, lastes det neste laget inn i bakgrunnen. Ingen av vektene trenger å ligge i RAM samtidig.

Hvilken hardware ble brukt?

Brikken er en CH32H417 – en relativt ny RISC-V-mikrokontroller med to kjerner. Den har ikke støtte for TFLite eller CMSIS-NN (Arms ML-biblioteker for innebygde systemer), siden RISC-V er en annen instruksjonsarkitektur. Det fantes altså ingen snarvei: utvikleren måtte bygge hele inferensmotoren fra bunnen av i C.

Nærbilde av RISC-V mikrokontroller på breadboard med jumperledninger og SD-kortmodul
CH32H417-brikken er en dual-core RISC-V mikrokontroller uten støtte for TFLite eller CMSIS-NN

Mellomlagrede aktiveringer (de beregnede verdiene mellom hvert lag i nettverket) lagres i DTCM – Data Tightly Coupled Memory, en raskere minneregion som er koblet direkte til prosessorkjernene. Det er dette som gjør at beregningene i det hele tatt kan gjennomføres uten ekstern RAM.

Resultatet er en inferensmotor som er bit-identisk med PyTorch-referanseimplementasjonen. Det betyr at tallene stemmer nøyaktig overens – ingen avrundingsfeil eller numerisk drift. Det er ikke enkelt å oppnå når man implementerer matrisemultiplikasjon og konvolusjonsoperasjoner for hånd i C.

Hvorfor tar det 26 sekunder?

26 sekunder per bilde høres tregt ut. For et katteransikt på 64×64 piksler er det mildest talt ikke imponerende ytelse. Men konteksten er viktig: en RISC-V mikrokontroller kjørt uten GPU-akselerasjon, uten SIMD-vektorinstruksjoner optimalisert for ML, og uten noe som helst av de ferdigbygde optimaliseringene som finnes i rammeverk som TFLite Micro.

12,6 millioner parametere krever enormt mange multiplikasjoner. En enkelt konvolusjonsoperasjon i et nevralt nettverk kan innebære millioner av flyttallsmultiplikasjoner. Å gjøre dette sekvensielt på en lavfrekvent kjerne i C er ikke rakett-vitenskap – det er grunnleggende matematikk som bare tar tid.

Visualisering av nevrale nettverkslag og konvolusjonsoperasjoner med glødende fargerike gitter
I DCGAN strømmes vektene lag for lag fra SD-kortet, mens mellomlagrede aktiveringer holdes i DTCM-minnet

For øvrig er dette den typen ytelse man kan forvente å forbedre dramatisk med bedre kjerneskrift, SIMD-optimaliseringer for RISC-V, og mer aggressiv kvantisering. Det finnes også vesentlig mer effektive modellarkitekturer for edge-bruk enn DCGAN.

Hva er poenget med dette?

Poenget er prinsippet, ikke produktet. Dette demonstrerer noe fundamentalt: inferens – selve kjøringen av en trent AI-modell – kan gjøres på hardware som koster noen titalls kroner, uten nettverk, uten sky og uten lisenser.

Det har praktiske implikasjoner for alt fra smarte sensorer til industrielt utstyr, medisinske måleinstrumenter og lavpris-IoT-enheter. I dag er den vanlige tilnærmingen å sende data til skyen for analyse. Det koster båndbredde, introduserer forsinkelse og krever nettverkstilkobling. Lokal inferens på mikrokontrollernivå fjerner alle disse kravene.

Det finnes allerede dedikerte rammeverk for dette – TFLite Micro og CMSIS-NN for Arm-baserte chips er de mest kjente. Men dette prosjektet viser at det ikke er et krav. En ren C-implementasjon, bygget fra scratch, er ikke bare mulig – den er bit-identisk med referanseimplementasjonen. Det er solid ingeniørarbeid.

Hva skjer videre med embedded AI?

Trenden er tydelig. Transformermodeller på Game Boy Color, C++ inferensmotorer på Orange Pi for 1 500 kroner, og nå DCGAN-inferens på en mikrokontroller til noen titalls kroner. Fellesnevneren er at kvantisering, effektiv minnehåndtering og kompilerte inferensmotorer gjør modeller stadig mer tilgjengelige for lav-ressurs hardware.

For de som jobber med embedded systems, er dette en utvikling som er verdt å følge nøye. Det er langt fra sikkert at neste generasjons smarte sensor trenger en full Raspberry Pi – kanskje holder det med en billig RISC-V-brikke og en godt kvantisert modell.

På den andre enden av skalaen ser vi forsøk på å kjøre tusenmilliardersmodeller lokalt med spesialisert lagringshardware. Det er fascinerende at feltet presser i begge retninger samtidig: både mot gigantiske lokale modeller og mot mikroskopiske embedded-løsninger.

Det som skjer i mellom – i CloudEdge-sonen mellom mikrokontrollere og GPU-servere – blir spennende å følge. Open source-bevegelsen innen AI bidrar sterkt til denne utviklingen: fri tilgang til modellvekter og treningskode gjør det mulig for enkeltpersoner å eksperimentere med slike prosjekter uten kommersielle begrensninger.

For den nysgjerrige: prosjektet er tilgjengelig på r/MachineLearning, og CH32H417-brikken fra WCH er dokumentert hos produsenten. Det er ikke mye tilgjengelig dokumentasjon på norsk om denne brikken ennå, men det endrer seg nok etterhvert som RISC-V vinner terreng.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

Meld deg på nyhetsbrevet

Få oppdateringer om AI nyhetene rett i inboxen!

Du liker kanskje denne også
Jan Sverre arbeider med Suno AI musikk-generering på datamaskinen, kreativt workspace med hodetelefoner

Suno AI – 150 Låter Testet: Hva Funker og Hva Er Bortkastet Tid

Jeg testet 150 Suno-låter og fant tydelige mønstre. Her er hva som faktisk gir kvalitet, og hva som bare kaster bort tid.
Jan Sverre med headphones og lydmikser i boardroom-møte med forvirrede executives

Suno AI Copyright 2026 – Opphavsrett og Rettigheter for AI-Musikk

Kan du tjene penger på Suno-musikk? Her er en praktisk gjennomgang av rettigheter, risiko og hva du bør avklare før publisering.
Claude code terminal interface

Claude Code nå for $20: Rimelig AI-drevet kodehjelp for alle utviklere

Anthropics Claude Code er nå tilgjengelig på $20 Pro-abonnement. Lær hvordan du kan utnytte AI-drevet koding uten store investeringer og hvilke kompromisser du må regne med.
Jan Sverre styrer et digitalt kontrollpanel omgitt av Claude AI-symboler og glødende lysstriper i et mørkt rom

Claude AI – pris, funksjoner og norsk guide (2026)

Alt om Claude AI i 2026 – priser i norske kroner, Claude Pro vs Max, Claude Code, og ærlig sammenligning med ChatGPT. Komplett norsk guide fra en som bruker Claude daglig.