You reap what you sow.
You reap what you sow.
On a side note, AMD did a different (yet interesting) move by embracing the FOSS culture (working with uptreams).
I remember writing CUDA parallelized C++ code in 2010 and it was a piece of cake.
Nope, AMD never gave them a choice.
Has Nvidia taken advantage of their position? Absolutely. But don't fault the ML community when there was nothing else available.
OpenCL has existed for about as long as CUDA, and can be used on GPUs from any of the major manufacturers. What makes OpenCL so unsuitable for ML that the ML community just had to use CUDA?
NVIDIA also partnered up very quickly with many big players in the game, the sales people went to work, but they had the technological feats to back it up.
After that, it's the network effect.
Now that AMD has money, hopefully they have fixed their stack, but I'm still in "once bitten, twice shy" mode. I want to see someone else in my field using AMD on tasks I care about before I try team red again.
In contrast, CUDA compiles down to a device agnostic intermediate language so they can support the same code on several generations of hardware, limited only by the CUDA feature level available on the hardware.
AMD still has a long way to go for now. Both in terms of 'primary' functionality like supported hardware and compilers and 'secondary' functionality like detailed profiling and debugging tools.
They may be hoping to live off gamers and big server contracts (eg Frontier) until they get their software stack in a decent position and outgrow their current reputation of having buggy software.