TL; DR-Antwort: GPUs haben weitaus mehr Prozessorkerne als CPUs. Da jedoch jeder GPU-Kern deutlich langsamer als ein CPU-Kern ist und nicht über die für moderne Betriebssysteme erforderlichen Funktionen verfügt, eignen sie sich nicht für die Durchführung eines Großteils der täglichen Verarbeitung rechnen. Sie eignen sich am besten für rechenintensive Vorgänge wie Videoverarbeitung und Physiksimulationen.
GPGPU ist noch ein relativ neues Konzept. GPUs wurden ursprünglich nur zum Rendern von Grafiken verwendet. Mit fortschreitender Technologie wurde die große Anzahl von GPU-Kernen im Vergleich zu CPUs ausgenutzt, um Rechenfunktionen für GPUs zu entwickeln, mit denen viele parallele Datenströme gleichzeitig verarbeitet werden können, unabhängig davon, um welche Daten es sich handelt. Während GPUs Hunderte oder sogar Tausende von Stream-Prozessoren haben können, laufen sie jeweils langsamer als ein CPU-Kern und haben weniger Funktionen (selbst wenn sie vollständig sind und so programmiert werden können, dass jedes Programm ausgeführt werden kann, 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 weisen erheblich unterschiedliche Architekturen auf, die sie für unterschiedliche Aufgaben besser geeignet machen. Eine GPU kann große Datenmengen in vielen Streams verarbeiten und relativ einfache Vorgänge ausführen, eignet sich jedoch nicht für die umfangreiche oder komplexe Verarbeitung einzelner oder weniger Datenströme. Eine CPU ist pro Kern viel schneller (in Form von Anweisungen pro Sekunde) und kann komplexe Vorgänge mit einem oder wenigen Datenströmen einfacher ausführen, kann jedoch nicht viele Datenströme gleichzeitig effizient verarbeiten.
Infolgedessen sind GPUs nicht für Aufgaben geeignet, die nicht wesentlich von der Parallelisierung profitieren oder nicht parallelisiert werden können, einschließlich vieler gängiger Verbraucheranwendungen wie Textverarbeitungsprogrammen. 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 erheblich andere Techniken erforderlich. Diese verschiedenen Techniken umfassen neue Programmiersprachen, Änderungen an vorhandenen Sprachen und neue Programmierparadigmen, die besser geeignet sind, eine Berechnung als eine von vielen Stream-Prozessoren auszuführende Paralleloperation auszudrücken. Weitere Informationen zu den zum Programmieren von GPUs erforderlichen Techniken finden Sie in den Wikipedia-Artikeln zur Stream-Verarbeitung und zum Parallel-Computing .
Moderne GPUs sind in der Lage, Vektoroperationen und Gleitkomma-Arithmetik auszuführen. Die neuesten Karten können Gleitkommazahlen mit doppelter Genauigkeit verarbeiten. Mit Frameworks wie CUDA und OpenCL können Programme für GPUs geschrieben werden, und aufgrund der Art der GPUs eignen sie sich am besten für hochparallelisierbare Vorgänge, z Computercluster wie bei NVIDIA Tesla Personal Supercomputern . Verbraucher mit modernen GPUs, die Erfahrung mit Folding @ home haben, können mit diesen GPU-Clients Beiträge leisten, die mit sehr hoher Geschwindigkeit Proteinfaltungssimulationen durchführen und mehr Arbeit für das Projekt leisten können (lesen Sie unbedingt die häufig gestellten Fragenerstens vor allem im Zusammenhang mit GPUs). GPUs können auch mithilfe von PhysX eine bessere Physiksimulation in Videospielen ermöglichen, die Kodierung und Dekodierung von Videos beschleunigen und andere rechenintensive Aufgaben ausführen. Es sind diese Arten von Aufgaben, für die sich GPUs am besten eignen.
AMD ist Vorreiter bei einem Prozessordesign namens Accelerated Processing Unit (APU) , das herkömmliche x86-CPU-Kerne mit GPUs kombiniert. Dieser Ansatz ermöglicht eine Grafikleistung, die Grafiklösungen mit integriertem Motherboard weit überlegen ist (obwohl teurere Grafikprozessoren nicht mithalten können), und ermöglicht ein kompaktes, kostengünstiges System mit guter Multimedia-Leistung, ohne dass eine separate GPU erforderlich ist. Die neuesten Intel-Prozessoren bieten auch integrierte Grafik auf dem Chip, obwohl die wettbewerbsfähige integrierte GPU-Leistung derzeit auf die wenigen Chips mit Intel Iris Pro Graphics beschränkt ist. Mit fortschreitender Technologie werden wir einen zunehmenden Grad an Konvergenz dieser einmal getrennten Teile feststellen. AMD-VorstellungenEine Zukunft, in der CPU und GPU eine Einheit bilden und in der die gleiche Aufgabe nahtlos gelöst werden kann .
Dennoch sind viele Aufgaben, die von PC-Betriebssystemen und -Anwendungen ausgeführt werden, noch besser für CPUs geeignet, und es ist viel Arbeit erforderlich, um ein Programm mithilfe einer GPU zu beschleunigen. Da so viele vorhandene Softwareprodukte die x86-Architektur verwenden und GPUs unterschiedliche Programmiertechniken erfordern und mehrere wichtige Funktionen für Betriebssysteme fehlen, ist ein allgemeiner Übergang von der CPU zur GPU für das tägliche Computing sehr schwierig.