Frage:
Warum verbraucht die GPU so viel Strom?
Luke Taylor
2020-07-22 21:16:36 UTC
view on stackexchange narkive permalink

Ich versuche zu verstehen, warum GPUs so viel Strom verbrauchen.Der maximale Stromverbrauch der P100-GPU beträgt beispielsweise 250 W.

Nach meinem Verständnis ist Leistung ein Maß in Watt als Strom x Spannung .Bei einer festen Stromquelle (d. H. Spannung) würde ich annehmen, dass GPUs viel Strom ziehen.Wenn ich das richtig verstehe, warum zieht eine GPU so viel Strom?

Ich denke, GPUs bestehen hauptsächlich aus Transistoren?Warum führt die Konfiguration von Transistoren in einer GPU dazu, dass mehr Strom verbraucht wird als in einer CPU?

Danke!

TU106 hat 10 Milliarden Transistoren.Wenn jeder Transistor 10 Nanoampere benötigt, sind das 100A.
Eine GPU ist viel größer als eine CPU, das ist der erste Hinweis.
Weil sie in kurzer Zeit viel tun?Eine moderne GPU ist heutzutage wahrscheinlich der leistungsstärkste Spezialcomputer, der sterblichen Männern zur Verfügung steht.
Im Wesentlichen sind die Gründe für den Stromverbrauch von GPUs [dieselben wie für CPUs] (https://electronics.stackexchange.com/questions/258724/why-do-cpus-need-so-much-current).Top-GPUs sind größer als CPUs, mit denen Sie sie vergleichen, und benötigen daher mehr Leistung.
@ThorbjørnRavnAndersen Colossus CG2-Chips werden auch an Sterbliche verkauft.
@DmitryGrigoryev Ich würde es wagen, dass mehr Mortalt Grafikkarten kaufen als diese.
Beachten Sie, dass High-End-CPUs genauso leistungshungrig sind wie High-End-GPUs.Aktuelle Ryzen Threadripper-CPUs sind [mit ca. 280 W bewertet] (https://en.wikipedia.org/wiki/List_of_AMD_Ryzen_microprocessors#Zen_2_based).
Die Prämisse der Frage ist unklar.Sie fragen, GPUs verbrauchen so viel Strom im Vergleich zu was?Eine durchschnittliche CPU bei einer durchschnittlichen Arbeitslast?Eine CPU, die die gleiche Berechnungsrate wie eine GPU ausführt?Etwas anderes?
Leider kann ich keine Antwort darauf hinzufügen, da es geschützt ist, aber die kurze Antwort lautet: Die bessere Frage ist, warum sie so wenig Strom verbrauchen.GPUs sind in Bezug auf die Leistung pro FLOPS mit Abstand das energieeffizienteste Rechengerät für den Massenmarkt.Eine High-End-CPU verfügt über einige Dutzend Kerne.Eine High-End-GPU hat mehrere tausend.Und die Antwort auf diese Frage lautet: "Weil ihre Kerne im Vergleich zu CPU-Kernen sehr einfach sind und so konzipiert sind, dass sie die gleiche Gleitkomma-Mathematik für große Datenmengen sehr gut ausführen können und für nichts anderes sehr gut sind."Sie benötigen so ziemlich ein FPGA oder einen ASIC, um sich zu verbessern.
(Wenn dies ungeschützt bleibt, können Sie mich gerne anpingen und ich werde versuchen, eine richtige Antwort zu schreiben, die nicht in einem Kommentar enthalten ist.)
Fünf antworten:
jusaca
2020-07-22 21:22:10 UTC
view on stackexchange narkive permalink

Eine GPU ist im Grunde eine Menge vereinfachter CPUs parallel.Jeder von ihnen ist nicht so leistungsfähig und flexibel wie eine echte CPU, aber es gibt Tausende von ihnen, die diese massive parallele Rechenleistung bieten.

Dies bedeutet aber auch, dass für den Aufbau einer modernen GPU viele Milliarden Transistoren erforderlich sind.Und für Logikchips verwenden wir FETs, sodass bei jedem Taktzyklus alle Milliarden Gate-Kapazitäten geladen und entladen werden müssen.Hier fließt die große Menge an Energie.

Abhängig davon, welche Berechnungen ausgeführt werden, schaltet nicht jeder Transistor jeden Zyklus. (z. B. ist eine Ausführungseinheit wahrscheinlich inaktiv, wenn eine andere beschäftigt ist, aber normalerweise schaltet die eine oder andere, so dass die durchschnittliche Bruchumschaltung wahrscheinlich ähnlich ist).Und es gibt auch Leckstrom (statische Leistung) von so vielen Transistoren, einschließlich solcher, die selten schalten (z. B. in Cache-Arrays).Nur Leerlaufzustände mit geringem Stromverbrauch, die die Stromversorgung von Teilen des Chips vollständig unterbrechen, können dies vermeiden, und es dauert einige Zeit, bis sie aus solchen Zuständen aufwachen, damit sie nicht zu aggressiv verwendet werden können.Clock-Gating hilft bei kurzen Leerlaufzeiten ...
Aber ja, +1, dies ist eine nützliche Vereinfachung der Details.Riesenchips laufen heiß, weil selbst bei einer niedrigeren Frequenz als bei CPUs zur Maximierung der Berechnung pro Energie (anstelle der Single-Threaded-CPU-Leistung) immer noch ein Minimum erforderlich ist, und das ist eine Menge.
@PeterCordes sind wir tatsächlich schon irgendwo in der Nähe der theoretischen Grenze?
@John: Von Energie / Berechnung?Hölle nein, * viele * Größenordnungen.Für jedes gegebene Siliziumprozess- und Chipdesign gibt es jedoch eine Spannungs- und Frequenzkombination, die Energie / Berechnung minimiert, anstatt Zeit / Berechnung zu minimieren.Unterhalb dieses Punktes verschwenden Sie mehr Energie für Leckstrom als für dynamische Energie, möglicherweise weil Sie die Spannung nicht mehr fehlerfrei senken können.GPUs streben eine Annäherung an diesen Betriebspunkt an und geben nur mehr Transistoren aus. CPUs streben höhere Frequenzen an, da sie Probleme lösen müssen, die nicht nahezu perfekt parallelisiert sind.
@JohnDvorak In Bezug auf die theoretische Grenze ist der zu überprüfende Begriff "Landauer-Prinzip".Und wie Peter sagte, haben wir noch einen langen Weg vor uns, bevor wir uns dem nähern.
TimWescott
2020-07-22 21:53:00 UTC
view on stackexchange narkive permalink

Diese Frage fragt, warum ein schnellerer Takt in einer bestimmten CPU mehr Leistung erfordert und eine Reihe wirklich guter Antworten hat.

Nehmen Sie diese Antworten und fügen Sie ihnen die Tatsache hinzu, dass der Stromverbrauch nicht nur darauf zurückzuführen ist, wie schnell die betreffende Logik umschaltet, sondern auch darauf, wie viel davon vorhanden ist - und eine GPU hat sehr viel Logik.Alles wechselt wahnsinnig, wenn es hart bei der Arbeit ist.

user1850479
2020-07-22 21:20:05 UTC
view on stackexchange narkive permalink

GPUs verbrauchen viel Strom, da sie eine große Anzahl von Transistoren haben, die mit hoher Frequenz schalten.

Im Vergleich zu einer High-End-GPU haben CPUs normalerweise viel weniger Transistoren, die zu jeder Zeit schalten, und benötigen daher nicht so viel Strom.Dies ist nicht immer der Fall. Sie können GPUs mit geringem Stromverbrauch und enorme Server-CPUs mit sehr hohem Strombedarf erhalten.

DKNguyen
2020-07-22 23:29:35 UTC
view on stackexchange narkive permalink

Eine GPU besteht aus vielen kleineren Prozessoren, die gleichzeitig parallel arbeiten.

Jeder Prozessor enthält viele Transistoren. Viele Prozessoren parallel bedeuten noch mehr Transistoren.

Jedes Mal, wenn ein Transistor schaltet, muss er eine parasitäre Kapazität im Transistor laden oder entladen. Je öfter ein Transistor schaltet, desto häufiger wird diese Kapazität geladen / entladen, was bedeutet, dass mehr Strom verbraucht wird. GPUs laufen schnell und wechseln daher sehr oft.

Die Tatsache, dass GPUs viele Transistoren enthalten, die gleichzeitig schalten (weil nicht nur ein Prozessor zu einem bestimmten Zeitpunkt arbeitet, sondern viele Prozessoren zu einem bestimmten Zeitpunkt) und das Schalten sehr oft sehr hohe Ströme zum Laden und Entladen bedeutet alle diese parasitären Kondensatoren gleichzeitig.

Ein normaler Prozessor ist komplexer und hat mehr Transistoren als jeder einzelne Prozessor in einer GPU, da er eine höhere Funktionalität aufweist, aber auch nur ein oder zwei Dinge gleichzeitig ausführt, sodass nur ein kleiner Teil der Transistoren vorhanden ist Schalten zu jedem Zeitpunkt.

user258330
2020-07-23 19:42:40 UTC
view on stackexchange narkive permalink

Hinweis: Dies ist als kurzer Kommentar zu der Antwort von @ user1850479 gedacht ( Warum verbraucht die GPU so viel Strom?). Der einzige Grund, warum es als "Antwort" existiert, ist, dass das Posten eines Kommentars 50 Reputationen erfordert, die ich nicht habe. Wenn jemand helfen möchte, indem er seinen Inhalt in einen (wahren) Kommentar an der entsprechenden Stelle kopiert, ist das für mich vollkommen in Ordnung und dieser Beitrag kann somit gelöscht werden. Eine Zuordnung oder Bestätigung ist nicht erforderlich. Lizenz: CC0 Danke. :)

Es ist auch erwähnenswert, dass CPUs, die Vektorbefehle ausführen (SSE-, AVX-Varianten), mehr Strom verbrauchen können, als sie sonst nur Standardbefehle ausführen würden. Dies kann beobachtet werden, indem 3D-Programme ausgeführt und gezwungen werden, Software-Rasterizer zu verwenden - im Wesentlichen, um die CPU zu zwingen, eine GPU-ähnliche Arbeitslast zu übernehmen - wie WARP oder SwiftShader, die normalerweise stark von Vektoranweisungen Gebrauch machen. Die Prozessoren von Intel verfügen sogar über eine AVX-spezifische Power Throttling-Funktion, die aktiviert wird, um den Prozessor innerhalb seiner Nennleistung TDP zu halten.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...