CPU-Kerne versus GPU-Kerne

Wenn CPU und GPU zusammenpassen

lässt sich die Leistung eines Embedded PC potenzieren. Im Gegensatz zur CPU enthält eine GPU tausende von Kernen von geringerer Komplexität, die sich nur für bestimmte Arten von Berechnungen eignen. GPU-Kerne sind spezialisiert auf Gleitkomma-Operationen und die Berechnung von Matrizen und Vektoren. Ihre Stärke liegt im gleichzeitigen Ausführen gleichförmiger Aufgaben wie das Einfärben von Pixeln oder der Multiplikation großer Matrizen. 

Grafik-Prozessoren haben einen langen Entwicklungsweg hinter sich - von einfachen Ausgabekarten bis hin zum programmierbaren Parallelprozessor mit tausenden Kernen. GPUs, die über ihren eigentlichen Aufgabenbereich, der Grafikbearbeitung, hinaus verwendet werden, sind GPGPUs oder General Purpose Computation on Graphics Processing Unit.

GPGPUs 

sind aus den Shadern der Grafikprozessoren hervorgegangen. Shader sind Software-Routinen, die bestimmte grafische Berechnungen parallel abarbeiten. So sind Vertex-Shader für geometrische Berechnungen zuständig, Pixel- oder Fragment-Shader für Effekte, Farben und Texturen. Geometrie-Shader erhalten die vom Vertex-Shader ausgegebenen Polygondaten und verarbeiten diese weiter. All diese spezialisierten Shader haben den Vorteil, ihre jeweilige Aufgaben sehr effizient und schnell abzuarbeiten. Ihr Nachteil ist, dass die unterschiedlichen Shader nicht immer gebraucht werden und so die GPU-Leistung nur zu einem Bruchteil ausgenutzt wird. Eine grundlegende Änderung haben die Unified Shader herbeigeführt, da sie universell einsetzbar sind und die Aufgaben von allen Shadern übernehmen. Mit den frei programmierbaren Unified Shadern änderte sich die Art der GPU-Nutzung und verhalf der GPGPU zum Durchbruch.

General Purpose Graphical Processing Unit
Machine-Vision mit GPU Computer

Für welche Anwendungen ist GPU-Computing geeignet?

GPUs sind für Matrix- und Vektorberechnungen ausgelegt und hochgradig parallelisiert. Damit ein Grafikprozessor überhaupt sinnvoll genutzt werden kann, muss die Anwendung eine sehr hohe Zahl von parallel ausführbaren Berechnungen enthalten. Wenn man die Rechenwerke eines Grafikprozessors kontinuierlich auslasten will, dann sollte man mindestens eine Millionen gleichartiger Berechnungen liefern können, sonst hat man gegenüber einer normalen CPU keine Vorteile. Mögliche Anwendungen sind Mustererkennung in der Qualitätskontrolle (Machine-Vision), Predictive Maintenance, Müdigkeitserkennung im Fahrzeug und Verkehrsüberwachung. Insbesondere Anwendungen im Bereich der Künstlichen Intelligenz lassen sich perfekt mit GPU-Computing realisieren, da Matrixberechnungen eine große Rolle spielen.

Welche Entwicklungsysteme gibt es?

GPGPU-Anwendungen bestehen aus Host-Code und Device-Code/GPU-Kernel. Der Host-Code wird von CPU abgearbeitet und organisiert den Programmablauf (Steuerung der Grafikkarte, Daten in Grafikkarte importieren und exportieren). Der GPU-Kernel enthält die rechenintensiven Programmteile. Die beiden großen GPU-Karten-Hersteller Nvidia und AMD setzen auf unterschiedliche GPU-Programmierschnittstellen: Nvidia hat CUDA entwickelt, AMD setzt auf das hardware-unabhängige OpenCL. Nvidia bietet mit CUDA nicht nur eine Schnittstelle, sondern auch eine Computing-Plattform mit Bibliotheken, Entwicklungstools, Runtime-Umgebung und Compiler.

GPU-Compunting-Entwicklungssystem
+49 (0)89 / 85 63 15-0
Mo-Fr: 09:00 - 17:00 Uhr

info@compmall.de

oder chatten Sie mit uns über untenstehenden Button (ggf. Ad-blocker deaktivieren)