In-depth-Analyse der Unterschied zwischen CPU und GPU
Ich habe die Suche nach der großen Unterschiede zwischen einer CPU und einer GPU, genauer die feine Linie, trennt die cpu und gpu. Zum Beispiel, warum nicht mehrere cpus statt einer gpu und Umgekehrt. Warum ist die gpu "schneller" Knirschen Berechnungen über die cpu. Was sind einige Arten von Dinge, die Sie tun können, und die andere nicht tun können oder tun, effizient ist und warum. Bitte antwortet nicht mit Antworten wie "Central processing unit" und " "Graphics processing unit". Ich bin auf der Suche für eine ausführliche technische Antwort.
Ihre Annahme, dass es eine "fine line" ist falsch. Ja, beide sind aus Silizium gefertigt.
poste bitte etwas sinnvolles zum nächsten mal.
gute Frage und gute Antworten, für diejenigen, die noch mehr erfahren möchten dann schauen Sie sich courseras Heterogene Parallele Programmierung, die über den Unterschied in GPUS und CPUS, die im ersten Abschnitt diskutiert Latenz und durch put-Optimierungen und mehr! coursera.org/course/hetero
poste bitte etwas sinnvolles zum nächsten mal.
gute Frage und gute Antworten, für diejenigen, die noch mehr erfahren möchten dann schauen Sie sich courseras Heterogene Parallele Programmierung, die über den Unterschied in GPUS und CPUS, die im ersten Abschnitt diskutiert Latenz und durch put-Optimierungen und mehr! coursera.org/course/hetero
InformationsquelleAutor Mike G | 2011-10-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
GPUs sind im Grunde Massiv-parallele Rechner. Sie arbeiten auch auf Probleme, die können großen Maßstab Daten Zersetzung und bieten Sie in Größenordnungen, die Beschleunigungen auf diese Probleme.
Jedoch, die einzelnen Recheneinheiten in einer GPU nicht entsprechen, eine CPU für die Allgemeine Leistung. Sie sind viel einfacher und haben keine Optimierungen wie lange pipelines, out-of-order-Ausführung und-instruction-level-parallelizaiton.
Sie haben auch andere Nachteile. Erstens, Sie müssen die Benutzer ein, denen Sie sich nicht darauf verlassen kann, es sei denn, Sie Steuern die hardware. Auch gibt es Overhead bei der übertragung der Daten vom Hauptspeicher auf die GPU, Speicher und zurück.
Also es hängt von Ihren Anforderungen ab: in einigen Fällen GPUs oder " dedicated processing units wie Tesla sind die klaren Gewinner, aber in anderen Fällen, Ihre Arbeit kann nicht zerlegt werden, um die volle Nutzung der GPU und die Gemeinkosten dann CPUs die bessere Wahl.
InformationsquelleAutor Nicholas Butler
Erste Uhr dieser demonstration:
http://www.nvidia.com/object/nvision08_gpu_v_cpu.html
Das war ein Spaß!
Also, was ist hier wichtig ist, dass die "CPU" gesteuert werden kann, führen Sie im Grunde eine Berechnung auf Befehl; Für die Berechnungen, die nichts miteinander zu tun, oder wo jede Berechnung ist stark abhängig von seinen Nachbarn (und nicht lediglich die gleichen operaton), benötigen Sie in der Regel eine vollständige CPU. Als ein Beispiel, die Erstellung eines großen C/C++ - Projekt. Der compiler hat zu Lesen, jedes token von jeder Quellcode-Datei in der Sequenz, bevor es verstehen kann, den Sinn des nächsten; Nur weil es viele von source-Dateien zu verarbeiten, Sie alle haben unterschiedliche Struktur, und so die gleichen Berechnungen gelten nicht für accros die source-Dateien.
Könnte man die Geschwindigkeit bei, bis, indem er mehrere, unabhängige CPU ' s, jede arbeitet auf eigene Dateien. Die Verbesserung der Geschwindigkeit um einen Faktor von X ist, dann müssen Sie X-CPU ' s, die kostet X-mal so viel wie 1 CPU.
Einige Arten von Aufgaben umfassen, die genau das gleiche Berechnung für jedes Element in einem Datensatz; Einige Physik-Simulationen wie folgt Aussehen; jeder Schritt, jedes 'element' in der simulation bewegen wird ein wenig; die 'Summe' der Kräfte durch seine unmittelbaren Nachbarn.
Da machst du die gleiche Berechnung auf einem großen Satz von Daten, können Sie einige der Teile einer CPU, sondern teilen anderen. (in der verlinkten Demo -, Luft-system, Ventile und Ziel weitergegeben werden; Nur die Fässer werden dupliziert, für jede paintball). Damit, X-Berechnungen benötigt weniger als X-mal die Kosten in der hardware.
Der offensichtliche Nachteil ist, dass die gemeinsam genutzte hardware bedeutet, dass man nicht sagen kann, eine Teilmenge der parallel-Prozessor, eine Sache zu tun, während eine andere Teilmenge tut etwas, was nicht verwandt ist. die zusätzliche Kapazität parallel gehen würde zu vergeuden, während die GPU führt eine Aufgabe und dann noch eine andere Aufgabe.
InformationsquelleAutor SingleNegationElimination