Die anderen Antworten hier sind ziemlich gut. Ich werde auch meine 2 Cent einwerfen.
Ein Grund dafür, dass CPUs so allgegenwärtig geworden sind, ist ihre Flexibilität. Sie können sie für eine unendliche Vielzahl von Aufgaben neu programmieren. Heutzutage ist es für Unternehmen, die Produkte herstellen, die eine kleine CPU oder einen Mikrocontroller in etwas stecken und deren Funktionalität programmieren, billiger und schneller als die Entwicklung kundenspezifischer Schaltungen, um dieselbe Aufgabe zu erfüllen.
Wenn Sie dasselbe Gerät wie andere Geräte verwenden, können Sie die bekannten Lösungen für Probleme nutzen, die dasselbe Gerät (oder ein ähnliches Gerät) verwenden. Und während die Plattform reifer wird, entwickeln sich Ihre Lösungen immer weiter und werden sehr ausgereift und optimiert. Die Leute, die auf diesen Geräten kodieren, gewinnen auch Fachwissen und werden sehr gut im Handwerk.
Wenn Sie einen neuen Gerätetyp von Grund auf erstellen möchten, eine Alternative zu einer GPU, würde es Jahre dauern, bis die ersten Anwender tatsächlich wissen, wie sie verwendet werden. Wenn Sie einen ASIC an Ihre CPU anschließen, wie optimieren Sie die Ablade-Berechnung auf dieses Gerät?
Die Computerarchitektur-Community ist seit einigen Jahren mit dieser Idee konfrontiert (sie war offensichtlich populär, hat aber kürzlich eine Renaissance erlebt). Diese "Beschleuniger" (ihre Laufzeit) sind in unterschiedlichem Umfang programmierbar. Das Problem ist, wie eng definieren Sie den Umfang des Problems, das Ihr Beschleuniger bewältigen kann? Ich habe sogar mit einigen Leuten gesprochen, die an der Entwicklung eines Beschleunigers mit analogen Schaltungen mit Operationsverstärkern gearbeitet haben, um Differentialgleichungen zu berechnen. Tolle Idee, aber extrem enger Spielraum.
Wenn Sie einen Beschleuniger haben, entscheiden die wirtschaftlichen Kräfte über Ihr Schicksal. Die Trägheit des Marktes ist eine unglaubliche Kraft. Auch wenn etwas eine großartige Idee ist, ist es wirtschaftlich machbar, Ihre Arbeitslösungen für die Verwendung dieses neuen Geräts zu überarbeiten? Vielleicht, vielleicht nicht.
GPUs sind für bestimmte Arten von Problemen furchtbar, daher arbeiten viele Leute / Unternehmen an anderen Arten von Geräten. Aber GPUs sind bereits so tief verwurzelt. Werden ihre Geräte jemals wirtschaftlich werden? Ich denke, wir werden sehen.
Edit: Ich erweitere meine Antwort etwas, jetzt bin ich aus dem Bus.
Eine vorsichtige Fallstudie ist das Intel Larrabee-Projekt. Es begann als paralleles Verarbeitungsgerät, das Grafiken in Software ausführen konnte. es hatte keine spezielle Grafikhardware. Ich habe mit jemandem gesprochen, der an dem Projekt mitgearbeitet hat. Ein Hauptgrund dafür, dass das Projekt fehlgeschlagen ist und abgesagt wurde (abgesehen von der schrecklichen internen Politik), war, dass der Compiler einfach nicht dazu gebracht werden konnte, einen guten Code dafür zu erstellen. Natürlich hat es Funktionscode produziert, aber wenn es um die maximale Leistung Ihres Produkts geht, haben Sie besser einen Compiler, der ziemlich optimalen Code erzeugt. Dies ist ein Rückblick auf meinen früheren Kommentar, dass mangelnde Fachkenntnisse in Hardware und Software für Ihr neues Gerät ein großes Problem sind.
Einige Elemente des Larrabee-Designs haben es zum Xeon Phi / Intel MIC gemacht. Dieses Produkt hat es tatsächlich auf den Markt gebracht. Das Hauptaugenmerk lag auf der Parallelisierung wissenschaftlicher und anderer HPC-Berechnungen. Es sieht so aus, als wäre es jetzt ein kommerzieller Misserfolg. Eine andere Person, mit der ich bei Intel gesprochen habe, deutete an, dass sie nicht mit Preis-Leistungs-Verhältnis zu GPUs konkurrenzfähig war.
Menschen haben versucht, die Logiksynthese für FPGAs in Compiler zu integrieren, sodass Sie automatisch Code für Ihre FPGA-Beschleuniger generieren können. Sie arbeiten nicht so gut.
Ein Ort, der für Beschleuniger oder andere Alternativen zu GPUs wirklich fruchtbarer Boden zu sein scheint, ist die Wolke. Die Skaleneffekte dieser großen Unternehmen wie Google, Amazon und Microsoft machen die Investition in alternative Berechnungssysteme lohnenswert. Jemand hat bereits die Tensor-Verarbeitungseinheiten von Google erwähnt. Microsoft verfügt in seiner gesamten Bing- und Azure-Infrastruktur über FPGAs und anderes. Gleiche Geschichte mit Amazon. Es ist absolut sinnvoll, wenn die Waage Ihre Investition in Zeit, Geld und Tränen kompensieren kann.
Zusammenfassend lässt sich sagen, dass die Spezialisierung im Widerspruch zu vielen anderen Dingen steht (Wirtschaftlichkeit, Reife der Plattform, Engineering-Know-how usw.). Durch die Spezialisierung kann Ihre Leistung erheblich verbessert werden, jedoch wird der Anwendungsbereich Ihres Geräts eingeschränkt. Meine Antwort konzentrierte sich auf viele negative Aspekte, aber die Spezialisierung hat auch eine Menge Vorteile. Es sollte unbedingt verfolgt und untersucht werden, und wie ich bereits erwähnte, verfolgen viele Gruppen es sehr aggressiv.
Entschuldigung, redigiere noch einmal: Ich denke, deine ursprüngliche Prämisse ist falsch. Ich glaube, es ging weniger darum, nach zusätzlichen Energiequellen zu suchen, als vielmehr, wenn Menschen eine Chance erkennen. Die Grafikprogrammierung ist sehr linear, die Algebra ist sehr hoch, und die GPU wurde entwickelt, um gängige Operationen wie Matrixvervielfachung, Vektoroperationen usw. effizient auszuführen. Operationen, die auch für das wissenschaftliche Rechnen sehr häufig sind.
Das Interesse an GPUs begann gerade, als die Leute erkannten, dass die Versprechen, die das EPIC-Projekt von Intel und HP gegeben hatte, deutlich übertrieben wurden (Ende der 90er Jahre Anfang 2000). Es gab keine generelle Lösung für die Compiler-Parallelisierung. Anstatt zu sagen "Wo finden wir mehr Rechenleistung, oh, wir könnten die GPU ausprobieren?" Ich denke, es war mehr "Wir haben etwas, das bei parallelen Berechnungen gut ist, können wir dies allgemeiner programmierbar machen". Viele der beteiligten Personen waren in der Scientific Computing-Community tätig und hatten bereits parallelen Fortran-Code, den sie auf Cray- oder Tera-Maschinen ausführen konnten (Tera MTA hatte 128 Hardware-Threads). Vielleicht gab es Bewegungen aus beiden Richtungen, aber ich habe nur Erwähnungen der Ursprünge der GPGPU aus dieser Richtung gehört.