Hacker News new | ask | show | jobs
by Ace17 2034 days ago
"We’re so spoiled today. Every week a newer, faster processor is released. Hardware gets cheaper and we can just throw more chips at the problem."

I've been running a 3.5GHz CPU (with 4 HT cores) for nearly 10 years.

That's a lot of weeks. Surely, today, I should be able to buy a 10GHz CPU, right? :D

7 comments

Yeah, the guy is living in some alternate reality. E.g., here on planet Earth low- and mid-range consumer laptops have been getting slower, not faster over the years. (Yeah, they're lighter and more power-efficient, but that's orthogonal.)

Same deal with servers: AWS and Azure are dog-slow compared to the on-premises server hardware we'd have before "the cloud".

>Yeah, the guy is living in some alternate reality.

How so?

(I'm talking from desktop perspective)

I'm following tech news and it feels like there's always news about AMD releasing new stuff or Intel trying to catch up

I bought my 8 cores CPU for +-125$ of _my_currency_ year ago which was unbelievable like 3? years ago. Meanwhile I'm still far behind of what's on the edge.

Also nowadays I can spend like 60$ of _my_currency to get insanely fast NVMe M2 disks, so things are cheap nowadays I guess.

Maybe if you stick with Intel. My AMD "budget" laptop (Ryzen 4500U, 6 cores) blows away a much more expensive Intel laptop I bought only 2 years ago. It was less than half the price.
I think that this is wrong perspective. The computers that you and I are using right now on our desks does not get slower. A CPU running 3.6GHz will still be running at 3.6GHz in a few years time. The moving target is software.
3.6GHz from 10 years ago and 3.6GHz from today aren't the same though. Modern processors have way more specialized hardware for common tasks that weren't common a decade ago.

Yes, the compute cores are going at the same speed. But you aren't getting the significant advantage of other hardware optimizations.

Just look at the M1 benchmarks for goodness sake. (A bit unfair because it's RISC-V based, but even x86 hardware has improved enormously in the last decade.)

>even x86 hardware has improved enormously in the last decade.

No, it really hasn't! My ancient x220 is still as fast as, or faster than almost all pre 2020 laptops. By contrast, hardware in the period of time ~9 years before 2011 when I bought it is absurdly slower to the point of unusability. Same story with my threadripper versus my 2009 era desktop. For single threaded stuff, not IO bound, they're subjectively about the same. If I need a lot of threads, big memory or big IO, the recent machine is comically faster (like 100-1000x), but lots of things are single thread bound. Again if I take the leap back in time separating the threadripper from my 2009 era machine; there were huge improvements in performance; imagine trying to compile something on a 1998 era tower like OP did.

M1 isn't RISC-V, but a custom ARM.
The R in ARM is for RISC.
So what?

RISC-V is a specific (RISC-based) ISA. ARM is a family of RISC-architectures, which does not include RISC-V.

Apple's M1 is an ARM SoC. It does not use RISC-V.

You pretty much summed up the major misconception of how CPUs work (and get faster) these days. It's not about cores or clocking speed.
Can you elaborate on how CPUs work then? I'm curious what matters if clock speed and core count doesn't.
One way might be better architectures, like we are now seeing with the M1.

That said, I would also dispute that increasing core count doesn't matter. That does seem to be the main way to get more computing power.

operations per second is what ultimately matters.
How do ops/s relate to clock speed, core count and architecture (x nm) then?
Lets be even more abstract. What matters is useful work per second.

That metric is a function of clock speed, core count, lithography process, but also how many cycles each instruction takes to execute (e.g. how many cycles for an add), the instruction level parallelism in each core, branch prediction, memory architecture and caching, instruction set architecture (ISA) and its implementation, available cooling and more.

For example, by optimizing the number of cycles per instruction, increasing instruction level parallelism and branch prediction you can get a significant boost in performance, as witnessed by the massive jump[1] from the 486DX2 66Mhz to the Pentium 60 (also at 66Mhz in the video below).

[1]: https://www.youtube.com/watch?v=NLrKxWL73Mw

The simplest thing you can do to make a processor faster is to have faster memory. Usually this means bigger caches or wider memory buses.

You can decode more instructions at the same time. In theory there is no limit to how many instructions you can decode at once.

Those decoded instructions end up in a buffer and execution units can process them if there are no data dependencies. You can add as many execution units as you like if there is enough work for them.

You can avoid performance destroying events like pipeline stalls by predicting the execution flow of instructions. Better branch prediction means less performance is lost.

None of these have anything to do with clock speed.

(All benchmarks mentioned are from Geekbench, I don't know how methodologically sound they are).

I don't know which CPU you're actually using, but taking the i7 990x (3.5GHz, 6 cores etc. - $1k back in '11) as a reference, single threaded performance at the cutting edge has increased by roughly a factor of 2 to 3 - 7GHz enough for you?

The AMD 5950X is currently the meanest desktop chip on the market, across multithreaded workloads it's something like a factor of 6.5 faster than the i7. Sure it's got 12 more cores, but it does all that for less power at boost than the i7's nominal TDP.

Include modern memory and storage into the equation, and we've come quite a long way, and it's only going to get better now that Intel are desperate, AMD are finally back, and Apple have demonstrated ARM is good enough to displace x86.

Modern processors have not just increased in core count, but also in how efficient their pipelining, parallelizing, and instruction reordering is. We used to measure CPUs by cycles/instruction, but modern CPUs have inverted that relationship and now we can execute several instructions per cycle, so each cycle is actually doing more even if we can't squeeze more cycles in per second.
You can buy 32 core 3.5 GHz CPU :)
That's orthogonal. You could always scale performance by throwing money at it in the past; the issue here is the promise of "free" performance improvements just by virtue of the natural upgrade cycle.
I'm pretty sure 32 core 3.5 Ghz CPU wasn't available at all for PC in 2010.
I believe the point of the poster you replied to was that if you have software running at speed X it won't get particularly faster if you run the same software on a 32-core CPU. Not if the original system also ran at 3.5GHz. I.e. it doesn't get magically faster by throwing more cores at it. It could get faster by better or faster caches etc, and that's valid, but the additional cores don't magically help.
That depends on the software. Compiling C++ is basically linear with the number of cores for example.
If you mean that compiling gets faster.. then yes, with 'make -j' it will. But that you're compiling C++ has nothing to do with it, except that (as with most other modern languages) you have individual components which can be compiled in parallel. But this is hardly what the grandparent meant by automatically getting a speed boost just by executing existing software on a newer system.
Well, no.

When people talk of "Moore's law", they really imply that there's a huge class of problems that get solved automatically just because transistors get smaller and smaller.

This hasn't been true for a long while now. Yes, technology get better with time, but we don't get things like 32 cores in a PC just because transistors shrunk; smart people worked really hard to optimize this stuff.

TL;DR - there's no more free lunch in computing anymore.

> smart people worked really hard to optimize this stuff

This was always the case, it was just simpler before. Lunch was never free, it's just getting a few percent more expansive every year.

Are you suggesting that processor speed is solely a function of clock speed?
Given the improvements in IPC over ten years it is not that far off. If your workload can spread over more cores then that level was exceeded long ago.