Here is a tricky question: What will the average CPU look like in 2020?
Will it be,
A: An evolution of current desktop CPUs? A number of powerful cores, all very good at maintaining high efficiency.
B: An evolution of console CPUs/Larrabee? A large number of cores that are very fast, but struggle with sub-optimal code.
C: An evolution of the GPU? A massive number of simple cores that are incredibly fast, but demand highly task and data parallelism to run at good levels of efficiency.
D: A hybrid of all three? Or how about something completely different?
It's pretty clear that the number of threads will be huge. Today, a Core i7 Gulftown runs 12 threads. A 32 core Larrabee would run 128 threads. A modern GPU runs 1,000s of threads.
But how wide will the pipe be? Each Larrabee core sports a 16+1 vector/scalar unit. And what about cache coherency?
I don't know the answer to any of these questions. But I have come to a conclusion:
Ultimately, how the hardware evolves isn't that important.
What keeps me up at night is how you drive that hardware...