Domanda:
Perché la GPU consuma così tanta energia?
Luke Taylor
2020-07-22 21:16:36 UTC
view on stackexchange narkive permalink

Sto cercando di capire perché le GPU consumano così tanta energia.Ad esempio, il consumo energetico massimo della GPU P100 è 250 W.

Da quanto ho capito, la potenza è misurata in watt come corrente x tensione .Data una fonte di alimentazione fissa (cioè tensione), presumo che le GPU assorbano molta corrente.Se lo capisco correttamente, perché una GPU assorbe così tanta corrente?

Penso che le GPU siano costituite principalmente da transistor?Allora perché la configurazione dei transistor in una GPU comporta un consumo di energia maggiore rispetto a una CPU?

Grazie!

TU106 ha 10 miliardi di transistor.Se ogni transistor necessita di 10 nanoamp, significa 100A.
Una GPU è molto più grande di una CPU, questo è il primo indizio.
Perché fanno molto in poco tempo?Una GPU moderna è molto probabilmente il computer per scopi speciali più potente disponibile per gli uomini mortali in questi giorni.
Essenzialmente le ragioni del consumo energetico delle GPU sono [le stesse delle CPU] (https://electronics.stackexchange.com/questions/258724/why-do-cpus-need-so-much-current).Le migliori GPU sono più grandi delle CPU con cui le confronti e quindi richiedono più potenza.
@ThorbjørnRavnAndersen Colossus CG2 vengono vendute anche ai mortali.
@DmitryGrigoryev Azzarderei che più mortalt compri le schede grafiche di quella.
Tieni presente che le CPU di fascia alta sono altrettanto assetate di energia delle GPU di fascia alta.Le attuali CPU Ryzen Threadripper sono [valutate a circa 280 W] (https://en.wikipedia.org/wiki/List_of_AMD_Ryzen_microprocessors#Zen_2_based).
La premessa della domanda non è chiara.Stai chiedendo alle GPU di consumare così tanta energia _ rispetto a cosa_?Una CPU media con un carico di lavoro medio?Una CPU che esegue la stessa velocità di calcolo di una GPU?Qualcos'altro?
Sfortunatamente, non posso aggiungere una risposta a questo perché è protetto, ma la risposta breve è: la domanda migliore è perché usano così poco potere.Le GPU sono facilmente il dispositivo di calcolo del mercato di massa più efficiente dal punto di vista energetico in termini di potenza per FLOPS.Una CPU di fascia alta ha poche dozzine di core.Una GPU di fascia alta ha _several mille_.E la risposta a _quella_ domanda è "perché i loro core sono molto semplici rispetto ai core della CPU e progettati per essere molto bravi a fare la stessa matematica in virgola mobile su grandi set di dati e non molto bravi in nient'altro".Hai praticamente bisogno di un FPGA o di un ASIC per migliorare.
(Se questo non viene protetto, sentiti libero di inviarmi un ping e cercherò di scrivere una risposta corretta non in un commento.)
Cinque risposte:
jusaca
2020-07-22 21:22:10 UTC
view on stackexchange narkive permalink

Una GPU è fondamentalmente un SACCO di CPU semplificate in parallelo.Ognuno di loro non è capace e flessibile come una vera CPU, ma ce ne sono migliaia per offrire queste enormi prestazioni di calcolo parallelo.

Ma questo significa anche che sono necessari molti miliardi di transistor per costruire una GPU moderna.E per i chip logici utilizziamo i FET, quindi con ogni ciclo di clock tutti i miliardi di capacità del gate devono essere caricati e scaricati.È qui che va a finire la grande quantità di energia.

A seconda dei calcoli in esecuzione, non tutti i transistor commutano ogni ciclo. (ad esempio, alcune unità di esecuzione sono probabilmente inattive se un'altra è occupata, ma di solito l'una o l'altra sta cambiando, quindi la commutazione della frazione media è probabilmente simile).E c'è anche corrente di dispersione (potenza statica) da tanti transistor, compresi quelli che cambiano raramente (ad esempio negli array di cache).Solo gli stati di inattività a basso consumo che interrompono completamente l'alimentazione a parti del chip possono evitarlo e ci vuole tempo per svegliarsi da tali stati in modo che non possano essere utilizzati in modo troppo aggressivo.Il clock-gating aiuta per brevi periodi di inattività ...
Ma sì, +1, questa è un'utile semplificazione dei dettagli.Il chip gigante si surriscalda perché anche a una frequenza inferiore rispetto alle CPU per massimizzare il calcolo per energia (invece delle prestazioni della CPU a thread singolo), ci vuole comunque un po 'di minimo, e in conclusione è molto.
@PeterCordes siamo ancora vicini al limite teorico?
@John: Di energia / calcolo?Diavolo no, * molti * ordini di grandezza.Ma per qualsiasi processo al silicio e progettazione di chip, esiste una combinazione di tensione e frequenza che riduce al minimo l'energia / calcolo, piuttosto che ridurre al minimo il tempo / il calcolo.Sotto quel punto stai sprecando più energia sulla corrente di dispersione di quanto risparmi sulla potenza dinamica, forse perché non puoi più abbassare la tensione senza errori.Le GPU mirano ad avvicinarsi a quel punto operativo e spendono solo più transistor, le CPU mirano a frequenze più alte perché devono affrontare problemi che non si parallelizzano quasi perfettamente.
@JohnDvorak Per quanto riguarda il limite teorico il termine da controllare è "principio di Landauer".E come ha detto Peter, abbiamo ancora molta strada da fare prima di avvicinarci a questo.
TimWescott
2020-07-22 21:53:00 UTC
view on stackexchange narkive permalink

Questa domanda chiede perché un orologio più veloce in una data CPU richiede più potenza e ha un numero di risposte davvero buone.

Prendi queste risposte e aggiungi loro il fatto che il consumo di energia è una conseguenza non solo della velocità con cui la logica coinvolta cambia, ma di quanta ne è presente - e una GPU ha moltissima logica,tutto cambia all'impazzata quando è al lavoro.

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

Le GPU consumano molta energia perché hanno un gran numero di transistor che commutano ad alta frequenza.

Rispetto a una GPU di fascia alta, le CPU di solito hanno molti meno transistor che cambiano in qualsiasi momento e quindi non richiedono tanta potenza.Questo non è sempre vero, puoi ottenere GPU a bassa potenza e enormi CPU per server con requisiti di alimentazione molto elevati.

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

Una GPU è composta da molti processori più piccoli che operano simultaneamente in parallelo.

Ogni processore contiene molti transistor. Molti processori in parallelo significano ancora più transistor.

Ogni volta che ogni transistor commuta, deve caricare o scaricare una capacità parassita all'interno del transistor. Quindi più spesso un transistor commuta, più spesso questa capacità viene caricata / scaricata, il che significa che più energia viene consumata. Le GPU funzionano velocemente, quindi cambiano molto spesso.

Quindi il fatto che le GPU contengano molti transistor che commutano contemporaneamente (perché non è solo un processore che opera in un istante, i suoi numerosi processori funzionano in un istante) e che cambiano molto spesso significa correnti molto elevate da caricare e scaricare tutti quei condensatori parassiti contemporaneamente.

Un normale processore è più complesso e ha più transistor di qualsiasi singolo processore all'interno di una GPU poiché ha funzionalità più elevate, ma fa anche solo una o due cose alla volta, quindi solo una piccola parte dei transistor lo sono cambiare in qualsiasi momento.

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

Nota: questo è da intendere come un breve commento alla risposta pubblicata da @ user1850479 ( Perché la GPU consuma così tanta energia?); l'unico motivo per cui esiste come "risposta" è che pubblicare un commento richiede 50 reputazione, che io non ho. Se qualcuno vuole dare una mano copiando il suo contenuto in un (vero) commento nel posto appropriato, per me va benissimo e questo post può quindi essere cancellato. Non è necessaria alcuna attribuzione o riconoscimento. Licenza: CC0 Grazie. :)


Vale anche la pena notare che le CPU che eseguono istruzioni vettoriali (SSE, varianti AVX) possono assorbire più energia di quanto non farebbero altrimenti semplicemente eseguendo istruzioni standard. Questo può essere osservato eseguendo programmi 3D e costringendoli a utilizzare software rasterizer, in sostanza, costringendo la CPU ad assumere un carico di lavoro simile a una GPU, come WARP o SwiftShader, che di solito fa un uso massiccio di istruzioni vettoriali. I processori Intel hanno anche una funzionalità di limitazione della potenza specifica per AVX che si attiva per mantenere il processore entro il suo TDP nominale.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 4.0 con cui è distribuito.
Loading...