19
\$\begingroup\$

I am trying to understand why GPUs consume so much power. For example, the max power consumption of the P100 GPU is 250W.

As I understand power is measures in watts as current x voltage. Given a fixed power source (i.e. voltage), I would assume that GPUs draw a lot of current. If I understand this correctly, why does a GPU draw so much current?

I think GPUs mostly consist of transistors? So why does the configuration of transistors in a GPU lead to more power being consumed than in a CPU?

Thanks!

\$\endgroup\$
10
  • 18
    \$\begingroup\$ TU106 has 10 billion transistors. If each transistor needs 10 nanoamps, that's 100A. \$\endgroup\$ – J... Jul 23 '20 at 0:54
  • 11
    \$\begingroup\$ A GPU is a lot bigger than a CPU, that's the first clue. \$\endgroup\$ – Mast Jul 23 '20 at 6:57
  • 4
    \$\begingroup\$ Because they do a lot in a short time? A modern GPU is most likely the most powerful special purpose computer available to mortal men these days. \$\endgroup\$ – Thorbjørn Ravn Andersen Jul 23 '20 at 8:33
  • 6
    \$\begingroup\$ Essentially the reasons for GPUs power consumption are the same as for CPUs. Top GPUs are bigger than CPUs you compare them with, and thus need more power. \$\endgroup\$ – Dmitry Grigoryev Jul 23 '20 at 9:09
  • 3
    \$\begingroup\$ Note that high-end CPUs are just as power-hungry as high-end GPUs. Current Ryzen Threadripper CPUs are rated at around 280 W. \$\endgroup\$ – TooTea Jul 23 '20 at 17:02
39
\$\begingroup\$

A GPU is basically a LOT of simplified CPUs in parallel. Each of them is not as capable and flexible as a real CPU, but there are thousands of them to give this massive parallel computing performance.

But this also means that it takes many billions of transistors to build a modern GPU. And for logic chips we use FETs, so with every clock cycle all the billions of gate capacitances have to be charged and discharged. This is where the large amount of power is going.

\$\endgroup\$
5
  • \$\begingroup\$ Depending on what computations are running, not every transistor switches every cycle. (e.g. some execution unit is probably idle if another one is busy, but usually one or the other is switching so the average fraction switching is likely similar). And there's also leakage current (static power) from that many transistors, including ones that rarely switch (e.g. in cache arrays). Only low-power idle states that fully cut power to parts of the chip can avoid that, and it takes time to wake up from such states so they can't be used too aggressively. Clock-gating helps for short idles... \$\endgroup\$ – Peter Cordes Jul 23 '20 at 4:08
  • 4
    \$\begingroup\$ But yes, +1, this is a useful simplification of the details. Giant chip runs hot because even at a lower frequency than CPUs to maximize computation per energy (instead of single-threaded CPU performance), it still takes some minimum, and summed up that's a lot. \$\endgroup\$ – Peter Cordes Jul 23 '20 at 4:10
  • \$\begingroup\$ @PeterCordes are we actually anywhere close to the theoretical limit yet? \$\endgroup\$ – John Dvorak Jul 23 '20 at 17:23
  • 1
    \$\begingroup\$ @John: Of energy/computation? Hell no, many orders of magnitude. But for any given silicon process and chip design, there's some voltage and frequency combination that minimizes energy / computation, rather than minimizing time / computation. Below that point you're wasting more energy on leakage current than you save on dynamic power, perhaps because you can't lower voltage any more without errors. GPUs aim for closer to that operating point and just spend more transistors, CPUs aim for higher frequencies because they need to deal with problems that don't parallelize nearly perfectly. \$\endgroup\$ – Peter Cordes Jul 23 '20 at 17:43
  • \$\begingroup\$ @JohnDvorak Regarding the theoretical limit the term to check is "Landauer's principle". And as Peter said, we have a long way to go before we approach that. \$\endgroup\$ – jusaca Jul 23 '20 at 18:59
8
\$\begingroup\$

This question asks why a faster clock in a given CPU requires more power, and has a number of really good answers.

Take those answers, and add to them the fact that the power consumption is a consequence of not just how fast the logic involved is switching, but how much of it there is -- and a GPU has lots and lots of logic, all of it switching madly when it's hard at work.

\$\endgroup\$
7
\$\begingroup\$

GPUs consume a lot of power because they have a large number of transistors switching at high frequency.

Relative to a high end GPU, CPUs usually have many fewer transistors switching at any time and so do not require as much power. This is not always true, you can get low power GPUs and enormous server CPUs with very high power requirements.

\$\endgroup\$
7
\$\begingroup\$

A GPU is a many, smaller processors operating simultaneously in parallel.

Each processor contains a lot of transistors. Many processors in parallel means even more transistors.

Every time each transistor switches, it must charge or discharge a parasitic capacitance inside the transistor. So the more often a transistor switches, the more often this capacitance is charged/discharged which means the more power is consumed. GPUs run fast so they switch very often.

So the fact that GPUs contain many transistors switching at the same time (because it's not just one processor operating at any one instant, its many processors operating at any one instant) and switching very often means very high currents to charge and discharge all those parasitic capacitors simultaneously.

A normal processor is more complex and has more transistors than than any single processor inside a GPU since it is has higher functionality, but it is also doing only one or two things at a time so only a small fraction of the transistors are switching at any point in time.

\$\endgroup\$
6
\$\begingroup\$

Note: This is intended as a short comment on the answer posted by @user1850479 (Why does GPU consume so much power?); the only reason it exists as an "answer" is that posting a comment requires 50 reputation, which I do not have. If anyone wants to help out by copying its contents to a (true) comment in the appropriate place, it's perfectly fine by me and this post can thus be deleted. No attribution nor acknowledgement is necessary. License: CC0 Thanks. :)


It's also worth noting that CPUs executing vector instructions (SSE, AVX variants) can draw more power than they otherwise would just executing standard instructions. This can be observed by running 3D programs and forcing them to use software rasterizers -- in essence, forcing the CPU to take on a GPU-like workload -- such as WARP or SwiftShader, which usually make heavy use of vector instructions. Intel's processors even have AVX-specific power throttling functionality that kicks in to keep the processor within its rated TDP.

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.