Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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?


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


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.


AMX and SME are independent


Do they really not share any execution hardware?


I'm sure the register file and execution units are shared to some extent


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.


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


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


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.


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.


AMD and Intel publish detailed GPU documentation.



The API for programming the GPU is Metal.


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


Apple has designed their own GPUs since they stopped using PowerVR with A11


What does that have to do with ARM64 assembly? The ISA and CPU architecture are orthogonal to all peripherals.

These peripherals are accessed with memory-mapped IO using the same instructions any other program uses.

Documentation about ARM64 assembly shouldn't and doesn't contain specific peripheral access info. ISA docs contain info common to all CPUs implementing the spec.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: