Du hast Fragen? Wir haben Antworten! - Bald findet unser nächster Tag der offenen Tür statt!

Logo site

GPU und Data Science: Wo ist der Zusammenhang?

-
6
 Minuten Lesezeit
-

Eine GPU oder "Graphics Processing Unit" ist die Komponente eines Computers, die die Darstellung von Bildern auf dem Bildschirm ermöglicht. Es handelt sich dabei um die Grafikverarbeitungseinheit.

Wenn man einen Computer mit einem Gehirn vergleicht, könnte man sagen, dass die CPU die Abteilung ist, die sich dem logischen Denken widmet, während der Grafikprozessor für den kreativen Aspekt zuständig ist. Er sorgt dafür, dass die rohen Binärdaten in visuell ansprechende Bilder umgewandelt werden.

Ein einfacher Grafikprozessor, der in die CPU integriert ist, reicht aus, um die Anzeige eines Betriebssystems wie Windows auf einem Bildschirm zu verwalten. Für grafikintensivere Aufgaben wie Video-Rendering oder Design ist dagegen in der Regel ein unabhängiger und leistungsfähigerer Grafikprozessor in Form einer Grafikkarte erforderlich.

Die beiden größten Hersteller von Grafikkarten sind Nvidia und AMD. Im Bereich der integrierten Grafikprozessoren dominiert Intel den Markt. Smartphones und Tablets sind auch mit SoC-Chips (System-on-a-Chip) ausgestattet, die eine CPU und einen Grafikprozessor vereinen und in der Regel von Qualcomm und MediaTek hergestellt werden.

Die verschiedenen Arten von CPU / Grafikprozessoren

Es gibt zwei Haupttypen von Grafikprozessoren in modernen PCs: integrierte und dedizierte. Der erste Typ ist direkt in den Prozessor integriert, der zweite ist separat.

Grafikkarten für Desktop-PCs sind in der Regel große Komponenten mit Lüftern zur Kühlung. Diese Karten vereinen den Grafikprozessorchip und dedizierten RAM für schwerere Grafiklasten wie Videospiele.

Es ist sehr einfach, eine Grafikkarte in einem Desktop-PC auszutauschen. Du musst sie nur in einen PCIe x16-Steckplatz schieben, sie an die Stromversorgung anschließen und dann die Treiber installieren. Man kann sogar mehrere GPUs auf einem Computer installieren.

Laptops mit dedizierten Grafikprozessoren verfügen nicht über denselben Typ von Grafikprozessor. In der Regel handelt es sich um einen einfachen Chip, der auf das Motherboard gelötet wird. Diese Art von Grafikprozessor ist komplizierter oder sogar unmöglich zu ersetzen. Außerdem ist es schwierig, sie unter intensiver Belastung (z. B. beim Training eines Deep-Learning-Modells) aufgrund der geringen Belüftung des Computers auf einer guten Temperatur zu halten. Aus diesem Grund werden Laptop-GPUs häufig in ihrer Leistung gedrosselt, um die Temperatur des Computers unter Kontrolle zu halten. Es ist daher nicht empfehlenswert, in einen Laptop zu investieren, um Deep-Learning-Modelle zu trainieren.

Eingebaute Grafikprozessoren sind direkt in den CPU-Prozessor eingebaut. Einige Prozessoren verfügen nicht über sie, wie z. B. die CPUs der Ryzen-Reihe von AMD. Stattdessen stellt AMD Prozessoren mit integrierten Grafikkarten her, die Accelerated Processing Unit (APUs) genannt werden.

Auch Intels Core-Chips, deren Modellnummer mit F endet, haben keine Grafikprozessoren. Dies gilt auch für die CPUs der Core X-Reihe, deren Modellnummern mit X enden. Diese Prozessoren werden zu einem reduzierten Preis angeboten.

Moderne Prozessoren mit integrierten Grafikprozessoren können erstaunlich leistungsfähig sein. Für einen intensiven Anwendungsfall wie Data Science ist jedoch ein dedizierter Grafikprozessor unerlässlich.

Wozu dient ein GPU ?

Der Begriff Grafikprozessor wurde in den 1990er Jahren von Nvidia demokratisiert. Seine GeForce-Grafikkartenreihe war die erste, die populär wurde und Technologien wie Hardwarebeschleunigung, programmierbares Shading oder Streaming-Verarbeitung weiterentwickelt hat.

Bei der grundlegenden Nutzung eines Computers, wie dem Surfen im Internet oder der Verwendung von Bürosoftware, besteht die Rolle eines Grafikprozessors lediglich darin, Bilder auf dem Bildschirm anzuzeigen.

Für andere Anwendungsbereiche wie Gaming oder Data Science bietet ein Grafikprozessor jedoch viele Möglichkeiten. Er ermöglicht z. B. Videokodierung oder 3D-Rendering und wird sogar zum Training von Deep-Learning-Modellen, aber auch von ensemblistischen Modellen wie LightGBM verwendet.

Computergenerierte Grafiken, wie sie in Videospielen oder anderen animierten Medien vorkommen, benötigen eine große Menge an Leistung, um jedes Bild einzeln mit einer Bildwiederholrate zu zeichnen, die weit über 100 Bilder pro Sekunde betragen kann.

Ebenso erfordert die Videobearbeitung die Bearbeitung großer Mengen von Dateien in hoher Auflösung. Ein leistungsstarker Grafikprozessor ist unerlässlich, um die Dateien in einer akzeptablen Geschwindigkeit zu transkodieren.

Grafikprozessoren wurden ursprünglich entwickelt, um das Rendering von 3D-Grafiken zu beschleunigen. Im Laufe der Zeit wurden sie flexibler und programmierbarer. Ihre Fähigkeiten wurden immer weiter ausgebaut.

Dies ermöglichte es Designern, realistischere visuelle Effekte mit Licht- und Schattentechniken zu erzeugen. Außerdem haben Entwickler begonnen, die Leistung von Grafikprozessoren zu nutzen, um Workloads in den Bereichen Deep Learning und High Performance Computing (physikalische Simulationen, Dateikomprimierung usw.) zu beschleunigen. Hier sind die wichtigsten Anwendungsfälle für Grafikprozessoren.

1. Videospiele

Bei einem Videospiel ist es der Grafikprozessor, der es ermöglicht, die Bilder von Charakteren, Landschaften oder modellierten 3D-Objekten bis ins kleinste Detail darzustellen. Denn Videospiele erfordern zahlreiche mathematische Berechnungen, die parallel zur Darstellung der Bilder auf dem Bildschirm durchgeführt werden.

Der Grafikprozessor ist speziell darauf ausgelegt, Grafikinformationen wie Geometrie, Farbe, Farbton oder Texturen eines Bildes zu verarbeiten. Der RAM ermöglicht es auch, die große Menge an Informationen, die an den Grafikprozessor übertragen werden, und die Videodaten, die an den Bildschirm gerichtet sind, zu bewältigen.

Alle Anweisungen werden von der CPU an den Grafikprozessor weitergeleitet, der die Ausführung der Anweisungen übernimmt, um die Bilder auf dem Bildschirm anzuzeigen. Dieser Prozess wird als Rendering oder Grafikpipeline bezeichnet.

Die Grundeinheit der 3D-Grafik ist das Polygon. Alle Bilder, die man in einem Videospiel sieht, basieren auf einer großen Ansammlung von Polygonen.

Diese Grundformen werden zusammen mit anderen Linien und Punkten als „Primitive “ bezeichnet. Sie werden zusammengesetzt, um konkrete und erkennbare Objekte zu bilden, wie z. B. einen Tisch, einen Baum oder einen Zauberer. Je mehr Polygone es gibt, desto detaillierter sind die fertigen Bilder.

Jedes Objekt hat seinen eigenen Satz von Koordinaten, mit denen der Grafikprozessor weiß, wo er es in einer Szene platzieren muss. Das ist der Grund, warum Objekte in Spielen bei einem Fehler manchmal an beliebiger Stelle platziert werden.

Der Grafikprozessor führt dann Berechnungen durch, um die Perspektive der „Kamera“ zu bestimmen. Schließlich erhalten die Bilder ihre Texturen, Schatten und Farben, die es ermöglichen, sie so realistisch aussehen zu lassen.

Diese Grafikbearbeitung wird in rasender Geschwindigkeit durchgeführt. Dies erfordert schwere Berechnungen, weshalb ein leistungsfähiger, dedizierter Grafikprozessor unerlässlich ist.

Es ist technisch möglich, eine CPU für die Grafik zu verwenden, aber das ist weniger effizient und das Endergebnis ist visuell nicht so beeindruckend. Diese Komponente ist bereits damit beschäftigt, das Betriebssystem, andere Programme und Hintergrundprozesse auszuführen.

2. Videomontage

Viele Jahre lang waren Videoeditoren, Grafikdesigner und andere kreative Profis durch langsames Rendering eingeschränkt.

Heute macht die von GPUs angebotene Parallelverarbeitung das Video-Rendering in Formaten mit höherer Auflösung viel einfacher und schneller. Dadurch kann die Zeit für die Produktion und Iteration von Videos verkürzt werden.

3. Kryptomowährungen

Ein Grafikprozessor ist speziell für die Grafikverarbeitung ausgelegt. Diese Aufgabe erfordert jedoch viele mathematische Berechnungen, die parallel ausgeführt werden.

Dieser Fokus auf Berechnungen und parallele Operationen macht GPUs besonders geeignet für das Mining von Ethereuund anderen Kryptowährungen , die von Ethereum abgeleitet wurden. Krypto-Miner haben sich sehr schnell auf diese Komponenten verlegt und die CPUs, die für diesen Anwendungsfall zu allgemein und weniger leistungsfähig sind, vernachlässigt.

GPU und Data Science

Data Science bezeichnet alle Methoden und Techniken, die es ermöglichen, Informationen aus Rohdaten zu extrahieren. Diese Informationen können von Algorithmen des Machine Learning verwendet werden, um Systeme der künstlichen Intelligenz zu erzeugen.

Diese Disziplin erfordert viel Rechenleistung, und Grafikprozessoren sind besonders geeignet, da viele der mathematischen Operationen, die beim Machine Learning verwendet werden, leicht parallelisierbar sind.

Einer der neuesten und wichtigsten Anwendungsfälle für Grafikprozessoren ist die Erstellung von Neuronalen Netzen künstlicher Intelligenz. Es handelt sich auch um einen der anspruchsvollsten Anwendungsfälle in der Data Science.

Moderne künstliche Intelligenz hängt stark von der Fähigkeit ab, massive Datenmengen mithilfe von spezialisierter Hardware parallel zu verarbeiten. Grafikprozessoren haben eine wichtige Rolle bei der Entwicklung dieser neuen Technologien gespielt. Ohne GPUs hätten wir nicht die Hardware, die für das Training leistungsfähiger neuronaler Netze erforderlich ist.

Normalerweise vervollständigt eine CPU die Aufgaben sequentiell. Sie kann in einige Kerne unterteilt sein (typischerweise 8 oder 16 Kerne), und jeder Kern kann eine andere Aufgabe ausführen, während ein Grafikprozessor mit Hunderten oder Tausenden von Kernen ausgestattet ist, die sich gleichzeitig einer einzigen Aufgabe widmen. Die Parallelisierung der Verarbeitung ist grundlegend für das Design von Algorithmen für Grafikprozessoren, weshalb sich die Programmierung von Anweisungen auf dem Grafikprozessor völlig von der traditionellen Programmierung auf CPUs unterscheidet.

Deep-Learning-Bibliotheken wie TensorFlow und PyTorch übernehmen die Programmierung des Grafikprozessors im Hintergrund, was die Entwicklung von Deep-Learning-Modellen auf dem Grafikprozessor enorm vereinfacht.

Die Verwendung von Grafikprozessoren mit diesen Bibliotheken erfordert die Installation von Treibern, die speziell für Hochleistungsrechnen bestimmt sind. Anweisungen zur Installation dieser Treiber findest du in den Dokumentationen dieser Bibliotheken.

Wie findet man die passende GPU ?

Der beste Weg, die Leistung eines Grafikprozessors objektiv zu bewerten, ist mithilfe von Benchmarks: Tests, die entwickelt wurden, um die Grenzen von Grafikprozessoren zu testen und ihnen eine Punktzahl zuzuweisen. Diese Punktzahlen ermöglichen es, alle Grafikprozessoren auf dem Markt zu vergleichen und so denjenigen auszuwählen, der die Erwartungen am besten erfüllt. Je nach Anwendungsbereich wird der Benchmark unterschiedlich ausfallen.

Für Videospiele sind Benchmarks sehr beliebt. Typischerweise wird die Bildwiederholrate verglichen, die bei einem bestimmten Spiel erreicht wird: Ein Grafikprozessor, der 70 Frames pro Sekunde (oder frames per second auf Englisch) bei Tomb Raider erzeugen kann, ist besser als ein Grafikprozessor, der 55 Frames pro Sekunde erzeugen kann.

Für die Videobearbeitung gibt es zahlreiche Benchmarks, um die Rendering-Leistung eines Grafikprozessors bei Software wie Adobe Photoshop, Adobe Premiere Pro, Sony Vegas, etc. zu vergleichen. In diesem Fall wird die Zeit verglichen, die benötigt wird, um das Rendern eines Videos abzuschließen, und je geringer diese Zeit ist, desto besser ist der Grafikprozessor.

Für Deep Learning gibt es Benchmarks, die die Trainingszeit vergleichen, die für das Training von sehr bekannten Modellen wie VGG-16, Inception, EfficientNet auf bekannten Datenbanken wie ImageNet, CIFAR-10, MNIST, usw. benötigt wird.

Die Grafikprozessoren, die von Deep Learning-Bibliotheken am besten unterstützt werden, sind Grafikprozessoren der Marke NVidia. Es wird nicht empfohlen, einen AMD-GPU für Deep Learning zu verwenden, da die Bibliotheken TensorFlow und PyTorch keine native Unterstützung für GPUs dieser Marke bieten.

Wie kann man einen Kurs in Data Science und Machine Learning absolvieren?

Um zu lernen, wie Du die Fähigkeiten von Grafikprozessoren für die Datenverarbeitung nutzen kannst, kannst Du Dich bei DataScientest anmelden. Unsere Ausbildungen zum Data Analyst, Data Scientist und Data Engineer enthalten Module, die sich dem Machine Learning und der Data Science widmen.

Die anderen Module dieser Ausbildungen decken Big Data, Datenbanken, Python-Programmierung, Dataviz oder Business Intelligence ab. Nach Abschluss dieser Kurse verfügst du über alle erforderlichen Fähigkeiten, um einen der Berufe im Bereich Data Science auszuüben.

Unser innovativer Blended Learning-Ansatz kombiniert das Lernen auf einer Online-Plattform mit kollektiven Masterclasses. Alle Schulungen werden vollständig als Fernunterricht durchgeführt.

Je nach Deiner Situation kannst Du zwischen einer Weiterbildung und dem Modus Intensiv-BootCamp wählen. Von unseren Alumni haben 80 % unmittelbar nach Abschluss des Kurses einen Job gefunden.

Zur Finanzierung: Unsere Kurse sind im Rahmen des Persönlichen Ausbildungskontos förderfähig. Warte nicht länger und entdecke die Programme von DataScientest!

DataScientest News

Melde Dich jetzt für unseren Newsletter an, um unsere Guides, Tutorials und die neuesten Entwicklungen im Bereich Data Science direkt per E-Mail zu erhalten.

Möchtest Du informiert bleiben?

Schreib uns Deine E-Mail-Adresse, damit wir Dir die neuesten Artikel zum Zeitpunkt der Veröffentlichung zusenden können!
icon newsletter

DataNews

Starte Deine Karriere im Bereich Data: Erhalte regelmäßig Insiderwissen und wertvolle Karrieretipps in Deinem Posteingang.