Indeed. What's more is the fact that CUDA is really usable. Not necessarily easy to integrate depending on IDE, but CUDA came a long way.
That said, OpenCL or ROCm are nowhere near in that regard.
For now, there's no AMD equivalent that could match with CUDA.
HPC at its current state is quite a mess. I'd love to see AMD come up with a good solution running on all major platforms. That would be awesome ...
Everything that requires translating code from CUDA, which is Vendor lock-in, to any other, open source platform will be hard to implement, because of the work you have to put in.
Im am, and always were baffled, that people are not able to see this sole reason.
If you are locked to specific vendor, don't expect that everything will be easy to use, when the software has been developed for years. OpenCL was released years ago, and never took off, for this very reason. In psychology this factor is called 'Resistance to Change".
You can achieve the same things on AMD platform, as you can with CUDA. You just have to put the same amount of money in software development, you had put into software development for CUDA.
If you are not, don't complain that AMD is uncompetitve, then their hardware is competitive, with properly optimised software, outside Tensor Core usage(but FP16 is better, actually for MI50 and MI60 than it is for V100), because ALUs, are just ALUs. What matters here is the throughput of those ALUs, and AMD always was competitive, or had advantage(thats why in pure compute performance only lately Nvidia tied with AMD GPUs) on this front.
P.S. The only way we can get something good, is that CUDA equivalent, but Open Source, that IBM started working lately, on.