Live data from Hacker News

Ask HN: Why hasn't x86 caught up with Apple M series?

news.ycombinator.com

601–610 of 640 posts

Re: Ask HN: Why hasn't x86 caught up with Apple M series?

#601

> Why haven’t AMD/Intel been able to catch up? Is x86 just not able to keep up with the ARM architecture? When can we expect a x86 laptop chip to match the M1 in efficiency/thermals?! AMD kind of has, the "Max 395+" is (within 5% margin or so) pretty close to M4 Pro, on both performance and energy use. (it's in the 'Framework Desktop', for example, but not in their laptop lineup yet) AMD/Intel hasn't surpassed Apple…

I see virtually nobody pointing out that apple is consistently using fab nodes that are more advanced than intel/AMD.

Rule of the thumb is roughly 15% advantage to distribute between power and performance there.

Catching up while remaining on older nodes is no joke.

Re: Ask HN: Why hasn't x86 caught up with Apple M series?

#602

I tend to think its putting the memory on the package. Putting the memory on the package has given the M1 over 400GB/s which is a good 4x that on a usual dual channel x64 CPU and the latency is half that of going out to a DRAM slot. That is drastic and I remember when the northbrige was first folded into the CPU by AMD with the Athlon and it had a similarly big improvements in performance. It also reduces power consu…

The manufacturing process they use for memory is not a good choice, actually. It is a tradeoff.

Re: Ask HN: Why hasn't x86 caught up with Apple M series?

#604

Earlier quoted context omitted.

The 2019 Macs were vertically integrated and Apple could do NOTHING good with the Intel PowerPig i9 CPUs. My i9 once once ran down from 100% charge to 0% in 90 mins PLUGGED IN ON 95W CHARGER! I was hosting a meeting. The M1-M4 CPUs forsake multithreading and downclock and this is one of the many ways they save power. Video codecs are particularly power efficient on mobile chips!

I used a 2019 MacBook Pro for quite a while, and it was my first (and so far only) dip into Apple-land. While I appreciated the really solid build quality, great screen, etc, the battery life was pretty abysmal. We're talking easily under 2 hours if I had to be in a video call, which basically meant taking a charger to any meeting of decent length. The 2nd biggest disappointment was when I ran my team's compute-heavy…

Yeah I had that same i9 16 inch from 2019. Easily the worst Mac I‘ve ever owned (in 20 years!). Now I‘m on an M2 16 inch an it is night and day.

Re: Ask HN: Why hasn't x86 caught up with Apple M series?

#605

That's a Chrome problem, especially on extra powerful processors like Strix Halo. Apple is very strict about power consumption in the development of Safari, but Chrome is designed to make use of all unallocated resources. This works great on a desktop computer, making it faster than Safari, but the difference isn't that significant and it results in a lot of power draw on mobile platforms. Many simple web sites will…

> Chrome doesn't let you suspend tabs, and as far as I could find there aren't any plugins to do so

Auto Tab Discard exists and works fine, but I am not sure it's what people call "suspending tabs". They need to reload when you click them and they objectively free the memory they used (I watch my memory usage closely).

Re: Ask HN: Why hasn't x86 caught up with Apple M series?

#606

> Why haven’t AMD/Intel been able to catch up? Is x86 just not able to keep up with the ARM architecture? When can we expect a x86 laptop chip to match the M1 in efficiency/thermals?! AMD kind of has, the "Max 395+" is (within 5% margin or so) pretty close to M4 Pro, on both performance and energy use. (it's in the 'Framework Desktop', for example, but not in their laptop lineup yet) AMD/Intel hasn't surpassed Apple…

I see virtually nobody pointing out that apple is consistently using fab nodes that are more advanced than intel/AMD. Rule of the thumb is roughly 15% advantage to distribute between power and performance there. Catching up while remaining on older nodes is no joke.

> using fab nodes that are more advanced than intel/AMD.

I am usually the one doing it on HN. But it is still not common knowledge after we went from M1 to M4.

And this thread S/N ratio is already 10 times better than most other Apple Silicon discussions.

AMD's Max 395+ is N4, or 5nm Class Product.

The Apple M4 is N3 or 3nm Class product.

Re: Ask HN: Why hasn't x86 caught up with Apple M series?

#607
post #318

Earlier quoted context omitted.

A huge reason for the low power usage is the iPhone. Apple spent years incrementally improving efficiency and performance of their chips for phones. Intel and AMD were more desktop based so power efficiency wasnt the goal. When Apple's chips got so good they could transition into laptops, x86 wasn't in the same ballpark. Also the iPhone is the most lucrative product of all time (I think) and Apple poured a tonne of t…

Apple purchased Palo Alto Semi which made the biggest difference. One of their best acquisitions ever in my opinion… not that they make all that many of those anyway.

Equally (arguably) importantly, Johny Srouji joined Apple the same year as PA Semi's acquisition - '08 – and led Apple A4. (He previously worked at IBM on POWER7, which is a fascinating switch in market segment.)

Re: Ask HN: Why hasn't x86 caught up with Apple M series?

#608

Earlier quoted context omitted.

Microsoft is pushing "Modern Standby" over actual sleep, so laptops can download and install updates while closed at night.

Microsoft is pushing "Modern Standby" over actual sleep, so laptops can download and install updates while closed at night. Apple has this. It's called Power Nap. But for some reason, it doesn't cause the same problems reported by people here on HN.

It doesn't cause the same problems because Apple's Power Nap is something you have to enable. It's an option for users who find it useful. It's not replacing traditional S3 sleep, wherein virtually everything is unpowered except a trickle to keep the RAM alive. Microsoft is supplanting traditional sleep with Modern Standby. You can disable Modern Standby, but only with registry jiggery-pokery, and Microsoft is pressuring OEMs to remove S3 support altogether.

Re: Ask HN: Why hasn't x86 caught up with Apple M series?

#609
post #482

Earlier quoted context omitted.

In Haswell, 4.8w out of 22.1w for the core were used for the decoder for integer/ALU instructions[0]. According to this[1] analysis of the entire ubuntu repository, 89% of all instructions were composed of just 12 instructions (all integer/ALU). From this we can infer that for most normal workloads, almost 22% of the Haswell core power was used in the decoder. As decoders have gotten wider and more complex in recent…

Misconstrued arguments. First paper is saying that they measured 3% for the floating-point workloads and 10% for the integer workloads. > Based on Figure 3, the power consumption of the instruction decoders is very small compared with the other components. Only 3% of the total package power is consumed by the instruction decoding pipeline in this case. and > As a result, the instruction decoders end up consuming 10%…

There's a lot to break down here. FP/SIMD vs int/ALU, package vs core power, percentage vs total, branching vs unbranching code, average IPC, etc.

Let's start with package vs core power. Package power is a terrible metric for core efficiency. The CPU cores on an M3 Max peak out at around 50w under a power virus which is around 40-50% of total package power. M3 CPU cores peak out at around 21w with a total package power of somewhere around 25-30w or 70-85% of package power.

Would you then assert that the M3 Max cores are TWICE as power efficient as the M3 cores? Of course not. They are the exact same CPU core design.

Package power changes based on the design and target market of the chip. Core power is the ONLY useful metric here. That number indicates that decoders use between 8% and 22% of total core power and this is going to be essentially true whether you are in a 30w TDP or a 300w TDP.

This ties directly into the percentage vs total hiding the truth. At 4.8w of power for the decoders in one core, an 8-core Haswell 5960x would use 38.4w of its 140w TDP on decoding (or a whopping 27.4% of TDP package power if you still believe that is relevant). On an 18-core server variant, this would theoretically be 86.4w out of a 165w TDP package power. Even if we cut down to the 1.8w you say is reasonable, that's still 14.4w for the 8-core and 32.4w for the 18-core (still 19.6% of package power).

Not only is this a significant percentage, but it is also significant in absolute watts. Quoting 3% is just an attempt to hide the truth of an ugly situation. Even if the 3% were true, chip companies spend massive amounts of money for less than 1% power savings, so it would still be important.

Next, let's discuss FP/SIMD vs int/ALU. SIMD takes more execution power than the ALU. This makes sense if you just look at a die shot. All 4 ALUs together are something like 10-20% the size of the SIMD units. When you turn a SIMD unit on, it sucks a lot of power. This is why SIMD throttles so often and Haswell is no exception. The ALUs are executing 2.3x more instructions while using 2.1x more power (which means the SIMD units are aggressively power-gating most of the SIMD execution units).

Notice the cache differences. SIMD is taxing the L1 cache more (4.8w vs 3.8w) and massively taxing the L2/L3 cache (11.2w vs 0.1w). The chip is hitting its power limits and downclocking the CPU core so it can redirect power to the caches. We see this in the FP code using 4.9w with the larger SIMD units while the ALU code used 10.4w. I'd also note that the power curve matters here because the power doesn't scale linearly with the clockspeed, so reducing the clockspeed has multiplicative effects on reducing decoder power

If we compute the decode/execution power ratios, we get .37 for SIMD and and .46 for ALU which shows that even in this ideal situation, the relative power draw isn't as good as you are led to believe.

Finally, there are 4 ALU ports, but only 2 SIMD ports. In practice, this means that half of the decoders will simply not turn on in this test or will turn on long enough to race way ahead in the uop cache then turn off.

If the core were not downclocking and there were 4 SIMD ports, the decoder power consumption would be higher than 1.8w.

You are basically correct about average IPC, but wrong about its impacts. SpecInt suite averages around 1.6-1.8 instructions/clock on Haswell[0] and is representative of most code out there (and why ARM designer's focus on very wide chips with very high IPC is important).

What it misses is branches. The CPU can't wait until a branch happens to start decoding. The branch predictor basically pre-fetches cache lines into I-cache. The decoders then take the next cache blocks and decode them into the uop cache lines. If a branch happens approximately every 5th instruction and cache lines are usually 64 bytes and average x86 instructions are 4.25 bytes long, then you can surmise that both sides of most local branches wind up being decoded even though both are not used. This means that the IPC of the decoders is higher than the IPC of the ALUs.

In all cases though, it can be stated pretty clearly that x86 decode isn't "free" and has a significant resource cost attached both in relative and absolute terms.

[0] https://tosiron.com/papers/2018/SPEC2017_ISPASS18.pdf

Re: Ask HN: Why hasn't x86 caught up with Apple M series?

#610

Earlier quoted context omitted.

It's probably the 2.4GHz WiFi transmitter interfering with the 2.4GHz mouse transmitter. You probably notice it during YouTube because it's constantly downloading. Try a wired mouse.

Interesting theory. The wired mouse is trouble free, but I figured that's because of a better sampling rate and less overhead over all. Maybe I'll try a bluetooth mouse or some other frequency, or the laptop on fired Ethernet to see if the theory pans out.

> Maybe I'll try a bluetooth mouse

Bluetooth is also 2.4 Ghz.

Post reply on HN