Hacker News new | ask | show | jobs
by reacharavindh 1126 days ago
I enjoy the competition that Apple brings to the computing market with M* chips. As an innocent bystander in the world of AI, neural networks etc, I wonder if Apple Silicon and its neural cores would become the proprietary brake like CUDA is for ML work. That is if they do something phenomenal with the 3nm facility and bring about some hardware that only they can do..

I'd rather have a healthy competetive ecosystem where people writing software need not say stuff like "needs CUDA to work or needs Apple Neural cores to work" and instead says something like "need XYZ acceleration provided by CUDA cores, Apple Silicon, and AMD blah.."

2 comments

I think it's too early for AI/ML acceleration to standardize on an API. It takes a long time to figure out what abstractions we should standardize on before we can make a universal API.

Consider the whole history of OpenGL, Metal, Vulcan, WebGL, WebGPU...

It would have been a mistake to keep using OpenGL, and WebGL was perhaps a mistake from the beginning. It was the wrong abstractions. Metal and Vulcan are clearly better abstractions for GPU APIs, and it really doesn't matter too much that Metal is Apple-only because they're close enough that you can have a good Vulcan API on top of Metal (MoltenVK). That is, what matters is that we converge on the same abstractions, and those take a long time to get right.

Now in the end we've gotten WebGPU (which isn't only for web browsers btw, can be used from native apps too) that can provide a nice universal cross-platform API.

A bit harsh to say that WebGL was a mistake from the beginning. The spec was released in 2011, along with some initial implementations. At the time, Vulkan didn't exist (2016). Not even Metal (2014) or Mantle (2013) existed yet. I don't think even the AZDO folks had done their work yet.

WebGL looked pretty damn good in 2011. It was based on OpenGL ES 2.0, which was the latest version of OpenGL ES, and the great thing about OpenGL ES is that it's a little cleaned up from OpenGL and reflects the capabilities of a broad class of graphics implementations.

What about WebGPU? The only thing that I find unsatisfactory about it is that float64 (double) is not a standard type in WebGPU and it's not supported on Apple GPUs anyway.