Thursday, 15 April 2010

Contemplating future Programming Languages, part 1

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...

No comments:

Post a Comment