Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Eingebettet

Die Verwendung mehrerer Inferenzchips erfordert eine sorgfältige Planung

Die letzten zwei Jahre waren im Geschäft mit Inferencing-Chips sehr beschäftigt. Für eine Weile schien es, als würde jede zweite Woche ein anderes Unternehmen eine neue und bessere Lösung vorstellen. Obwohl all diese Innovationen großartig waren, bestand das Problem darin, dass die meisten Unternehmen nicht wussten, was sie mit den verschiedenen Lösungen anfangen sollten, weil sie nicht sagen konnten, welche besser abschneiden als die anderen. Da es auf diesem neuen Markt keine etablierten Benchmarks gab, mussten sie sich entweder sehr schnell mit Inferenzchips vertraut machen oder den Leistungszahlen der verschiedenen Anbieter glauben.

Die meisten Anbieter lieferten irgendeine Art von Leistungszahl und normalerweise war es der Benchmark, der sie gut aussehen ließ. Einige Anbieter sprachen über TOPS und TOPS/Watt, ohne Modelle, Chargengrößen oder Prozess-/Spannungs-/Temperaturbedingungen anzugeben. Andere verwendeten den ResNet-50-Benchmark, der ein viel einfacheres Modell ist, als die meisten Leute brauchen, daher ist sein Wert bei der Bewertung von Inferenzoptionen fraglich.

Von diesen frühen Tagen haben wir einen langen Weg hinter uns. Unternehmen haben langsam herausgefunden, dass bei der Messung der Leistung von Inferenzchips 1) eine hohe MAC-Auslastung, 2) ein geringer Stromverbrauch und 3) alles klein gehalten werden muss.

Wir wissen, wie man misst – was kommt als nächstes?

Nachdem wir nun eine ziemlich gute Vorstellung davon haben, wie die Leistung eines Inferenzchips gegenüber einem anderen gemessen werden kann, fragen Unternehmen nun nach den Vor- (oder Nachteilen) der gemeinsamen Verwendung mehrerer Inferenzchips im selben Design. Die einfache Antwort ist, dass die Verwendung mehrerer Inferenzchips bei richtiger Auslegung des Inferenzchips eine lineare Leistungssteigerung erzielen kann. Die Analogie einer Autobahn ist nicht weit entfernt, wenn wir uns die Verwendung mehrerer Inferenzchips ansehen. Möchte ein Unternehmen die Leistung einer einspurigen Autobahn oder einer vierspurigen Autobahn?

Klar, jedes Unternehmen wünscht sich eine vierspurige Autobahn, daher stellt sich nun die Frage:„Wie liefern wir diese vierspurige Autobahn ohne Verkehr und Engpässe zu schaffen?“ Die Antwort hängt von der Auswahl des richtigen Inferenzchips ab. Schauen wir uns zur Erläuterung ein neuronales Netzwerkmodell an.

Neuronale Netze sind in Schichten unterteilt. Schichten wie ResNet-50 haben 50 Schichten, YOLOv3 hat über 100 und jede Schicht übernimmt eine Aktivierung von der vorherigen Schicht. Somit ist in Schicht N die Ausgabe davon eine Aktivierung, die in Schicht N + 1 geht. Es wartet, bis diese Schicht eintrifft, eine Berechnung wird durchgeführt und die Ausgabe sind Aktivierungen, die an Schicht n+2 gehen. Das geht über die Länge der Schichten weiter, bis Sie schließlich ein Ergebnis erhalten. Denken Sie daran, dass die anfängliche Eingabe dieses Beispiels ein Bild oder ein anderer Datensatz ist, der vom Modell verarbeitet wird.

Wenn mehrere Chips einen Unterschied machen

Die Realität ist, dass es immer einen Kunden geben wird, der doppelt so viel Leistung oder viermal mehr Leistung wünscht, wenn Sie einen Chip mit einem bestimmten Leistungsniveau haben. Wenn Sie das neuronale Netzmodell analysieren, ist dies in einigen Fällen möglich. Sie müssen sich nur ansehen, wie Sie das Modell entweder auf zwei oder vier Chips aufteilen.

Dies war im Laufe der Jahre ein Problem bei der parallelen Verarbeitung, da es schwierig war, herauszufinden, wie Sie die Verarbeitung, die Sie ausführen, partitionieren und sicherstellen, dass alles aufsummiert wird, anstatt in Bezug auf die Leistung abgezogen zu werden.

Im Gegensatz zu Parallelverarbeitung und Allzweck-Computing ist das Schöne an Inferenzchips, dass Kunden normalerweise im Voraus wissen, ob sie zwei Chips verwenden möchten, sodass der Compiler dies nicht im Handumdrehen herausfinden muss – dies erfolgt zur Compile-Zeit. Bei neuronalen Netzwerkmodellen ist alles vollständig vorhersehbar, sodass wir genau analysieren und herausfinden können, wie das Modell aufgeteilt wird und ob es auf zwei Chips gut läuft.

Um sicherzustellen, dass das Modell auf zwei oder mehr Chips ausgeführt werden kann, ist es wichtig, sowohl die Aktivierungsgröße als auch die Anzahl der MACs Schicht für Schicht zu betrachten. Typischerweise finden die größten Aktivierungen in den frühesten Schichten statt. Das bedeutet, dass die Aktivierungsgröße mit zunehmender Anzahl von Ebenen langsam abnimmt.

Es ist auch wichtig, sich die Anzahl der MACs anzusehen und wie viele MACs in jedem Zyklus ausgeführt werden. Bei den meisten Modellen korreliert die Anzahl der in jedem Zyklus durchgeführten MACs im Allgemeinen mit den Aktivierungsgrößen. Dies ist wichtig, denn wenn Sie zwei Chips haben und mit maximaler Frequenz laufen möchten, müssen Sie jedem Chip die gleiche Arbeitslast zuweisen. Wenn ein Chip den größten Teil des Modells übernimmt und der andere Chip nur einen kleinen Teil des Modells übernimmt, werden Sie durch den Durchsatz des ersten Chips begrenzt.

Wichtig ist auch, wie Sie das Modell auf die beiden Chips aufteilen. Sie müssen sich die Anzahl der MACs ansehen, da diese die Verteilung der Arbeitslast bestimmt. Sie müssen auch darauf achten, was zwischen den Chips weitergegeben wird. Irgendwann müssen Sie das Modell an einer Stelle aufschneiden, an der die von Ihnen bestandene Aktivierung so gering wie möglich ist, damit die erforderliche Kommunikationsbandbreite und die Übertragungslatenz minimal sind. Wenn Sie das Modell an einem Punkt aufschneiden, an dem die Aktivierung sehr groß ist, kann die Übertragung der Aktivierung zum Engpass werden, der die Leistung der Zwei-Chip-Lösung einschränkt.

Die folgende Tabelle zeigt für YOLOv3-, Winograd-, 2-Megapixel-Bilder die Aktivierungsausgabegröße und die kumulativen Mac-Operationen Schicht für Schicht (Faltungsschichten werden geplottet). Um die Arbeitslast zwischen zwei Chips auszugleichen, wird das Modell ungefähr bei 50% kumulativen MAC-Operationen gekürzt – zu diesem Zeitpunkt betragen die Aktivierungen, um von einem Chip zum anderen zu gelangen, 1 MB oder 2 MB. Um zwischen 4 Chips aufzuteilen, liegen die Schnitte bei ungefähr 25 %, 50 % und 75 %; Beachten Sie, dass die Aktivierungsgrößen zu Beginn am größten sind, sodass der Schnittpunkt von 25 % 4 oder 8 MB Aktivierungen zu passieren hat.

Klicken Sie hier für ein größeres Bild
Aktivierungsausgabegröße (blaue Balken) und kumulative MAC-Operationen Schicht für Schicht (rote Linie) für YOLOv3/Winograd/2-Mpixel-Bilder , zeigt, wie die Arbeitslast auf mehrere Chips aufgeteilt wird (Bild:Flex Logix)

Leistungstools

Glücklicherweise sind jetzt Leistungstools verfügbar, um einen hohen Durchsatz zu gewährleisten. Tatsächlich kann dasselbe Werkzeug, das die Leistung eines einzelnen Chips modelliert, dann verallgemeinert werden, um die Leistung von zwei Chips zu modellieren. Während die Leistung einer bestimmten Schicht genau gleich ist, stellt sich die Frage, wie sich die Übertragung von Daten auf die Leistung auswirkt. Das Modellierungstool muss dies berücksichtigen, denn wenn die erforderliche Bandbreite nicht ausreicht, begrenzt diese Bandbreite den Durchsatz.

Wenn Sie vier Chips verwenden, benötigen Sie eine größere Bandbreite, da die Aktivierungen im ersten Quartal des Modells tendenziell größer sind als die Aktivierungen im späteren Teil des Modells. Die Menge der Kommunikationsressourcen, in die Sie investieren, ermöglicht es Ihnen also, eine größere Anzahl von Chips zusammenzufassen, aber das sind Gemeinkosten, die alle Chips tragen müssen, selbst wenn es sich um eigenständige Chips handelt.

Schlussfolgerung

Die Verwendung mehrerer Inferenzchips kann zu erheblichen Leistungsverbesserungen führen, jedoch nur, wenn das neuronale Netzwerk wie oben beschrieben korrekt entworfen wurde. Wenn wir auf die Analogie zur Autobahn zurückblicken, gibt es viele Möglichkeiten, durch Verwendung des falschen Chips und des falschen neuronalen Netzmodells Verkehr aufbauen zu lassen. Wenn Sie mit dem richtigen Chip beginnen, sind Sie auf dem richtigen Weg. Denken Sie daran, dass der Durchsatz und nicht die TOPS- oder Res-Net50-Benchmarks am wichtigsten sind. Sobald Sie den richtigen Inferenzchip ausgewählt haben, können Sie ein ebenso leistungsstarkes neuronales Netzwerkmodell entwerfen, das maximale Leistung für Ihre Anwendungsanforderungen bietet.

— Geoff Tate ist der CEO von Flex Logix


Eingebettet

  1. Die Verwendung von SaaS und Cloud erfordert eine sorgfältige Datenanalyse
  2. C# verwenden
  3. RISC-V International und CHIPS Alliance arbeiten bei OmniXtend zusammen
  4. Kleines Modul integriert mehrere Biosensoren
  5. PCB-Designpaket geht in die Cloud
  6. Echtzeit-Bewegungsplanung für autonome Autos in mehreren Situationen, Unter simulierter städtischer Umgebung
  7. Digitale Shopfloor-Initiativen profitieren von sorgfältiger Planung
  8. KI sagt voraus, wie schnell Computerchips Code ausführen werden
  9. Mehrere tragbare Geräte mit einer einzigen Quelle drahtlos mit Strom versorgen
  10. So rufen Sie einen Funktionsblock von einem OPC UA-Client mithilfe eines Informationsmodells auf