3 ms·
Because machine learning accelerators are, in the broadest sense, not "done" and rapidly evolving every year. Exposing too many details of the underlying archit
by aseipp 5y ago
Because machine learning accelerators are, in the broadest sense, not "done" and rapidly evolving every year. Exposing too many details of the underlying architecture is a prime way to ossify your design, making it impossible to change, and as a result you will fall behind. It is possible the Neural Engine of 2022 will look very different to the one of 2025, as far as the specifics of the design, opcode set, etc all go.
One of the earliest lessons along this line was Itanium. Itanium exposing so much of the underlying architecture as a binary format and binary ABI made evolution of the design extremely difficult later on, even if you could have magically solved all the compiler problems back in 2000. Most machine learning accelerators are some combination of a VLIW and/or systolic array design. Most VLIW designers have learned that exposing the raw instruction pipeline to your users is a bad idea not because it's impossibly difficult to use (compilers do in fact keep getting better), but because it makes change impossible later on. This is also why we got rid of delay slots in scalar ISAs, by the way; yes they are annoying but they also expose too much of the implementation pipeline, which is the much bigger issue.
Many machine learning companies take similar approaches where you can only use high-level frameworks like Tensorflow to interact with the accelerator. This isn't something from Apple's playbook, it's common sense once you begin to design these things. In the case of Other Corporations, there's also the benefit that it helps keep competitors away from their design secrets, but mostly it's for the same reason: exposing too much of the implementation details makes evolution and support extremely difficult.
It sounds crass but my bet is that if Apple exposed the internal details of the ANE and later changed it (which they will, 100% it is not "done") the only "outcome" would be a bunch of rageposting on internet forums like this one. Something like: "DAE Apple mothershitting STUPID for breaking backwards compatibility? This choice has caused US TO SUFFER, all because of their BAD ENGINEERING! If I was responsible I would have already open sourced macOS and designed 10 completely open source ML accelerators and named them all 'Linus "Freakin Epic" Torvalds #1-10' where you could program them directly with 1s and 0s and have backwards compatibility for 500 years, but people are SHEEP and so apple doesn't LET US!" This will be posted by a bunch of people who compiled "Hello world" for it one time six months ago and then are mad it doesn't "work" anymore on a computer they do not yet own.
> Could it be that using the ANE in the wrong way overheats the M1?
No.
- smoldesu 5y agoWas it really necessary to expand the fourth paragraph post-script to get your point across? Before it was a fairly holistic look at the difference between people who want flexibility and people who want stability, where neither party was necessarily right. Now it just reads like you're mocking people for desiring transparency in their hardware, which... seems hard to demonize?
- gjsman-1000 5y agoHe's not wrong - that's absolutely what YouTube and online Linux commentators would do. They have their own echo chamber, just as much as any tech community. Heck, considering your past posts, it's probably something you would do. As for transparency in hardware, it probably will become more transparent once Apple feels that it is done and a finished science. They don't want to repeat Itanium.
- nebula8804 5y agoAbsolutely. It provided a visualization reminder of so many people that come out of their holes to argue whenever there is some criticism of open source. Its one thing to desire freedom but the reality of the situation is that community is toxic for some reason and just not fun to even converse with.
- EricE 5y agoI think it was absolutely appropriate because I have seen that cycle happen many, many times over the years. Especially when Apple is involved. Hell there are still people who see them as beleaguered and about to go out of business at any moment :p
- smoldesu 5y agoI get where you're coming from. It's par for the course on Apple's behalf to push this stuff away in lieu of their own, high-level implementation, but I also think that behavior puts them at an impasse. People who want to use this hardware for arbitrary purposes are unable to do so. Apple is unwilling to do it because they want their hand on the "API valve" so to speak. In a case where absolutist rhetoric is being used on either side, I think this is pretty expected. If we're ultimately boiling this down to "having choices" vs "not having choices" though, I think it's perfectly reasonable to expect the most valuable company in the world to go the extra mile and offer both choices to their users and developers. Or not. It's their hardware, they just won't be selling any Macs to me with that mindset. The only thing that irks me is when people take the bullet for Apple like a multi-trillion dollar corporation needs more people justifying their lack of interoperability.