Een van mijn grote professionele privileges bij het oprichten van de machine learning-stack van Syntiant is de samenwerking met een team van elektrotechnici bij het ontwerpen, ontwikkelen, verifiëren en verzenden van een ultra-energiezuinige tensor-berekeningskern voor Syntiant-producten. Hoewel ik me verzette tegen een interview met Syntiant omdat ik geen elektrotechnisch ingenieur ben, is het hardwaresamenwerkingsproces dat we hebben ontwikkeld via nu twee “Syntiant Cores” heeft zijn vruchten afgeworpen na drie jaar ruilen tussen vereisten voor machine learning en siliciummogelijkheden.

Ik ben best trots op de siliciumarchitectuur die we samen hebben ontwikkeld en ben onder de indruk van de capaciteiten van mijn elektrotechnische collega's. Ze hebben nooit tegen me gezegd “het kan niet.” Hieronder staat een marketingbericht dat ik heb geschreven voor machine learning-ingenieurs als introductie van de nu twee kernen van Syntiant.

De groeiende kernfamilie van Syntiant

Met de release van de NDP120 bevat Syntiant's lijn van Neural Decision Processors (NDP's) nu twee tensor-berekeningskernen die superieure energie-efficiëntie bieden bij neurale berekeningen. De "Syntiant Core 2" bouwt voort op de lessen die in het veld zijn geleerd van miljoenen verzonden Syntiant Core 1 gevonden in de NDP100-chiplijn. Terwijl de Syntiant Core 1 de absoluut laagste energie van 140 uW nodig heeft voor het spotten van audiosleutelwoorden, biedt de Syntiant Core 2 een flexibele looptijd van het neurale netwerk met tot 25x de verwerkingskracht van de Syntiant Core 1. Hier behandelen we de details van beide Syntiant-kernen om de problemen te onderzoeken die door de kernen kunnen worden opgelost en de modelleringsinspanning die nodig is om ze in het veld te brengen.


Figuur 1a. De SC1 navigeert door een bos

Figuur 1b. De SC2 vliegt over “concurrerende” edge-processors


Figuur 1c. Een opgeladen GPU kort nadat de dichtstbijzijnde ster voor stroom is leeggelopen

Syntiant Core 2

Edge neurale netwerkchips zijn notoir moeilijke trainingsdoelen. De combinatie van beperkte neurale architectuurondersteuning, hoge compressiefactoren en distributieverschuiving tussen trainingsgegevens en de echte wereld kan productverzendingen maanden of zelfs jaren vertragen. Bij het ontwerpen van de Syntiant Core probeerde Syntiant deze uitdagingen te verlichten en meer en betere edge neurale oplossingen mogelijk te maken op strakke productietijdlijnen.

Als eerste principe is het sterk geoptimaliseerde op tensor gebaseerde geheugensubsysteem van de SC2 ontworpen om inefficiënties in opgeslagen programma-architecturen te voorkomen. Elke laag regelt onafhankelijk zijn parameter-, invoer- en uitvoertensors in overeenstemming met op grafieken gebaseerde uitvoering en wordt uitgevoerd zonder herhaalde geheugenadressering. De op grafieken gebaseerde uitvoering biedt volledige controle voor het uitvoeren van gelijktijdige onafhankelijke netwerken, of zelfs het wisselen van netwerkconfiguraties, afhankelijk van de bedrijfsomstandigheden. Wanneer u bovenop de SC2-uitvoeringsengine bouwt, worden veel altijd actieve probleemdomeinen haalbaar omdat u niet betaalt voor de inefficiënties van een microcontroller. De voordelen van specialisatie komen niet alleen tot uiting in energie-efficiëntie, maar ook in doorvoer.

De SC2 bevat 32 parallelle vermenigvuldig- en accumulatiepaden (MAC) die werken tot 100 MHz. Dit biedt voldoende oplossingskracht om continu audiosignaalpaden te verwerken, objecten in afbeeldingen te detecteren en een versnellingsmeter te controleren op bewegingsgebeurtenissen. Deze ingangen kunnen worden samengevoegd voor afzonderlijke modellen die gezamenlijk geluid, beeld en beweging van de omgeving van het apparaat begrijpen, of kunnen worden gecascadeerd in multimodale voorwaardelijke werkbelastingen. Met het vermogen om door de tijd heen te groeien, kan de SC2 dienen als basis voor multi-productontwikkelingsprogramma's die nieuwe diepgaande leerproblemen met elke generatie oplossen.

Hoewel de SC2 de doorvoer heeft die nodig is voor veel probleemdomeinen, kan het bewezen en toekomstige neurale architecturen uitdrukken die taken op productieomgevingsniveau oplossen?

Na maanden of jaren te hebben geleerd hoe specifieke architecturen kunnen worden getraind volgens productiestandaarden, willen deep learning-ingenieurs hun draaiboek niet weggooien en beginnen met een architectuur die wordt gedicteerd door silicium. Met de SC2 kunnen de deep learning-ingenieurs hun neurale architectuur selecteren. Syntiant-kernen zijn sterk geoptimaliseerd voor tensorberekening en kunnen veel architecturen end-to-end uitvoeren zonder dat er een van de opgeslagen programmacomponenten van de NDP's nodig is. Voor meer exotische architecturen deelt de SC2 de uitvoering met de on-chip digitale signaalprocessor (DSP). Dus de SC2 kan bijvoorbeeld een grote convolutionele kernel parallel berekenen terwijl de DSP een lekkende ReLu-activering uitvoert. Een getraind netwerk overdragen of flexibel door de neurale ontwerpruimte bewegen.

Hoewel de ondersteuning van zoveel verschillende architecturen een grote verscheidenheid aan oplossingen mogelijk maakt, is het ook belangrijk dat deze architecturen trainbaar zijn van de gegevens en tools die al bekend zijn bij deep learning-ingenieurs.

Alle belangrijke frameworks en uitwisselingsformaten worden overgezet naar de SC2-runtime. Of de SC2 nu van begin tot eind inferentie uitvoert, of dat de DSP erbij betrokken is, de tools van Syntiant worden geleverd met een bit-exact GPU-versnelde runtime voor het evalueren van de prestaties. Deep learning-ingenieurs hoeven de cloud niet te verlaten om aan de rand te evalueren. U kunt testen met terabytes aan gegevens zonder uw cloudbudgetten te overschrijden.

Hoewel ondersteuning voor “geen compromissen” neuraal ontwerp is een belangrijk kenmerk van de SC2, het is ook mogelijk om dichter bij het metaal te komen met ontwerptools van Syntiant. De volledige kracht, latentie, geheugen en parametervereisten van verschillende neurale architecturen kunnen programmatisch worden gescoord en worden gekoppeld aan grootschalige hardwarebewuste hyperparameter-zoekopdrachten. Bij de meeste zoekopdrachten met hyperparameters zullen de taakprestaties sterker zijn bij grotere architecturen, maar deze architecturen kunnen zo groot zijn dat ze moeten worden gecomprimeerd.

De zich ontwikkelende praktijk van neurale compressie wordt standaard ondersteund door de SC2. Architecturen ondersteunen mengsels van 1, 2, 4 en 8 bit gewichten met een hogere precisie bias termen. Voor de meest uitdagende taken ondersteunt de SC2 zeer nauwkeurige modi, inclusief 16 bit in- en uitgangen. Zware kwantisering is optioneel. Quantize wanneer gewenst, maar niet alleen omdat een edge-processor dit vereist.

Hoewel al deze functies algemeen zijn voor elke neurale netwerkoplossing, bevat de SC2 taakspecifieke optimalisaties die gebruikmaken van de eigenschappen van tijdreeksen en schaarste om de doorvoer te verhogen en het energieverbruik te verlagen.

Deze optimalisaties lopen “onder de motorkap,” wat betekent dat de SC2 deze optimalisaties benut zonder dat de deep learning-engineer ze tijdens de training hoeft af te stemmen of te conditioneren. De oplossing werkt gewoon beter.

Syntiant Core 1

Perfectie wordt bereikt, niet wanneer er niets meer aan toe te voegen is, maar wanneer er niets meer te verwijderen valt. – Antoine de Saint-Exupéry

Hoewel de SC2 veelzijdig en flexibel is, is de SC1 altijd een volledig verbonden netwerk van vijf lagen met 4-bits gewichten en vooroordelen.

Deze netwerkschaal is ontworpen om te voldoen aan de vereisten van een nabije-veld-wakeword (bijv. 8220;Alexa” en "OK Google") via 8 parallelle MAC's die werken op 16 MHz. Veel single-netwerktaken passen binnen deze netwerkgrootte, inclusief veel audioverwerkingstaken die werken op geëxtraheerde audiofuncties.

Hoe moet je kiezen tussen de Syntiant-kernen? Gelukkig hoef je niet te kiezen tussen de SC1 en 2 voordat je begint met deep learning engineering. Dezelfde tools die voor de SC2 zijn ontwikkeld, zijn allemaal teruggezet naar de SC1, dus als je merkt dat je taak oplosbaar is met een kleiner neuraal netwerk, kun je met slechts één regel code overschakelen naar de SC1 in de tools van Syntiant. Begin met de SC1 en schaal zo nodig op, of begin met de SC2 en schaal af wanneer de oplossing de verwachtingen overtreft. Hoe dan ook, deep learning-oplossingen hebben nu ruimte om te groeien.

Sean McGregor
Lid van de technische staf, Syntiant

0

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *