Live data from Hacker News

Why has CPU frequency ceased to grow? (2014)

software.intel.com

251–260 of 301 posts

Re: Why has CPU frequency ceased to grow? (2014)

#251
post #68
post #42

Earlier quoted context omitted.

"there hasn't emerged a "parallel-by-default C++" kind of language + hardware system to exploit it" That's roughly what Intel tried with Itanium. I don't know if whatever barriers they hit are still barriers today.

Not really - Itanium tried to move the instruction-level parallelism and the burden of re-ordering execution to the compiler. You could only execute the maximum six instructions per cycle if there were no data dependencies. So it only really works for certain kinds of algorithmic data-heavy execution; that's why VLIW is only found in DSP architectures today. Good SE answer here: https://softwareengineering.stackexcha…

"Itanium tried to move the instruction-level parallelism and the burden of re-ordering execution to the compiler"

That sounds a lot like "parallel-by-default C++" kind of language + hardware system to exploit it"

Just swapping "compiler" for language. They didn't succeed, but they did try

Edit: helping me understand where I'm off might be more helpful than a downvote. Does swapping "compiler" for "language" not respresent what Intel was trying to do?

Re: Why has CPU frequency ceased to grow? (2014)

#252
post #8

I took a class that went over this in depth like 3-4 years ago. Basically the message was that serial performance is saturating, and the only way to get speed improvements in the future is going to be by exploiting parallelism. However, most programmers, and programming languages, remain stuck in a serial-by-default paradigm. I'm surprised that there hasn't emerged a "parallel-by-default C++" kind of language + hardw…

https://golang.org/ In case you dont know, Golang goroutines are a marvel of parallelism. They are coroutines which are dispatched on a few OS threads. So you can use 100% of a multi-cores CPU and yet, spawn, say, 10K of those light threads without worrying about context switches PLUS have them all run concurrently. I've found that golang is one of those rare language, like Lisp, that actually change the way you thin…

>marvel of parallelism

If Go's m:n is blowing your mind, you should check out Erlang. Spawning a million "processes" is not a big deal.

Re: Why has CPU frequency ceased to grow? (2014)

#253
post #142

I understand that companies heavily invested in silicon would like to portray it that way, but CPU frequencies haven't ceased to grow. DARPA manufactured a THz transistor made of InP back in 2014. Silicon isn't the only semiconductor in nature, and others are actively being researched. Also, "when you increase the frequency you increase the power" (which is their argument) doesn't explain why they can't increase the…

Transistor switching frequency has almost nothing to do with processor clock speeds which are almost entirely limited by wire RC delay. You will get increased drive currents by switching to higher mobility materials but the performance improvement over strained silicon isn't that large.

That's just a plumbing problem which can be solved by lowering temperature or using a different material with lower resistivity. Yes, it'll probably cost more, but it's a problem that can readily be solved.

But if your switching frequency is slow, it doesn't matter if you use a superconductor for wires. It is the switching frequency that truly determines the limits for gate times, which in turn determines how fast your CPU is.

For the record, SiGe is also very promising in terms of switching speeds. There were experiments which shows near THz frequencies.

Re: Why has CPU frequency ceased to grow? (2014)

#254
post #239
post #165

Earlier quoted context omitted.

I kinda regret adding the note about performance, because switching to a lower level language used to yield orders of magnitude more performance, but optimizers have evolved and today there's not much difference. Sometimes the higher level language will be even faster because of optimizations. And bad performance is often not to blame on the language, instead blame the programmer or more likely the business people as…

used to yield orders of magnitude more performance, but optimizers have evolved and today there's not much difference. If this were true, you'd expect see a lot more native python and the like.

Python is interpreted so super optimizing compilers, SIMD auto vectorization and other recent goodies necessary to get that performance won't work.

Re: Why has CPU frequency ceased to grow? (2014)

#255
post #7

Seems like an incredibly long winded way of saying 'To go faster you either need to split up each instruction into lots of parts or increase the voltage for the transisters. We've split the instructions as much as we can, and power consumption is proportional to Voltage cubed, so it's not a scalable plan.'

More importantly than mere power consumption, we don't have a way to remove the waste heat generated. Dennards law (like Moore's law but for power consumption per transistor) ended 10 years ago. Exactly the same time clock speeds stopped improving. There are actually a few computers out there that run around 10Ghz but they all have impractical cooling systems. If there ever were a return to exponential scaling, we wo…

> If there ever were a return to exponential scaling, we would very soon run into the Launder limit.

No we wouldn't. We're around ~10,000X off and would run into thermal danger zones long before.

Re: Why has CPU frequency ceased to grow? (2014)

#256
post #253

Earlier quoted context omitted.

Transistor switching frequency has almost nothing to do with processor clock speeds which are almost entirely limited by wire RC delay. You will get increased drive currents by switching to higher mobility materials but the performance improvement over strained silicon isn't that large.

That's just a plumbing problem which can be solved by lowering temperature or using a different material with lower resistivity. Yes, it'll probably cost more, but it's a problem that can readily be solved. But if your switching frequency is slow, it doesn't matter if you use a superconductor for wires. It is the switching frequency that truly determines the limits for gate times, which in turn determines how fast yo…

>That's just a plumbing problem which can be solved by lowering temperature or using a different material with lower resistivity. Yes, it'll probably cost more, but it's a problem that can readily be solved.

No it's not. What is this magical material with ultra low resistance? And how do you plan to reduce capacitance?

Btw, manufacturing terahertz speed transistors is very difficult. There are Mott FETs which will switch at 10 terahertz, but they're incredibly hard to manufacture and very power hungry.

Re: Why has CPU frequency ceased to grow? (2014)

#257
post #72

My senior design course focused on asynchronous (clock-less) cryptography circuits; after learning of these, I looked into asynchronous general purpose processors, and learned that ARM actually designed an asynchronous processor back in the 2000's [0]. While they've never quite taken off (the extra gates decrease speed and our harder to manufacture), with the recent side-channel attacks on processor pipelines, I've b…

Wouldn't asynchronous CPUs increase the amount of side-channels? AFAIK in an asynchronous circuit every aspect of the calculation may affect the time it takes to complete.

Nope. In fact EMI and differential power analysis based approaches are actually heavily mitigated in asynchronous, as is bus snooping.

Re: Why has CPU frequency ceased to grow? (2014)

#258

My senior design course focused on asynchronous (clock-less) cryptography circuits; after learning of these, I looked into asynchronous general purpose processors, and learned that ARM actually designed an asynchronous processor back in the 2000's [0]. While they've never quite taken off (the extra gates decrease speed and our harder to manufacture), with the recent side-channel attacks on processor pipelines, I've b…

Shameless plug, we at Vathys run asynchronous: https://youtu.be/4nSn0JhZX18

Re: Why has CPU frequency ceased to grow? (2014)

#259

Earlier quoted context omitted.

More importantly than mere power consumption, we don't have a way to remove the waste heat generated. Dennards law (like Moore's law but for power consumption per transistor) ended 10 years ago. Exactly the same time clock speeds stopped improving. There are actually a few computers out there that run around 10Ghz but they all have impractical cooling systems. If there ever were a return to exponential scaling, we wo…

> If there ever were a return to exponential scaling, we would very soon run into the Launder limit. No we wouldn't. We're around ~10,000X off and would run into thermal danger zones long before.

BUT....The Launder limit is over optimistic because unless your computer runs at absolute zero you need to keep redundant copies of each bit for error correction. Transistors are implicitly error correcting in the sense that each bit is represented by a current of a few thousand electrons.

Factoring in the redundancy requirement we are likely only off by somewhere between 100x and 1000x. If there were ever a return to exponential technological improvement, we would run out of road after a few years.

Re: Why has CPU frequency ceased to grow? (2014)

#260
post #8

I took a class that went over this in depth like 3-4 years ago. Basically the message was that serial performance is saturating, and the only way to get speed improvements in the future is going to be by exploiting parallelism. However, most programmers, and programming languages, remain stuck in a serial-by-default paradigm. I'm surprised that there hasn't emerged a "parallel-by-default C++" kind of language + hardw…

https://golang.org/ In case you dont know, Golang goroutines are a marvel of parallelism. They are coroutines which are dispatched on a few OS threads. So you can use 100% of a multi-cores CPU and yet, spawn, say, 10K of those light threads without worrying about context switches PLUS have them all run concurrently. I've found that golang is one of those rare language, like Lisp, that actually change the way you thin…

> golang is one of those rare language

Not sure how rare, .NET does that as well. Below is your sample translated to C#. It requires C# 7.1 because async main, but the rest of the stuff is available for many years, since 2010.

    static async Task routine()
    {
        await Task.Delay(TimeSpan.FromSeconds(1));
    }

    static Task Main()
    {
        return Task.WhenAll(Enumerable.Range(0, 1000).Select(i => routine()));
    }
Post reply on HN