Live data from Hacker News

Undocumented arm64 ISA extension present on the Apple M1

gist.github.com

21–30 of 202 posts

Re: Undocumented arm64 ISA extension present on the Apple M1

#21

Earlier quoted context omitted.

> The fact that they can be like this is really proof that their market position is much stronger than most HNers seem to think it is. Elsewhere on the HN front page is a computer made with a Russian internal CPU. The CPU has a custom ISA based on x86, and isn't open. The documentation is poor, and nobody has the source code for the compiler. It's also about 5 years behind the state of the art in x86. How can a produ…

Seems clear that Russian CPU is targeted towards the Russian defense industry, where all that NIH and secrecy can arguably be leveraged into national security as its a less cost-sensitive application. The M1 is a CPU for global consumer products.

Of course, and Apple's ISA is targeted towards the People Who Buy Macs industry. By not making it available to datacenters, they are supporting other CPU vendors in the race to catch up. It will help AMD a lot in their bid to catch up that all investors can see that Apple won't be competing with them.

Re: Undocumented arm64 ISA extension present on the Apple M1

#22
post #7
post #2

I don't understand the significance of this. Could someone who does add some context?

In the bigger picture Apple aren't really documenting anything for their new toys, which is not the end of the world but is a huge step back for openness. There is - as far as I can see - no long-form documentation for M1 other than patents. I already refuse to own apple products so I don't really have any skin in the game, but consider that if microsoft were like this the blind eye would not be turned - buy our new…

As someone who was actually thinking about getting the M1 based on the great performance and battery life, but without any actual use for it, I can see what you mean.

But the lack of openness is enough to stop those ideas, a new Surface laptop or next generation AMD mobile is much more useful.

I just hope that a battery life breakthrough is on the horizon from AMD or Intel.

Re: Undocumented arm64 ISA extension present on the Apple M1

#25
post #7
post #2

I don't understand the significance of this. Could someone who does add some context?

In the bigger picture Apple aren't really documenting anything for their new toys, which is not the end of the world but is a huge step back for openness. There is - as far as I can see - no long-form documentation for M1 other than patents. I already refuse to own apple products so I don't really have any skin in the game, but consider that if microsoft were like this the blind eye would not be turned - buy our new…

On the other hand, Apple released their 64-bit ARM backend for LLVM[1] in 2014. They announced their intention do so almost immediately after the first ARM64 phone, but the process took several months because it had to be merged with a duplicate backend developed by others.

I think it is likely that support for these instructions will be upstreamed to LLVM, and the teams involved in this monumental transition (which was announced like ~50 days ago) simply didn't put it at the highest priority on the list of things that developers need to know to get their apps working on Day 1.

A fair criticism is that some of the more technical documentation, such as on the Mach-O ABI, have disappeared from Apple's developer site, or been relegated to an unsearchable archive[2], so it's very reasonable to be skeptical of ISA extensions ever being documented there.

The developer site has always sucked though, and it seems to me they've declared bankruptcy and are rebuilding it on machine-generated docs and WWDC content for app developers. Occam's razor.

1: https://www.phoronix.com/scan.php?page=news_item&px=MTY0NzE

2: https://developer.apple.com/library/archive/navigation/

Re: Undocumented arm64 ISA extension present on the Apple M1

#26

After four different CPU ISA's (68000, powerpc, x86, ARM) an Apple ISA is next.

There's a tidy mathematical progression in Apple CPU architectures.

6502 (Apple 1,2,3): 1976

68k (Mac): 1984 (+8 years)

PPC: 1994 (+10 years)

x86: 2006 (+12 years)

ARM: 2020 (+14 years)

If the trend continues, we will see Apple's next architecture in 2036.

Re: Undocumented arm64 ISA extension present on the Apple M1

#27

After four different CPU ISA's (68000, powerpc, x86, ARM) an Apple ISA is next.

From a third-party developer's perspective the ISA will be Swift.

The actual CPU ISA will be a closely guarded trade secret. It will, however, run Swift code 2-3x faster (on a single-core basis) than any commercially available commodity CPU -- especially since Apple pays silicon fabs to not manufacture 3nm hypercubic gallium-arsenide ICs or whatever the cutting edge is on behalf of competitors.

Re: Undocumented arm64 ISA extension present on the Apple M1

#28
post #22
post #7

Earlier quoted context omitted.

In the bigger picture Apple aren't really documenting anything for their new toys, which is not the end of the world but is a huge step back for openness. There is - as far as I can see - no long-form documentation for M1 other than patents. I already refuse to own apple products so I don't really have any skin in the game, but consider that if microsoft were like this the blind eye would not be turned - buy our new…

As someone who was actually thinking about getting the M1 based on the great performance and battery life, but without any actual use for it, I can see what you mean. But the lack of openness is enough to stop those ideas, a new Surface laptop or next generation AMD mobile is much more useful. I just hope that a battery life breakthrough is on the horizon from AMD or Intel.

Process node is a large part of it. Fab a Ryzen at 5nm and it will at least be in the ballpark, though X64 decode complexity makes it hard to completely close the gap.

There is also nothing stopping someone else from matching or beating M1 performance with another ARM64 core or RISC-V. Both of those have simple easy to parallelize decoders. It will be done if there is demand. AMD, Marvell, Qualcomm, and Intel all have the expertise to do it. Probably TI too if they wanted to reenter the CPU market.

Re: Undocumented arm64 ISA extension present on the Apple M1

#29
post #2

I don't understand the significance of this. Could someone who does add some context?

From what I can tell reading this: the Accelerate framework from Apple seems to use custom instructions possibly unique to the M1 chip but potentially similar to Intel AMX. Accelerate is, as I sort of understand it- a way to do advanced math in a very quick / power efficient way. It is touted as deeply integrated with Apple processors from the day it launched and (I think) even recommended to be used over SIMD and th…

Say hello to Function Multi-versioning [0]. You tell the compiler to build a version for each march defined in the attribute. When that function is called a quick CPU check (via CPUID) is performed and if there's a version specific to the current CPU that will run instead of the more general implementation. ICC has supported this for a long time and it's widely used in Intel's MKL.

LLVM also supports FMV but uses a slightly different method to define it in code. IIRC there was an LLVM issue tracking work to support GCC's way of declaring FMV but I don't know if that landed yet.

Since the function's signature is the same between the multiple implementations the caller doesn't need to change of their code to get a free boost from features like AVX2 or these M1 instructions. When an M2 comes out with better vector instructions or something and a new Accelerate framework is released, anyone using the framework get a free performance increase without recompiling anything.

[0] https://lwn.net/Articles/691932/

Re: Undocumented arm64 ISA extension present on the Apple M1

#30

Earlier quoted context omitted.

Seems clear that Russian CPU is targeted towards the Russian defense industry, where all that NIH and secrecy can arguably be leveraged into national security as its a less cost-sensitive application. The M1 is a CPU for global consumer products.

Of course, and Apple's ISA is targeted towards the People Who Buy Macs industry. By not making it available to datacenters, they are supporting other CPU vendors in the race to catch up. It will help AMD a lot in their bid to catch up that all investors can see that Apple won't be competing with them.

> By not making it available to datacenters, they are supporting other CPU vendors in the race to catch up.

This is by far the most charitable characterization of this monetization scheme I've seen so far. Some would argue this is actually in place to ensure that purchases go directly through Apple each time (i.e. a one-to-one of customers to hardware purchases), rather than through a cloud provider who may purchase hardware once and allow thousands of customers to access it. c.f. Apple's restrictions on subletting use for no less than a single day per "machine".

Post reply on HN