VPU, GPU und FPGA im Vergleich für Deep-Learning-Inferenz

Inferenz Vergleich

VPU, GPU und FPGA im Vergleich für Deep-Learning-Inferenz

GPUs, FPGAs und Vision-Prozessoren (VPUs) verfügen über Vor- und Nachteile, die ein Systemkonzept beim Einstieg in eine Deep-Learning-Inferenz beeinflussen.

Bild 1 | Stromverbrauch vs. Einzelbild-Inferenzzeit im Vergleich einer GPU, SoC und VPU.
Bild unterer Teil: Relative Leistung einer GPU, FPGA und VPU zur Beschleunigung von Inferenz im Vergleich. (Bild: Flir Integrated Imaging Solutions Inc.)

GPU

GPUs sind aufgrund ihrer hochparalellisierten Verarbeitungsarchitektur optimal für die Beschleunigung von Deep Learning Inferenz geeignet. Nvidia hat in die Entwicklung von Tools für Deep Learning und Inferenz investiert, die auf Nvidias Cuda-Kernen (Compute Unified Device Architecture) ausgeführt werden können. Die GPU-Unterstützung von Google TensorFlow ist für Cuda-fähige GPUs von Nvidia bestimmt. Einige GPUs sind mit Tausenden von Prozessorkernen ausgestattet und eignen sich optimal für rechnerisch anspruchsvolle Aufgaben wie autonome Fahrzeuge oder Trainingsnetzwerke, die dem Einsatz mit weniger leistungsfähiger Hardware dienen. In der Regel verbrauchen GPUs viel Strom. Der RTX 2080 erfordert 225W, während der Jetson TX2 bis zu 15W verbraucht. GPUs sind zudem teuer, so kostet z.B. der RTX 2080 ca. 800USD.

FPGA

FPGAs sind in der industriellen Bildverarbeitung weit verbreitet. Sie vereinen die Flexibilität und Programmierbarkeit von Software, die auf einer CPU ausgeführt wird, mit der Geschwindigkeit und Energieeffizienz eines ASICs. Eine Intel Aria 10 FPGA-basierte PCIe Vision Accelerator-Karte verbraucht bis zu 60W Energie und ist für 1.500USD erhältlich. Ein Nachteil von FPGAs besteht darin, dass die FPGA-Programmierung spezielles Wissen und Erfahrung erfordert. Die Entwicklung neuronaler Netzwerke für FPGAs ist aufwändig. Zwar können Entwickler auf Tools von Drittanbietern zurückgreifen, um Aufgaben zu vereinfachen, doch die Tools sind meist teuer und können Anwender an geschlossene Ökosysteme proprietärer Technologien binden.

 (Bild: FLIR Integrated Imaging Solutions Inc.)

Bild 2 | Die demnächst verfügbare Firefly-Kamera mit integriertem Myriad 2 VPU ist nur halb so groß wie eine Standard-Ice-Cube-Kamera. (Bild: Flir Integrated Imaging Solutions Inc.)

VPU

VPUs (Vision Processing Units) sind eine Art System-On-Chip (SoC), die der Erfassung und Auswertung visueller Informationen dienen. Sie wurden für mobile Anwendungen entwickelt und sind auf geringe Größe und Energieeffizienz optimiert. Die Intel Movidius Myriad 2 VPU kann z.B. mit einem CMOS verbunden werden, die erfassten Bilddaten vorverarbeiten, dann die erzeugten Bilder durch ein zuvor trainiertes neuronales Netz verarbeiten und schließlich ein Ergebnis ausgeben – und das bei weniger als 1W Energieverbrauch. Die Myriad-VPUs von Intel kombinieren herkömmliche CPU-Kerne mit Vektorverarbeitungskernen, um so die hohe Verzweigungslogik zu beschleunigen, die bei neuronalen Netzen für Deep Learning typisch ist. VPUs eignen sich ideal für Embedded-Anwendungen. Zwar sind sie weniger leistungsfähig als GPUs, doch aufgrund ihrer geringen Größe und der hohen Energieeffizienz lassen sie sich in äußerst kleine Gehäuse integrieren. Die demnächst verfügbare Firefly-Kamera mit integriertem Myriad 2 VPU ist beispielsweise nicht einmal halb so groß wie eine Standard-Ice-Cube-Kamera zur industriellen Bildverarbeitung. Dank ihrer Energieeffizienz eignen sich VPUs ideal für Handgeräte, mobile Anwendungen oder Drohnen, bei denen eine lange Akkulaufzeit von Vorteil ist. Intel hat für seine Movidius Myriad-VPUs ein offenes Ökosystem entwickelt, mit dem Benutzer Deep Learning Frameworks und Werkzeuge ihrer Wahl einsetzen können. Der Intel Neural Compute Stick verfügt über eine USB-Schnittstelle und kostet 80 US-Dollar.

Schwieriger Leistungsvergleich

Durch die Unterschiede in der Verarbeitungsarchitektur zwischen GPU, SoC und VPU sind reine Leistungsvergleiche unter Verwendung von Flops-Werten (Floating-Point-Operationen pro Sekunde) von geringerem Nutzen. Der Vergleich der Inferenzzeiten kann zwar als nützlicher Ausgangspunkt dienen, die reine Inferenzzeit allein kann aber irreführend sein. Während die Inferenzzeit für ein Einzelbild auf dem Intel Movidius Myriad 2 möglicherweise schneller ist als auf dem Nvidia Jetson TX2, kann der TX2 mehrere Bilder gleichzeitig verarbeiten, wodurch insgesamt eine höhere Verarbeitungsgeschwindigkeit erzielt wird. Der TX2 kann im Gegensatz zum Myriad 2 gleichzeitig weitere Datenverarbeitungsaufgaben ausführen. Ohne Tests fällt der Vergleich daher schwer. Bevor die Entscheidung über die Hardware eines inferenzfähiges industrielles Bildverarbeitungssystem fällt, sollte der Entwickler daher Tests durchführen, um die für seine Anwendung erforderliche Genauigkeit und Geschwindigkeit zu ermitteln. Diese Parameter entscheiden über die erforderlichen Eigenschaften des neuronalen Netzes und die Hardware, mit der es eingesetzt werden kann.

Themen:

| Fachartikel

Ausgabe:

inVISION 1 2019

Das könnte Sie auch Interessieren