top | item 40629481

(no title)

mritun | 1 year ago

All this isn’t exactly a secret. ARM maintains and provides extensive documentation and so does Apple. Is there anything specific you think is being hidden or obfuscated in the documentation?

discuss

order

adrian_b|1 year ago

There are a lot of undocumented parts of the Apple CPUs, for instance AMX. All such undocumented features can normally be exploited only by the libraries and applications provided by Apple themselves, but not by the applications and libraries written by other parties, which are disadvantaged.

This is the same mechanism by which Microsoft has eliminated the competition for Microsoft Office, which used undocumented Windows APIs so that the products of any other vendor could not keep up with it, especially after the launch of any new Windows version.

Now one can find some more complete documentation for the Apple CPUs as the result of reverse engineering work done by various people, but after each introduction of a new Apple CPU model the reverse engineering work may need to be done again.

Examples:

https://github.com/name99-org/AArch64-Explore

https://github.com/corsix/amx

galad87|1 year ago

Probably because they don't want anyone to depend on AMX, and they want to be free to remove it or change it in the future. On the M4 for example AMX features are accessible thru SME, which is an official ARM extension.

neonsunset|1 year ago

Anything capable of fast C interop (so no Go and Java for you, good riddance) is free to use Accelerate. The reason Apple went with AMX first was that SME was not ready at the time, and they did want to have that. Once SME became available, they readily exposed it, as can be seen in M4, using the same hardware blocks underneath.

I'm not here to defend other anti-competitive practices by Apple but as far as just their CPUs go, there are none in that area.

pertymcpert|1 year ago

Apple aren't allowed to publicly support unofficial extensions of the ARM ISA.

saagarjha|1 year ago

Apple writes the libraries for you to use AMX. They aren’t giving themselves preferential treatment here.

pmarreck|1 year ago

If that's the case, then why does the GPU portion have to be reverse-engineered for Asahi Linux? Of course I knew about the ARM portion, there are lots of ARM chips licensed to by ARM Holdings, it's not exactly a secret. But the "apple silicon" chip in its entirety, is not completely documented.

kbolino|1 year ago

Are any competitive GPU architectures any better? I don't think nVidia, AMD, Intel, nor PowerVR openly publish the internals of their graphics products either.

saagarjha|1 year ago

The API for programming the GPU is Metal.

15155|1 year ago

Peripherals are not the ISA or CPU architecture: they are usually made by numerous parties.