GPU Processing

Active Silicon’s Framegrabber und GPU Processing

Grafikprozessoren oder GPUs (Graphic Processing Unit) haben vielfältige Anwendungen, zum Beispiel in eingebetteten Systemen, Mobiltelefonen, PCs, Workstations und Spielkonsolen. Moderne GPUs prozessieren Bilder und Grafiken sehr effizient, da ihre Struktur besonders geeignet ist, um große Datenblöcke parallel zu bearbeiten.

Alle Active Silicon Framegrabber können in Kombination mit GPUs eingesetzt werden. Zusätzlich stehen nun auch APIs zur Verfügung, die ermöglichen, dass die GPU Filter-, Faltungs- und Matrix-Vektor-Operationen direkt an den Daten vom Framegrabber kommend durchführen kann, ohne dass die Daten vorher über einen Systemspeicher oder über die CPU prozessiert werden müssen. Dabei wird der GPU-Speicher dem Framegrabber zugänglich gemacht und die Daten können so sehr schnell, mit extrem kurzen Latenzzeiten, akquiriert werden.
  
APIs, die GPU Processing beschleunigen

Die zwei führenden GPU Hersteller, NVIDIA und AMD, stellen APIs zur Verfügung, die die Integration mit Drittanbietergeräten, wie zum Beispiel Active Silicon Framegrabber, erleichtern. Das erlaubt eine einfache Integration mit NVIDIA’s GPUDirect for Video und AMD’s DirectGMA, wenn Active Silicon Framegrabber eingesetzt werden.

NVIDIA’s GPUDirect for Video

Unter Windows, erlaubt die GPUDirect for Video API, dass Daten direkt von der Akquisitionskarte in den GPU Puffer via DMA (Direct Memory Access) übertragen werden, ohne dass die CPU dabei eingebunden wird. Die GPU Puffer können dabei auch im Systemspeicher des PCs sein, wie in Abb. 1 dargestellt, werden aber von der GPU gesteuert. Die GPU kann die Daten dieser Puffer mit Hilfe ihrer eigenen, extrem schnellen DMA Engine prozessieren und/oder zur und von der GPU transferieren.

Durch den Einsatz von GPUDirect for Video wird die CPU vollständig ausgelassen und die Speicherkopie der Bilddaten direkt in den GPU Puffer übertragen. Dadurch wird nicht nur die Latenz, sondern auch die Nutzung von Systemspeicherbandbreite reduziert. Das resultiert in maßgeblichen Leistungssteigerungen der Übertragungsgeschwindigkeiten von auf der NVIDIA Karte laufenden Anwendungen. Ein weiterer Vorteil ist, dass die GPU mit dem Prozessieren der Bilddaten sofort bei deren Ankunft im GPU Puffer beginnen kann, anstatt wie alternativ ohne GPU Puffer, darauf warten zu müssen, bis ein vollständiges Einzelbild angekommen ist. Das sichert bestmögliche Systemlatenz.

NVIDIA’s GPUdirect RDMA ist die äquivalente Technologie unter Linux. Diese API erlaubt Active Silicon Framegrabber Bilddaten direkt in den auf der Grafikkarte befindlichen Speicher der GPU via DMA zu schicken und damit den Systemspeicher gänzlich zu umgehen. Diese Methode ähnelt DirectGMA von AMD, wie unten beschrieben, welche ebenfalls von Active Silicon Framegrabbern und Software Bibliotheken unterstützt wird.

Abb. 1: GPU Zugang – Traditionell bzw. mit Hilfe von NVIDIA’s GPUDirect for Video.
 

AMD’s DirectGMA

DirectGMA (Direct Graphics Memory Access) ist eine Methode und API von AMD, die die Datenübertragung unter gleichrangigen PCI Express Geräten mit geringsten Latenzzeiten gewährleistet. Dabei gibt die API Teile des GPU-Speichers frei und macht es für andere Geräte am Bus zugänglich, wie zum Beispiel für Akquisitionskarten von Active Silicon. Dies erlaubt den Framegrabber Bilddaten direkt via DMA in den GPU-Speicher zu übertragen, ohne Einbeziehung der CPU und dabei auch den Systemspeicher vollkommen zu umgehen (Abb. 2). Das resultiert in Datenübertragungen mit minimalster Latenz und den zusätzlichen Vorteil Speicherbandbreite zu sparen.


Abb. 2: GPU Zugang – Traditionell bzw. mit Hilfe von AMD’s DirectGMA

 

GPU API Vergleich

NVIDIA GPUDirect for Video / RMDA
  • Unterstützte GPUs: Quadro; GRID; Tesla; klicken Sie hier für eine vollständige Liste
  • Betriebssystem – Windows 7/8/10 64-bit oder Linux 64-bit
  • Unterstützende API – CUDA, OpenCL™, OpenGL®, DirectX®
  • NVIDIA Karten bieten 8 bis über 5000 CUDA Cores und damit unterschiedliche Prozessorleistungen.

Anforderungen:

  • NVIDIA GPU, die GPUDirect for Video unterstützt
  • Active Silicon’s SDK und NVIDIA SDK
  • FireBird oder Phoenix Framegrabber
 AMD DirectGMA
  • Unterstützte GPUs: FirePro W™ W5x00 und höher; FirePro™S Serie
  • Betriebssystem – Windows 7/8/10 64-bit oder Linux 64-bit
  • Unterstützende API – OpenCL™, OpenGL®, DirectX®
  • AMD Grafikkarten unterstützen STREAM Technologie, die den plattformübergreifenden Programmierstandard OpenCL nutzt.

Anforderungen:

  • AMD GPU, die DirectGMA unterstützt
  • Active Silicon’s SDK und AMD SDK
  • FireBird oder Phoenix Framegrabber

 

Integration von Active Silicon Produkten mit GPUDirect for Video oder DirectGMA

Alle Active Silicon FireBird und Phoenix Framegrabber sind mit GPUDirect for Video und DirectGMA kompatibel.

Unsere gut dokumentierte API und die Beispielcodes der SDK ermöglichen einfache Integration von Parallel-Computing auf Standard PC-Hardware.

  • Active Silicon’s SDK beinhaltet einen umfassenden Satz von C++ Beispielen für GPUDirect for Video und DirectGMA mit kompletten Source-Code. Die Beispiele können im Register der SDK Bedienungsanleitung gefunden werden:
    • SDK Setup – GPU Hardware and Software
    • Examples list – NVIDIA GPUDirect for Video Examples
  • Unsere Technologie unterstützt GPUDirect for Video auf Windows 7 und 10, und DirectGMA auf Windows 7, 10 und Linux.
  • Unsere API unterstützt CUDA, OpenCL, OpenGL und DirectX und ist über verschiedene Betriebssysteme und Hardware-Plattformen einheitlich, was die Migration erleichtert.
  • Aufgrund Active Silicon’s ActiveDMA Technologie arbeiten unsere FireBird Framegrabber latenzfrei.


Schauen Sie sich unser Video an, das GPU Processing mit unseren Framegrabbern vorstellt
: Active Silicon CEO Colin Pearce erklärt auf der VISION Show 2016, wie GPU Processing optimiert werden kann.

 

Die obige Information kann in druckbarer Form heruntergeladen werden: Datasheet on GPU Solutions (Englische Version).