News for hackers. Stuff that matters.
Re:Apple’s new M1 Pro and M1 Max processors by dragontamer on Monday October 18, 2021 @04:15PM (#28911048)
The Apple cores are full custom, Apple-only designs.

The AWS Graviton are Neoverse cores, which are pretty good, but clearly these Apple-only M1 cores are above-and-beyond.

---------

That being said: these M1 cores (and Neoverse cores) are missing SMT / Hyperthreading, and a few other features I'd expect in a server product. Servers are fine with the bandwidth/latency tradeoff: more (better) bandwidth but at worse (highter) latencies.

Re:Apple’s new M1 Pro and M1 Max processors by carlhjerpe on Monday October 18, 2021 @04:39PM (#28911384)
My understanding is that you don't really need hyperthreading on a RISC CPU because decoding instructions is easier and doesn't have to be parallelised as with hyperthreading.
Re:Apple’s new M1 Pro and M1 Max processors by chasil on Monday October 18, 2021 @04:55PM (#28911598)
The DEC Alpha had SMT on their processor roadmap, but it was never implemented as their own engineers told the Compaq overlords that they could never compete with Intel.

"The 21464's origins began in the mid-1990s when computer scientist Joel Emer was inspired by Dean Tullsen's research into simultaneous multithreading (SMT) at the University of Washington."

https://en.wikipedia.org/wiki/Alpha_21464

Re:Apple’s new M1 Pro and M1 Max processors by dragontamer on Monday October 18, 2021 @04:49PM (#28911531)
Okay, the whole RISC thing is stupid. But ignoring that aspect of the discussion... POWER9, one of those RISC CPUs, has 8-way SMT. Neoverse E1 also has SMT-2 (aka: 2-way hyperthreading).

SMT / Hyperthreading has nothing to do with RISC / CISC or whatever. Its just a feature some people like or don't like.

RISC CPUs (Neoverse E1 / POWER9) can perfectly do SMT if the designers wanted.

Re:Apple’s new M1 Pro and M1 Max processors by socialdemocrat on Monday October 18, 2021 @06:49PM (#28912808)
Don’t think that is entirely true. Lots of features which exist on both RISC and CISC CPUs have different natural fit. Using micro-ops e.g. on a CISC is more important than in RISC CPU even if both benefit. Likewise pipelining has a more natural fit on RISC than CISC, while micro-op cache is more important on CISC than RISC.
Re:Apple’s new M1 Pro and M1 Max processors by dragontamer on Monday October 18, 2021 @06:58PM (#28912884)
I don't even know what RISC or CISC means anymore. They're bad, non-descriptive terms. 30 years ago, RISC or CISC meant something, but not anymore.

Today's CPUs are pipelined, out-of-order, speculative, superscalar, (sometimes) SMT, SIMD, multi-core with MESI-based snooping for cohesive caches. These words actually have meaning (and in particular, describe a particular attribute of performance for modern cores).

RISC or CISC? useful for internet flamewars I guess but I've literally never been able to use either term in a technical discussion.

-------

I said what I said earlier: this M1 Pro / M1 Max, and the ARM Neoverse cores, are missing SMT, which seems to come standard on every other server-class CPU (POWER9, Intel Skylake-X, AMD EPYC).

Neoverse N1 makes up for it with absurdly high core counts, so maybe its not a big deal. Apple M1 however has very small core counts, I doubt that Apple M1 would be good in a server setting... at least not with this configuration. They'd have to change things dramatically to compete at the higher end.

Re:Apple’s new M1 Pro and M1 Max processors by floatboth on Monday October 18, 2021 @09:16PM (#28913839)
Today RISC just means an ISA is fixed-length load-store. No uarch implications.
Re:Apple’s new M1 Pro and M1 Max processors by chasil on Monday October 18, 2021 @08:05PM (#28913429)
Here is one meaning:

Intel microcode updates added new machine opcodes to address spectre/meltdown exploits.

On a true RISC, that's not possible.

Re:Apple’s new M1 Pro and M1 Max processors by dragontamer on Monday October 18, 2021 @08:22PM (#28913550)
https://www.zdnet.com/article/meltdown-spectre-ibm-preps-fir...

Or are you going to argue that the venerable POWER-architecture is somehow not "true RISC" ??

https://www.ibm.com/support/pages/checking-aix-protection-ag...

Re:Apple’s new M1 Pro and M1 Max processors by chasil on Monday October 18, 2021 @08:35PM (#28913619)
If its got microcode, it's not RISC.
Re:Apple’s new M1 Pro and M1 Max processors by dragontamer on Monday October 18, 2021 @08:41PM (#28913654)
POWER9, RISC-V, and ARM all have microcoded instructions. In particular, division, which is very complicated.

As all CPUs have decided that hardware-accelerated division is a good idea (and in particular: microcoded, single-instruction division makes more sense than spending a bunch of L1 cache on a series of instructions that everyone knows is "just division" and/or "modulo"), microcode just makes sense.

The "/" and "%" operators are just expected on any general purpose CPU these days.

30 years ago, RISC processors didn't implement divide or modulo. Today, all processors, even the "RISC" ones, implement it.

Re:Apple’s new M1 Pro and M1 Max processors by tedunangst on Monday October 18, 2021 @05:08PM (#28911771)
Hyper threading has nothing to do with instruction decode. It's for hiding memory latency. The sparc T line is 8 way threaded.
Re:Apple’s new M1 Pro and M1 Max processors by monocasa on Monday October 18, 2021 @05:58PM (#28912325)
It's slightly more general than that, hiding inefficient use of functional units. A lot of times that's totally memory latency causing the inability to keep FUs fed like you say, but i've seen other reasons, like a wide but diverse set of FUs that have trouble applying to every workload.
Re:Apple’s new M1 Pro and M1 Max processors by mnw21cam on Tuesday October 19, 2021 @06:09AM (#28916542)
The classic reason quoted for SMT is to allow the functional units to be fully utilised when there is instruction-to-instruction dependencies - that is, the input of one instruction is the output from the previous instruction. Doing SMT allow you to create one large pool of functional units and share them between multiple threads, hopefully increasing the chances that they will be fully used.