Hoe we onze ervaring in beeldverwerking en compressie hebben gebruikt om een ​​betere AI-accelerator te bouwen (en het gemakkelijk maakten om gebruik in het proces).

Ons pad naar het ontwikkelen van een AI-visiearchitectuur begon met een vraag: is het mogelijk om een ​​snel, intelligent en krachtig systeem te bouwen dat in staat is om de nieuwste neurale netwerken met minimale inspanning te draaien, hoge precisie en laag stroomverbruik?

Anders gezegd: wat zou er nodig zijn om een ​​speciale AI-versneller te maken die speciaal is ontworpen voor embedded systemen met laag vermogen aan de rand, met prestaties die wedijveren met – of zelfs overtreffen – de prestaties van systemen die afhankelijk zijn van de cloud?

We begonnen ons onderzoek in 2015. Toentertijd had opkomend onderzoek aangetoond dat gezichtsherkenning en objectdetectie met succes konden worden geïmplementeerd in een ingebed platform, en onze klanten waren steeds meer geïnteresseerd in intelligente zichtsystemen, in tegenstelling tot traditionele camera's.

Daarvoor waren de kernkracht van Ambarella onze toegewijde hardwareversnellers voor videocompressie (met name H.264 en H.265), evenals beeldverwerking die een uitzonderlijke beeldkwaliteit levert in een verscheidenheid aan uitdagende lichtomstandigheden, en dit alles met een minimaal stroomverbruik . Om deze versnellers te bouwen, hebben we het probleem zorgvuldig bestudeerd en aangepaste hardware ontworpen die de kritieke taken goed uitvoert, terwijl we concepten of opties weggooien die weinig voordeel opleveren of te complex zijn om effectief te implementeren. Al meer dan tien jaar gebruiken we deze versnellers om tientallen toonaangevende videoproducten te lanceren in zowel consumenten- als professionele markten: de originele lijn van GoPro Hero-sportcamera's, het Dropcam-apparaat voor thuisbeveiliging en de DJI Phantom-droneserie, om maar te noemen slechts een paar.

Ambarella's geschiedenis van het aandrijven van consumenten- en professionele videoproducten heeft de weg vrijgemaakt voor de computervisie-architectuur.

Daarom volgden we, toen het tijd was om een ​​embedded architectuur voor computer vision-verwerking te bouwen, een soortgelijk pad, waarbij we dezelfde methodologie gebruikten als voorheen, waarbij we bestaande ontwerpelementen combineerden met nieuwe concepten om de unieke uitdagingen van AI aan te pakken. Na het bestuderen van gemeenschappelijke algoritmen in traditionele computervisie, opkomende technieken in convolutionele neurale netwerken en de autonome rijalgoritme-stack ontwikkeld door VisLab (overgenomen door Ambarella in 2015), hebben we een elegant stuk hardware ontwikkeld dat slank, gemeen en zeer praktisch is – bekend als CVflow®.

De wortels van een nieuwe architectuur.

Zoals iedereen zijn we begonnen met neurale netwerken. Hun voordelen zijn goed gedocumenteerd, waaronder: (a.) slechts enkele kritieke bewerkingen domineren de prestaties, met name convoluties en matrixbewerkingen; en (b.) de betrokken wiskunde is eenvoudig met voldoende parallellisme. De meest voor de hand liggende architecturale benadering zou zijn geweest om een ​​leger van processors (bijv. GPU's) of een grote multiplier-array (bijv. TPU) in te zetten, wat een onmiddellijke winst in neurale netwerkprestaties oplevert. Deze aanpak was echter niet geschikt voor de ingebouwde apparaten met laag vermogen die onze klanten voor ogen hadden.

“Vanaf het begin was ons doel om een gestroomlijnde architectuur van de grond af met neurale netwerkverwerking als enige prioriteit.”

In plaats van te vertrouwen op bestaande oplossingen voor algemeen gebruik, hebben we jarenlang alle aspecten van neurale netwerkgebaseerde verwerking bestudeerd om een ​​engine te ontwerpen die speciaal is geoptimaliseerd voor de embedded markt, met als uitdrukkelijk doel het elimineren van knelpunten en inefficiënties die aanwezig zijn in GPU's of TPU's. Vanaf het begin was ons doel om een ​​gestroomlijnde architectuur van de grond af te creëren met neurale netwerkverwerking als enige prioriteit. Ons succes vereiste creativiteit, kritische analyse van ideeën, een discussie over ontwerptrade-offs tussen onze VLSI-, architectuur- en softwareteams, en uiteindelijk het oplossen van complexe problemen met consensus. Na drie jaar onderzoek, experimenten en zeer gerichte samenwerking was CVflow geboren.

In mijn academische carrière bestudeerde ik de geschiedenis van processorontwerp – van kleine processors tot grote cache-coherente multiprocessors die worden gebruikt voor wetenschappelijk onderzoek, op VLIW gebaseerde machines, IA-64, GPU's, SIMD-machines en meer. Wat ik in die tijd leerde, was dat de meest opvallende architecturen de neiging hadden om een ​​specifiek probleem op een innovatieve manier op te lossen die opviel ten opzichte van concurrerende ideeën van die tijd. RISC-machines werden bijvoorbeeld als belangrijk beschouwd omdat ze veel gemakkelijker te pijpen waren en eenvoudiger te programmeren waren dan hun ploeterende op CISC gebaseerde tegenhangers. Onze CVflow-architectuur onderscheidt zich op dezelfde manier als een sterk geoptimaliseerde en innovatieve oplossing voor computervisie en inferentieversnelling.

Maar is het gebruiksvriendelijk?

Elke versneller, ongeacht het doel ervan, kan een uitdaging zijn om mee te werken. Dit wetende, hebben we sinds het begin een intuïtief en pijnloos programmeermodel voor CVflow ontwikkeld. Onze eerdere aanpak – een schone API om een ​​complex stuk krachtige hardware wikkelen om een ​​eenvoudige gebruikersinterface te bieden – was geen optie in een omgeving waar klanten hun eigen netwerken hebben en waar netwerken snel veranderen. Bovendien was het beheren van de rekennauwkeurigheid een kritieke zorg voor onze klanten om ervoor te zorgen dat hun netwerken goed zouden blijven presteren op onze SoC's. Deze en andere overwegingen stonden voorop bij het ontwikkelen van de CVflow-architectuur.

Om het programmeren voor onze klanten zo eenvoudig mogelijk te maken, hebben we veel tijd en middelen besteed aan de ontwikkeling van onze CVflow-compiler en netwerktoewijzingstool (CNNGen), waarbij we een tool-stack construeren die een specificatie van een netwerk op hoog niveau leest in TensorFlow of PyTorch en optimaliseert het netwerk om op onze hardware te draaien, terwijl het tegelijkertijd voldoende controle biedt, zodat de gebruiker bijna hetzelfde nauwkeurigheidsniveau bereikt als hun oorspronkelijke uiterst nauwkeurige netwerken. Deze tool-stack, gebouwd bovenop onze CVFlow-architectuur, is krachtig genoeg om de beste prestaties uit het apparaat te halen, maar ook flexibel genoeg om te worden geïntegreerd in externe services zoals Sagemaker NEO van Amazon Web Services, waarmee klanten hun architecturen kunnen aanpassen en netwerken naar onze hardware in de cloud.

Met behulp van deze robuuste set tools hebben onze interne teams, partners en klanten tot nu toe meer dan 200 neurale netwerken aangepast aan onze architectuur. Gepoorte netwerken zijn geschikt voor een breed scala aan gebruiksscenario's, waaronder 2D/3D-bezwaardetectie, segmentatie en optische stroom, en hebben in zeer korte tijd een redelijke nauwkeurigheid bereikt, meestal binnen enkele uren. En, belangrijker nog, we stellen onze tools open voor alle netwerktopologieën, in plaats van gebruikers te beperken tot een beperkte set topologieën die alleen zijn ontworpen om ons er goed uit te laten zien.

We voegen dagelijks nieuwe netwerken toe naarmate meer klanten onze toolchain gebruiken. Elk nieuw netwerk verbetert op zijn beurt onze algehele kwaliteit omdat het nieuwe complexiteit en lagen toevoegt aan de tool-stack, gebouwd op dezelfde architectuur. Hoe langer ik aan dit ontwerp werk, hoe meer ik de flexibiliteit van CVflow waardeer om me aan te passen aan veranderende trends in computervisie, die in de loop van de tijd alleen maar versnellen. Neurale netwerken zien er nu heel anders uit dan toen we begonnen, maar onze architectuur past zich voortdurend aan door nieuwe lagen en vereisten op te nemen om gelijke tred te houden, allemaal aangepast en geoptimaliseerd voor krachtige en energiezuinige bewerkingen.

Meer informatie over onze embedded low-power CVflow-architectuur, of als u geïnteresseerd bent in het gebruik van onze toolchain om uw eigen state-of-the-art netwerken snel aan te passen om op onze hardware te draaien, neem dan contact met ons op.

Bob Kunz
Senior directeur architectuur, Ambarella

0

Geef een antwoord

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