Antwort von TL; DR: GPUs haben weit mehr Prozessorkerne als CPUs, aber da jeder GPU-Kern wesentlich langsamer als ein CPU-Kern ausgeführt wird und nicht über die für moderne Betriebssysteme erforderlichen Funktionen verfügt, eignen sie sich nicht für die meisten Verarbeitungsvorgänge im Alltag rechnen. Sie eignen sich am besten für rechenintensive Vorgänge wie Videoverarbeitung und Physik-Simulationen.
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 Kernen in GPUs im Vergleich zu CPUs ausgenutzt, indem Rechenfunktionen für GPUs entwickelt wurden, so dass sie viele parallele Datenströme gleichzeitig verarbeiten können, unabhängig von den Daten. 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 in Turing sind und so programmiert werden können, dass sie alle Programme ausführen, die eine CPU ausführen kann). Zu den fehlenden Funktionen von GPUs gehören Interrupts und virtueller Speicher, die zur Implementierung eines modernen Betriebssystems erforderlich sind.
Mit anderen Worten, CPUs und GPUs verfügen über deutlich unterschiedliche Architekturen, die sie für unterschiedliche Aufgaben besser geeignet machen. Eine GPU kann große Datenmengen in vielen Datenströmen verarbeiten und führt relativ einfache Vorgänge aus. Sie eignet sich jedoch nicht für die umfangreiche oder komplexe Verarbeitung einzelner oder weniger Datenströme. Eine CPU ist pro Kern wesentlich schneller (in Bezug auf Anweisungen pro Sekunde) und kann komplexe Vorgänge für einen einzelnen oder wenige Datenströme einfacher ausführen, kann jedoch nicht viele Streams gleichzeitig effizient verarbeiten.
Infolgedessen sind GPUs nicht geeignet, Aufgaben zu erledigen, die nicht wesentlich von der Parallelisierung profitieren oder nicht parallelisiert werden können, einschließlich vieler gängiger Verbraucheranwendungen, wie z. B. Textprozessoren. 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 unterschiedlichen Techniken umfassen neue Programmiersprachen, Modifikationen an vorhandenen Sprachen und neue Programmierparadigmen, die besser geeignet sind, eine Berechnung als Paralleloperation auszudrücken, die von vielen Stream-Prozessoren ausgeführt wird. Weitere Informationen zu den zum Programmieren von GPUs erforderlichen Techniken finden Sie in den Wikipedia-Artikeln zu Stream-Verarbeitung und parallelem Computing .
Moderne GPUs sind in der Lage, Vektoroperationen und Fließkomma-Arithmetik auszuführen. Die neuesten Karten können Fließkommazahlen mit doppelter Genauigkeit bearbeiten. Frameworks wie CUDA und OpenCL ermöglichen das Schreiben von Programmen für GPUs. Aufgrund der Beschaffenheit von GPUs eignen sie sich am besten für hochgradig parallelisierbare Vorgänge, z. B. für das Scientific Computing, bei denen eine Reihe spezialisierter GPU-Computerkarten einen brauchbaren Ersatz für einen kleinen Computer darstellen kann Computing-Cluster wie in NVIDIA Tesla Personal Supercomputers . Kunden mit modernen GPUs, die mit Folding @ home vertraut sind, können mit GPU-Kunden beitragen, die Simulationen der Proteinfaltung mit sehr hohen Geschwindigkeiten durchführen und mehr Arbeit in das Projekt einbringen können (lesen Sie die FAQsvor allem diejenigen, die sich auf GPUs beziehen). GPUs können mit PhysX auch eine bessere Physiksimulation in Videospielen ermöglichen, die Videocodierung und -decodierung beschleunigen und andere rechenintensive Aufgaben ausführen. GPUs eignen sich am besten für diese Aufgaben.
AMD ist Vorreiter bei einem Prozessorkonzept mit der Bezeichnung Accelerated Processing Unit (APU), das herkömmliche x86-CPU-Kerne mit GPUs kombiniert. Dieser Ansatz ermöglicht eine Grafikleistung, die den Motherboard-integrierten Grafiklösungen weit überlegen ist (obwohl dies mit teureren separaten GPUs nicht möglich ist) 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 Grafikchips auf dem Chip, obwohl die wettbewerbsfähige integrierte GPU-Leistung derzeit auf die wenigen Chips mit Intel Iris Pro Graphics beschränkt ist. Mit dem fortschreitenden Fortschritt der Technologie wird sich die Konvergenz dieser einmal getrennten Teile zunehmend erhöhen. AMD sieht voreine Zukunft, in der CPU und GPU eine Einheit sind, die in der Lage ist, nahtlos an derselben Aufgabe zu arbeiten .
Trotzdem sind viele Aufgaben, die von PC-Betriebssystemen und -Anwendungen ausgeführt werden, 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 da GPUs unterschiedliche Programmiertechniken erfordern und einige wichtige Funktionen fehlen, die für Betriebssysteme erforderlich sind, ist ein allgemeiner Übergang von der CPU zur GPU für das alltägliche Rechnen sehr schwierig.