The Power Wall
Notes
- This is section 1.7
- For years, we could count on the clock speed increasing annually or semiannually
- The graph on page 40 of the book, however shows that this growth stopped about 2004
- NOTE IN BOTH GRAPHS the y axis is logarithmic.
- Check out y=x with logarithmic y scale on desmos.com/calculator
- This graph shows power consumption decreasing about that point as well.
- But like most graphs in the book, it ends about 2012
- I found one on wikimedia commons: https://commons.wikimedia.org/wiki/File:CPU_clock_speed_and_Core_count_Graph.png
- Not verified, but I believe it from observation
- Note, the speed is still increasing but WAY SLOWER
- But also note the core count starts rising as the clock speed delta decreases.
- Why?
- We have reached our ability to cool the processor in the face of clock speed increase
- AND as we are discovering, we are having problems? generating/providing sufficient power to support the increase
- power ∝ 1/2 × capacitive load × voltage2 × frequency switched
- Power and temperature are related.
- Part of this equation discusses the power needed by a transistor
- Energy ∝ Capacitive load × Voltage2
- Capacitive load is the switch from 0 to 1 or 1 to 0
- So switching costs energy
- And the main equation says that if we switch faster, we need more power
- Over the years we have worked at reducing the power
- And we did quite well for a while.
- But our current transistor technology "leaks" power
- Or it uses more power then just what is required to switch.
- H&P state that 40% of power is leaked today (2017 version of the book, so at least 10 years old)
- I found a presentation on youtube I believe, "Why CPU Clock Speeds Stopped Increasing | The Power Wall & Dennard Scaling Explained", by Abhijit Pethe, at https://youtu.be/LH3Tvfx4Xbo?si=Kit0op78w88Wracf
- I can verify the first part of this (pipelining, ...)
- The second part matches H&P
- We still continue to work on this but we have switched to multicore
- We use the additional transistors
- But we don't switch any faster
- We can be faster only if we can use more cores
- Naively, this works fine (a video playing, our game running and reading mail) where each task uses a core
- Each task does not get faster
- But we can do more tasks simultaneously at the same speed.
- But parallel programming is hard
- Reasonable/Efficient parallel code is hard to write
- Think of group work, generally one person spends quite a bit of time making the group function efficiently
- Parallelism introduces several problems including non-determinism due to race conditions
- Solutions to these are possible but they introduce more complexity
- Parallelism also stresses other systems (memory, I/O, ...)
- Finally, some portions of computation are inherently sequential
- And that will eventually dominate in the computation
- Amdahl's law.
- Customized hardware is partially the solution
- Other materials for semiconductor construction
- Gallium Nitride, Silicone Carbide, Synthetic Diamonds
- And Quantum Computing, ...