GPUs werden zunehmend für nicht-grafische Aufgaben wie Risikoberechnungen, Strömungsberechnungen und seismische Analysen verwendet. Was hindert uns daran, GPU-gesteuerte Geräte einzuführen?

Die heutige Frage-und-Antwort-Sitzung kommt mit freundlicher Genehmigung von SuperUser – einer Unterabteilung von Stack Exchange, einer von der Community betriebenen Gruppierung von Q&A-Websites.



Die Frage

SuperUser-Leser Ell hält sich über technische Neuigkeiten auf dem Laufenden und ist neugierig, warum wir nicht mehr GPU-basierte Systeme verwenden:

Mir scheint, dass heutzutage viele Berechnungen auf der GPU durchgeführt werden. Offensichtlich werden dort Grafiken erstellt, aber mit CUDA und dergleichen werden KI, Hashing-Algorithmen (denken Sie an Bitcoins) und andere auch auf der GPU erstellt. Warum können wir nicht einfach die CPU loswerden und die GPU alleine verwenden? Was macht die GPU so viel schneller als die CPU?

Warum eigentlich? Was macht die CPU einzigartig?

Die Antwort

SuperUser-Mitwirkender DragonLord bietet eine gut unterstützte Übersicht über die Unterschiede zwischen GPUs und CPUs:

TL;DR-Antwort: GPUs haben weit mehr Prozessorkerne als CPUs, aber da jeder GPU-Kern deutlich langsamer als ein CPU-Kern läuft und nicht über die für moderne Betriebssysteme erforderlichen Funktionen verfügt, sind sie für den Großteil der Verarbeitung im alltäglichen Computing nicht geeignet. Sie eignen sich am besten für rechenintensive Operationen wie Videoverarbeitung und Physiksimulationen.

Die ausführliche Antwort: GPGPU ist noch ein relativ neues Konzept. GPUs wurden ursprünglich nur zum Rendern von Grafiken verwendet; Im Zuge des technologischen Fortschritts wurde die große Anzahl von Kernen in GPUs im Vergleich zu CPUs ausgenutzt, indem Rechenfunktionen für GPUs entwickelt wurden, damit sie viele parallele Datenströme gleichzeitig verarbeiten können, unabhängig davon, um welche Daten es sich handelt. Obwohl GPUs Hunderte oder sogar Tausende von Stream-Prozessoren haben können, laufen sie alle langsamer als ein CPU-Kern und haben weniger Funktionen (auch wenn sie es sind .). Turing abgeschlossen und kann so programmiert werden, dass jedes Programm ausgeführt wird, das eine CPU ausführen kann). Zu den Funktionen, die bei GPUs fehlen, gehören Interrupts und virtueller Speicher, die zur Implementierung eines modernen Betriebssystems erforderlich sind.

Mit anderen Worten, CPUs und GPUs haben deutlich unterschiedliche Architekturen, die sie für unterschiedliche Aufgaben besser geeignet machen. Eine GPU kann große Datenmengen in vielen Streams verarbeiten und relativ einfache Operationen damit ausführen, ist jedoch für die schwere oder komplexe Verarbeitung eines einzelnen oder weniger Datenstreams ungeeignet. Eine CPU ist pro Kern viel schneller (in Bezug auf Anweisungen pro Sekunde) und kann komplexe Operationen an einem einzelnen oder wenigen Datenströmen einfacher ausführen, kann jedoch nicht viele Ströme gleichzeitig effizient verarbeiten.

Infolgedessen sind GPUs nicht geeignet, Aufgaben zu bewältigen, die nicht wesentlich von Nutzen sind oder nicht parallelisiert werden können, darunter viele gängige Verbraucheranwendungen wie Textverarbeitungsprogramme. Darüber hinaus verwenden GPUs eine grundlegend andere Architektur; man müsste eine Anwendung speziell für eine GPU programmieren, damit sie funktioniert, und zum Programmieren von GPUs sind deutlich andere Techniken erforderlich. Diese unterschiedlichen Techniken umfassen neue Programmiersprachen, Modifikationen an bestehenden Sprachen und neue Programmierparadigmen, die besser geeignet sind, eine Berechnung als eine von vielen Stromprozessoren auszuführende parallele Operation auszudrücken. Weitere Informationen zu den Techniken, die zum Programmieren von GPUs erforderlich sind, finden Sie in den Wikipedia-Artikeln auf Stream-Verarbeitung und paralleles Rechnen .

Moderne GPUs können Vektoroperationen und Gleitkommaarithmetik ausführen, wobei die neuesten Karten Gleitkommazahlen mit doppelter Genauigkeit manipulieren können. Frameworks wie CUDA und OpenCL ermöglichen das Schreiben von Programmen für GPUs, und die Beschaffenheit von GPUs macht sie am besten für hochgradig parallelisierbare Operationen geeignet, z Rechencluster wie in NVIDIA Tesla Personal Supercomputer . Verbraucher mit modernen GPUs, die Erfahrung mit Folding@home haben, können sie verwenden, um mitzuwirken GPU-Clients , die Proteinfaltungssimulationen mit sehr hoher Geschwindigkeit durchführen und mehr Arbeit zum Projekt beitragen können (lesen Sie unbedingt die Häufig gestellte Fragen erstens, insbesondere solche im Zusammenhang mit GPUs). GPUs können auch eine bessere Physiksimulation in Videospielen mit PhysX ermöglichen, die Videocodierung und -decodierung beschleunigen und andere rechenintensive Aufgaben ausführen. Für diese Art von Aufgaben sind GPUs am besten geeignet.

AMD leistet Pionierarbeit bei einem Prozessordesign namens Beschleunigte Verarbeitungseinheit (APU) die herkömmliche x86-CPU-Kerne mit GPUs kombiniert. Dies könnte es den CPU- und GPU-Komponenten ermöglichen, zusammenzuarbeiten und die Leistung auf Systemen mit begrenztem Platz für separate Komponenten zu verbessern. Mit dem weiteren technologischen Fortschritt werden wir einen zunehmenden Grad der Konvergenz dieser einst getrennten Teile feststellen. Viele Aufgaben, die von PC-Betriebssystemen und -Anwendungen ausgeführt werden, sind jedoch immer noch besser für CPUs geeignet, und es ist viel Arbeit erforderlich, um ein Programm mit einer GPU zu beschleunigen. Da so viel vorhandene Software die x86-Architektur verwendet und GPUs unterschiedliche Programmiertechniken erfordern und einige wichtige Funktionen fehlen, die für Betriebssysteme benötigt werden, ist ein allgemeiner Übergang von CPU zu GPU für die alltägliche Computerarbeit äußerst schwierig.


Möchten Sie der Erklärung noch etwas hinzufügen? Ton aus in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Sehen Sie sich hier den vollständigen Diskussionsthread an .

WEITER LESEN
  • › So finden Sie Ihr Spotify Wrapped 2021
  • › Der Computerordner ist 40: Wie Xerox Star den Desktop erstellte
  • Cyber ​​Monday 2021: Die besten Tech-Deals
  • › 5 Websites, die jeder Linux-Benutzer mit einem Lesezeichen versehen sollte
  • › Funktionen vs. Formeln in Microsoft Excel: Was ist der Unterschied?
  • › Was ist MIL-SPEC Fallschutz?