Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Ingebed

Het gebruik van meerdere inferentie-chips vereist een zorgvuldige planning

De afgelopen twee jaar zijn extreem druk geweest op het gebied van inferencing-chips. Een tijdje leek het alsof om de week een ander bedrijf een nieuwe en betere oplossing introduceerde. Hoewel al deze innovatie geweldig was, was het probleem dat de meeste bedrijven niet wisten wat ze moesten denken van de verschillende oplossingen, omdat ze niet konden zien welke beter presteerde dan de andere. Zonder een reeks gevestigde benchmarks in deze nieuwe markt, moesten ze ofwel heel snel aan de slag met inferentiechips, of ze moesten de prestatiecijfers geloven die door de verschillende leveranciers werden geleverd.

De meeste leveranciers gaven een soort prestatiecijfer en meestal was het de benchmark die ervoor zorgde dat ze er goed uitzagen. Sommige leveranciers spraken over TOPS en TOPS/Watt zonder modellen, batchgroottes of proces-/spannings-/temperatuuromstandigheden te specificeren. Anderen gebruikten de ResNet-50-benchmark, een veel eenvoudiger model dan de meeste mensen nodig hebben, dus de waarde ervan bij het evalueren van gevolgtrekkingsopties is twijfelachtig.

We hebben een lange weg afgelegd sinds die begindagen. Bedrijven zijn er langzaamaan achter gekomen dat wat er echt toe doet bij het meten van de prestaties van inferentiechips is 1) een hoog MAC-gebruik, 2) een laag stroomverbruik en 3) je moet alles klein houden.

We weten hoe we moeten meten - wat nu?

Nu we een redelijk goed idee hebben van hoe we de prestaties van de ene inferentiechip ten opzichte van de andere kunnen meten, vragen bedrijven zich nu af wat de voor- (of nadelen) zijn van het gebruik van meerdere inferentiechips samen in hetzelfde ontwerp. Het simpele antwoord is dat het gebruik van meerdere inferentiechips, wanneer de inferentiechip op de juiste manier is ontworpen, lineaire prestatieverbeteringen kan opleveren. De analogie van een snelweg is niet ver weg als we kijken naar het gebruik van meerdere inferentiechips. Wil een bedrijf de prestaties van een eenbaans snelweg of een vierbaans snelweg?

Het is duidelijk dat elk bedrijf een vierbaans snelweg wil, dus de vraag is nu:"hoe leveren we deze vierbaans snelweg op zonder verkeer en knelpunten te creëren?" Het antwoord hangt af van het kiezen van de juiste inferencing-chip. Laten we om dit uit te leggen eens kijken naar een neuraal netwerkmodel.

Neurale netwerken zijn onderverdeeld in lagen. Lagen zoals ResNet-50 heeft 50 lagen, YOLOv3 heeft meer dan 100 en elke laag krijgt een activering van de vorige laag. Dus in laag N is de uitvoer ervan een activering die naar laag N+1 gaat. Het wacht tot die laag binnenkomt, er wordt een berekening uitgevoerd en de output is activeringen die naar laag n+2 gaan. Dat gaat zo door voor de lengte van de lagen totdat je uiteindelijk een resultaat krijgt. Houd er rekening mee dat de eerste invoer van dit voorbeeld een afbeelding is of welke gegevensset dan ook die door het model wordt verwerkt.

Als meerdere fiches het verschil maken

De realiteit is dat als je een chip hebt die een bepaald prestatieniveau heeft, er altijd een klant zal zijn die twee keer zoveel prestatie of vier keer meer prestatie wil. Als je het neurale netwerkmodel analyseert, is het in sommige gevallen mogelijk om dat te bereiken. Je hoeft alleen maar te kijken hoe je het model verdeelt over twee fiches of vier fiches.

Dit is in de loop der jaren een probleem geweest met parallelle verwerking, omdat het moeilijk was om erachter te komen hoe je de verwerking die je aan het doen bent, moet partitioneren en ervoor moet zorgen dat alles wordt opgeteld, in plaats van te worden afgetrokken als het gaat om prestaties.

In tegenstelling tot parallelle verwerking en algemeen gebruik, is het leuke van inferentiechips dat klanten doorgaans van tevoren weten of ze twee chips willen gebruiken, zodat de compiler het niet meteen hoeft uit te zoeken - het wordt gedaan tijdens het compileren. Met neurale netwerkmodellen is alles volledig voorspelbaar, zodat we kunnen analyseren en uitzoeken hoe het model precies kan worden gesplitst en of het goed zal werken op twee chips.

Om er zeker van te zijn dat het model op twee of meer chips kan draaien, is het belangrijk om laag voor laag naar zowel de activatiegrootte als het aantal MAC's te kijken. Wat meestal gebeurt, is dat de grootste activeringen zich in de vroegste lagen bevinden. Dat betekent dat de activatiegroottes langzaam afnemen naarmate het aantal lagen vordert.

Het is ook belangrijk om te kijken naar het aantal MAC's en hoeveel MAC's er in elke cyclus worden gedaan. In de meeste modellen correleert het aantal MAC's dat in elke cyclus wordt uitgevoerd over het algemeen met de activeringsgroottes. Dit is belangrijk, want als je twee chips hebt en je wilt op maximale frequentie draaien, moet je elke chip een gelijke belasting geven. Als de ene chip het grootste deel van het model doet en de andere chip maar een klein beetje van het model, wordt u beperkt door de doorvoer van de eerste chip.

Hoe je het model verdeelt over de twee chips is ook belangrijk. Je moet kijken naar het aantal MAC's, want dat bepaalt de verdeling van de werklast. Je moet ook kijken naar wat er tussen de fiches wordt doorgegeven. Op een gegeven moment moet je het model opdelen op een plaats waar de activering die je hebt doorstaan ​​zo klein mogelijk is, zodat de benodigde hoeveelheid communicatiebandbreedte en de latentie van de transmissie minimaal is. Als je het model op een punt snijdt waar de activering erg groot is, kan de overdracht van de activering de bottleneck worden die de prestaties van de twee-chipoplossing beperkt.

De onderstaande grafiek toont voor YOLOv3, Winograd, 2 Megapixel-afbeeldingen de grootte van de activeringsuitvoer en de cumulatieve Mac-bewerkingen laag voor laag (convolutielagen zijn uitgezet). Om de werklast tussen twee chips te balanceren, wordt het model teruggebracht tot ongeveer 50% cumulatieve MAC-bewerkingen - op dit moment zijn de activeringen die van de ene chip naar de andere gaan 1 MB of 2 MB. Om over 4 chips te verdelen, liggen de sneden op ongeveer 25%, 50% en 75%; merk op dat de activeringsgroottes in het begin het grootst zijn, dus het 25%-reductiepunt heeft 4 of 8 MB activeringen om te passeren.

Klik hier voor grotere afbeelding
Activeringsuitvoergrootte (blauwe balken) en cumulatieve MAC-bewerkingen laag voor laag (rode lijn) voor YOLOv3/Winograd/2Mpixel-afbeeldingen , die laat zien hoe de werklast is verdeeld over meerdere chips (Afbeelding:Flex Logix)

Prestatietools

Gelukkig zijn er nu prestatietools beschikbaar om een ​​hoge doorvoer te garanderen. In feite kan hetzelfde hulpmiddel dat de prestaties van een enkele chip modelleert, vervolgens worden gegeneraliseerd om de prestaties van twee chips te modelleren. Hoewel de prestaties van een bepaalde laag precies hetzelfde zijn, is de vraag hoe de overdracht van gegevens de prestaties beïnvloedt. De modelleringstool moet hier rekening mee houden, want als de vereiste bandbreedte niet voldoende is, zal die bandbreedte de doorvoer beperken.

Als je vier chips gebruikt, heb je een grotere bandbreedte nodig omdat de activeringen in het eerste kwartaal van het model meestal groter zijn dan de activering in het latere deel van het model. De hoeveelheid communicatiemiddelen waarin u investeert, stelt u dus in staat om grotere aantallen chips samen in een pijplijn te gebruiken, maar dat zijn overheadkosten die alle chips moeten dragen, zelfs als het op zichzelf staande chips zijn.

Conclusie

Het gebruik van meerdere inferencing-chips kan aanzienlijke prestatieverbeteringen opleveren, maar alleen als het neurale netwerk correct is ontworpen zoals hierboven beschreven. Als we terugkijken naar de analogie van de snelweg, zijn er veel mogelijkheden om het verkeer te laten opbouwen door de verkeerde chip en het verkeerde neurale netwerkmodel te gebruiken. Als je met de juiste chip begint, ben je op de goede weg. Onthoud dat doorvoer, niet TOPS- of Res-Net50-benchmarks, het belangrijkst is. Zodra u de juiste inferentie-chip hebt geselecteerd, kunt u een even krachtig neuraal netwerkmodel ontwerpen dat maximale prestaties biedt voor uw toepassingsbehoeften.

— Geoff Tate is de CEO van Flex Logix


Ingebed

  1. Het gebruik van SaaS en de cloud vereist zorgvuldige gegevensverwarring
  2. Meerdere combinatiecircuits gebruiken
  3. C# met behulp van
  4. RISC-V International en CHIPS Alliance werken samen aan OmniXtend
  5. Kleine module integreert meerdere biosensoren
  6. PCB-ontwerppakket gaat naar de cloud
  7. Realtime bewegingsplanning voor autonome auto's in meerdere situaties, onder gesimuleerde stedelijke omgeving
  8. Digitale winkelvloerinitiatieven profiteren van zorgvuldige planning
  9. AI voorspelt hoe snel computerchips code uitvoeren
  10. Draadloos meerdere draagbare apparaten van stroom voorzien met één enkele bron
  11. Een functieblok aanroepen vanuit een OPC UA-client met behulp van een informatiemodel