Syntiant heeft onlangs zijn NDP120 in de MLPerf Tiny-categorie ingediend voor het spotten van trefwoorden en onze interne metingen koppelden onze oplossing aan ongeveer 60 uJ/inferenties met een latentie van 6 ms. Ter vergelijking: de enige andere gepubliceerde MCU-gebaseerde benchmark kwam uit op meer dan 7300 uJ/inferentie, bijna 120x meer energie voor hetzelfde netwerk.
Wederom zien we hoe onze strategie om aangepaste neurale te bouwen beslissingsprocessors werpen hun vruchten af in extreem lage energie om neurale workloads aan de rand uit te voeren. De overstap naar Syntiant Core 2 met de NDP120-silicium geeft ons nog meer van de lagen en constructies die nodig zijn om een breed scala aan netwerken aan te vallen, zoals convolutionele workloads, RNN-structuren zoals LSTM en GRU, evenals dichte lagen en aangepaste activeringen.
Zelfs met de NDP101 krijgen we vaak vragen van klanten over ons 140uW stroomnummer met always-on-voice (AOV) detectie. “Is dat uw standby-nummer?” “Is dat met een spraakactiviteit detecteren?” Ze zijn altijd verbaasd dat dit de volledige krachtinferentie is op ons neurale netwerk van 570k params dat ons Alexa-wakewoord in een lawaaierige omgeving uitvoert. Het allereerste wat we doen is een ontwikkelbord verzenden en onze klanten aanmoedigen om het resultaat onafhankelijk te meten.
Dus, wat is het geheim van Syntiant voor zo'n laag vermogen? Ik begon mijn Ph.D. in 1997 het bestuderen van low-power VLSI-ontwerp. Destijds was er een nieuw gevonden academische push dat CMOS-ontwerp niet alleen ging over pure snelheid en ruimte (de meeste overwegingen in die tijd), maar dat ontwerp daadwerkelijk macht kan beïnvloeden. Hier is de basisvergelijking voor stroom in CMOS-circuits, die u alles geeft wat u moet weten:
Met deze eenvoudige vergelijking kun je onmiddellijk vijf variabelen bepalen om het vermogen in een CMOS-ontwerp te verminderen:
- Het verminderen van de activiteitsfactor, α
- Het verminderen van de schakelfrequentie, F
- Verlaging van de totale capaciteit, C
- Verlaging van de voedingsspanning (kwadratische vermogenswinst), V
- Verlaging van het statische vermogen in het systeem
De schaling van de wet van Moore is de dominante factor geweest voor het verminderen van zowel de spannings- als de capaciteitsfactoren in circuits door elke generatie CMOS-technologie. We hebben de technologie zien evolueren met typische kernvoedingen die daalden van 1,1 V naar 0,9 V, en zelfs agressievere 0,8 V en 0,75 V systeemvoedingen. Aan de kant van Syntiant gaan we een stap verder en sturen we doorgaans de nominale voedingsspanning voor een technologieknooppunt te laag aan, en we maken gebruik van de kwadratische spanningsrelatie. Normaal gesproken gaat dit gepaard met een verlaging van de maximale snelheid van het circuit, maar met het zware parallellisme in onze ML-circuits hebben de verlaagde snelheden geen invloed op de maximale prestaties. We hebben circuits die SRAM-retentie bij lagere spanningen mogelijk maken, dus tijdens de “stille” perioden tussen de inferenties verminderen we energielekkage verder.
We kunnen verder gaan in het verminderen van de capaciteit in het ontwerp met onze ASIC fysieke ontwerpstromen. Het is echter belangrijk om de Pareto-curve te begrijpen die inherent is aan logische synthese, waarvan je circuits gemakkelijk te hard kunt aansturen. Een high-end processorbedrijf zal die curve tot het maximum pushen om het GHz-spel te winnen, maar we kijken altijd continu naar de snelheid/oppervlaktecurves voor synthese en proberen op de “knie van de curve” in plaats van te streven naar maximale prestaties. In de synthese en vervolgens de backend-stromen, kan het streven naar maximale prestaties gemakkelijk de grootte van uw ontwerp verdubbelen — en het wordt ook geleverd met een verdubbeling van de capaciteit, plus een boete voor statische stroom, ongeacht uw bedrijfsfrequentie.
Als het gaat om de kern van onze op maat ontworpen neurale netwerkprocessors, is mijn favoriete factor de activiteitsfactor. Het wordt bepaald door hoeveel bits er worden geschakeld om de wiskunde van het neurale netwerk te volbrengen. We bouwen aangepaste at-memory-architecturen, zodat we gegevens direct bij de opslagelementen kunnen consumeren (wat op zijn beurt de activiteitsfactoren op logische cellen vermindert). We kunnen geheugens partitioneren, zodat het ophalen van parameters in een deel van het circuit niet alle bitlijnen in het geheugen verlicht. Vergeleken met processors en DSP's waar zoveel energie wordt besteed aan het verplaatsen van gegevens via traditionele geheugenbussen, hebben we een enorm voordeel in de schakelfactoractiviteit.
Nog dieper beschouwen we neurale netwerklagen als atomaire eenheden, waardoor we de optimale controllers kunnen construeren om de wiskunde te berekenen. We zien veel van de alternatieve oplossingen in de neurale netwerkruimte om de netwerken op te splitsen in miljoenen kleine operanden. Als gevolg hiervan ben je meteen alle context rond de verwerking kwijt. Wat is gedeeld, herbruikbaar en te negeren? De keerzijde van het presenteren van een laag als een atomaire eenheid is dat onze NDP's veel gemakkelijker te programmeren worden en dat de relatie tussen modelarchitectuur, snelheid en kracht zeer voorspelbaar wordt. We zijn in staat om een extreem laag stroomverbruik te realiseren, terwijl we de machine learning-wetenschappers tegelijkertijd precies laten weten wat er gaat gebeuren als hun netwerken op onze apparaten worden geladen. Er is geen tussenliggende compiler of “passende” stap of teruggaan naar de ML om de architectuur te veranderen om de stroom uit te schakelen.
Om het samen te vatten, wat is Syntiant's geheime saus om de verwerking te verlagen? Het blijkt dat het echt een uitgebreid begrip is van low-power chipontwerp door alle lessen toe te passen die we hebben geleerd als het gaat om circuits, architectuur, systeemsoftware en ML-training. We moeten fanatiek zijn over het verminderen van het vermogen op elk punt. En dat blijkt uit de uitkomst.
Dave Garrett, Ph.D.
Vice-president Hardware, Syntiant