Frage

Wie sehen Ihrer Meinung nach die Zukunft von GPU-als-CPU-Initiativen wie CUDA aus?Glauben Sie, dass sie zum Mainstream werden und die nächste Modeerscheinung in der Branche sein werden?Apple entwickelt ein neues Framework für die Verwendung der GPU zur Ausführung von CPU-Aufgaben und das CUDA-Projekt von Nvidia hat in der Wissenschaft große Erfolge erzielt.Würden Sie einem Studenten vorschlagen, sich mit diesem Bereich zu befassen?

War es hilfreich?

Lösung

Erstens glaube ich nicht, dass diese Frage wirklich zu SO gehört.

Meiner Meinung nach ist die GPU eine sehr interessante Alternative, wenn Sie vektorbasierte Float-Mathematik betreiben.Dies bedeutet jedoch:Es wird nicht zum Mainstream werden.Die meisten gängigen (Desktop-)Anwendungen führen nur sehr wenige Gleitkommaberechnungen durch.

In Spielen (Physik-Engines) und in wissenschaftlichen Berechnungen hat es bereits Anklang gefunden.Wenn Sie eines dieser beiden als „Mainstream“ betrachten, dann wird die GPU zum Mainstream.

Ich würde diese beiden nicht als Mainstream betrachten und denke daher, dass die GPU zur nächsten Modeerscheinung in der Mainstream-Branche aufsteigen wird.

Wenn Sie als Student Interesse an stark physikbasierten wissenschaftlichen Berechnungen haben, sollten Sie sich unbedingt etwas Zeit dafür nehmen (GPUs sind ohnehin sehr interessante Hardware).

Andere Tipps

Nehmen Sie sich Zeit, wenn Sie sich für wissenschaftliches und paralleles Rechnen interessieren.Denken Sie nicht an CUDA und daran, eine GPU als CPU erscheinen zu lassen.Es ermöglicht lediglich eine direktere Methode zur Programmierung von GPUs als ältere GPGPU-Programmiertechniken.

Allzweck-CPUs beziehen ihre Fähigkeit, eine Vielzahl von Aufgaben gut zu bewältigen, aus der gesamten Arbeit, die in die Zweigvorhersage, das Pipelining, den Superscaler usw. geflossen ist.Dies ermöglicht es ihnen, bei einer Vielzahl von Arbeitslasten eine gute Leistung zu erzielen, während sie bei speicherintensiven Gleitkommaoperationen mit hohem Durchsatz Probleme bereiten.

GPUs wurden ursprünglich für eine Aufgabe entwickelt, und zwar sehr, sehr gut.Grafikoperationen sind von Natur aus parallel.Sie können die Farbe aller Pixel auf dem Bildschirm gleichzeitig berechnen, da keine Datenabhängigkeiten zwischen den Ergebnissen bestehen.Darüber hinaus mussten sich die benötigten Algorithmen nicht mit Verzweigungen befassen, da nahezu jede erforderliche Verzweigung durch Setzen eines Koeffizienten auf Null oder Eins erreicht werden konnte.Die Hardware könnte daher sehr einfach sein.Sie müssen sich keine Gedanken über die Verzweigungsvorhersage machen, und anstatt einen Prozessor-Superscaler zu bauen, können Sie einfach so viele ALUs hinzufügen, wie Sie auf dem Chip unterbringen können.

Mit programmierbaren Textur- und Vertex-Shadern haben GPUs den Weg zur allgemeinen Programmierbarkeit gefunden, sie sind jedoch immer noch durch die Hardware eingeschränkt, die immer noch für Gleitkommaoperationen mit hohem Durchsatz ausgelegt ist.Wahrscheinlich werden einige zusätzliche Schaltkreise hinzugefügt, um allgemeinere Berechnungen zu ermöglichen, jedoch nur bis zu einem gewissen Punkt.Alles, was die Grafikfähigkeit einer GPU beeinträchtigt, schafft es nicht.Schließlich sind GPU-Unternehmen immer noch im Grafikgeschäft tätig und der Zielmarkt sind immer noch Gamer und Menschen, die High-End-Visualisierung benötigen.

Der GPGPU-Markt ist immer noch ein Tropfen auf den heißen Stein und wird es bis zu einem gewissen Grad auch bleiben.Denn „es sieht hübsch aus“ ist ein viel niedrigerer Anspruch als „jedes Mal 100 % garantierte und reproduzierbare Ergebnisse“.

Kurz gesagt, GPUs werden niemals als CPUs einsetzbar sein.Sie sind einfach für unterschiedliche Arten von Arbeitsbelastungen konzipiert.Ich gehe davon aus, dass GPUs Funktionen erhalten werden, die sie für die schnelle Lösung einer größeren Vielfalt von Problemen nützlich machen, aber das wird immer der Fall sein Grafik in erster Linie Verarbeitungseinheiten.

Es wird immer wichtig sein, dem Problem, das Sie haben, immer das am besten geeignete Werkzeug zuzuordnen, mit dem Sie es lösen können.

Langfristig denke ich, dass die GPU nicht mehr existieren wird, da sich Allzweckprozessoren weiterentwickeln, um diese Funktionen zu übernehmen. Intels Larrabee ist der erste Schritt.Die Geschichte hat gezeigt, dass Wetten gegen x86 eine schlechte Idee sind.

Das Studium massiv paralleler Architekturen und der Vektorverarbeitung wird weiterhin nützlich sein.

GPUs werden niemals CPUs ersetzen.Eine CPU führt eine Reihe sequenzieller Anweisungen aus und eine GPU führt parallel eine ganz bestimmte Art von Berechnung durch.Diese GPUs eignen sich hervorragend für numerische Berechnungen und Grafiken.Allerdings können die meisten Programme diese Art der Datenverarbeitung überhaupt nicht nutzen.

Bald werden Sie neue Prozessoren von Intel und AMD sehen, die sowohl GPU-ähnliche Gleitkomma-Vektorberechnungen als auch Standard-CPU-Berechnungen umfassen.

Ich denke, es ist der richtige Weg.

Bedenkt, dass GPUs wurden genutzt, um günstige Supercomputer zu bauen, es scheint die natürliche Entwicklung der Dinge zu sein.Warum nicht die verfügbare Technologie nutzen, da bereits so viel Rechenleistung und Forschung und Entwicklung für Sie geleistet wurden?

Also machen Sie es einfach.Das sorgt für einige coole Recherchen und ist außerdem ein guter Grund, diese High-End-Grafikkarte zu kaufen, damit Sie Crysis und Assassin's Creed mit allen Grafikdetails spielen können ;)

Es ist eines dieser Dinge, für die man ein oder zwei Anwendungen sieht, aber bald wird jemand eine „Killer-App“ entwickeln, die herausfindet, wie man damit etwas allgemein Nützlicheres machen kann, und zwar mit superschnellen Geschwindigkeiten.

Pixel-Shader zum Anwenden von Routinen auf große Arrays von Float-Werten. Vielleicht werden wir einige GIS-Abdeckungsanwendungen sehen, oder na ja, ich weiß es nicht.Wenn Sie nicht mehr Zeit darauf verwenden als ich, werden Sie den gleichen Grad an Einsicht haben wie ich – nämlich wenig!

Ich habe das Gefühl, dass es eine wirklich große Sache sein könnte, genau wie Intel und S3, vielleicht braucht es nur eine kleine Optimierung der Hardware oder jemand mit einer Glühbirne über dem Kopf.

Bei so viel ungenutzter Energie kann ich mir nicht vorstellen, dass sie zu lange ungenutzt bleibt.Die Frage ist allerdings, wie die GPU dafür genutzt wird.CUDA scheint vorerst eine gute Vermutung zu sein, aber es zeichnen sich auch andere Technologien ab, die es für den durchschnittlichen Entwickler zugänglicher machen könnten.

Apple hat kürzlich OpenCL angekündigt, das ihrer Meinung nach viel mehr als CUDA ist, aber dennoch recht einfach.Ich weiß nicht genau, was ich davon halten soll, aber die Khronos-Gruppe (die Leute, die am OpenGL-Standard arbeiten) arbeiten am OpenCL-Standard und versuchen, ihn hochgradig interoperabel mit OpenGL zu machen.Dies könnte zu einer Technologie führen, die besser für die normale Softwareentwicklung geeignet ist.

Es ist ein interessantes Thema, und übrigens beginne ich gerade meine Masterarbeit mit dem Thema, wie man die GPU-Leistung (wenn möglich) am besten für den durchschnittlichen Entwickler verfügbar macht, wobei CUDA im Mittelpunkt steht.

Vor langer Zeit war es wirklich schwierig, Gleitkommaberechnungen durchzuführen (Tausende/Millionen Emulationszyklen pro Befehl auf (nach heutigen Maßstäben) schrecklich leistungsstarken CPUs wie dem 80386).Leute, die Gleitkommaleistung benötigen, könnten sich eine FPU besorgen (zum Beispiel die 80387).Die alten FPUs waren ziemlich eng in den Betrieb der CPU integriert, aber sie waren extern.Später wurden sie integriert, wobei der 80486 über eine integrierte FPU verfügte.

Die alte FPU ist analog zur GPU-Berechnung.Mit den APUs von AMD können wir es bereits erreichen.Eine APU ist eine CPU mit einer integrierten GPU.

Ich denke, die eigentliche Antwort auf Ihre Frage lautet: GPUs werden nicht zu CPUs, sondern CPUs verfügen über eine integrierte GPU.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top