It's taken the better part of a decade for workable alternatives to CUDA to emerge.
It's taken the better part of a decade for workable alternatives to CUDA to emerge.
it’s really not close. I love that they are trying, I just honestly feel they need to be trying with 10 times as much funding/resources behind them.
Or do you mean Apple’s Metal Compute? useful only with inconvenient (at scale) Apple hardware.
If workable CUDA alternatives were really here, I feel people would be talking about them more given how large the hate is for Nvidia on multi fronts from multiple different user groups.
As for Vulkan, I tend to think of CUDA at the driver level given how closely coupled it is to Nvidia’s hardware. So I wasn’t really thinking about broader cross compatible APIs like Vulkan which tend to get implemented on top of the drivers providing low level access like CUDA gives… but with the exception of Apple (because we know they will never change their mind) I’m hoping the broader industry gets behind Vulkan compute shaders enough we finally get something that delivers on the promises made when the OpenCL effort began. I want clean understandable abstractions over the top of all the different SIMD and MIMD capabilities we have these days it doesn’t have to magically compile my code down to FPGA hardware but how about actually being able to get the best matrix multiplication performance out of both my CPU or GPU or both if I have a CPU with the right kind of integrated GPU that they can efficiently enough share memory and both work together without slowing each other down when working on an embarrassingly parallel matrix multiplication task. Is this really too much to ask of software in an an era that gives us near magical JIT performance in multiple languages, and manages to build cross compile/transpilation tools that can convert entire assembly code bases into JavaScript and all the other nice things we have as software developers… it never felt like too much to me but the fate of OpenCL appears to disagree.
nvidia decided they wanted to be the market leader, and spent $$$$ developing tools, training materials, and libraries (like cuDNN) which they gave away for free.
Other GPU vendors chose not to outspend them.
Tensorflow lets you deploy to quite a few backends.
oneAPI support in GPUArrays.jl seems to be coming along.