This is an old article but the old "vendor B" stuff still rings incredibly true with at least AMD's OpenCL stack as well.
https://richg42.blogspot.com/2014/05/the-truth-on-opengl-dri...
Thus NVIDIA actually has even less of a lock-in than people think. If you want to write a better OneAPI ecosystem and run it on OpenCL runtime... go hog wild! NVIDIA is best at that too! You just don't get the benefit of NVIDIA's engineers writing libraries for you, all that obviously takes place in CUDA.
https://github.com/RadeonOpenCompute/ROCm/issues/2198#issuec...
https://github.com/RadeonOpenCompute/ROCm/issues/2198#issuec...
There are scars in the implementation which suggest the HSA model was really difficult to implement on the hardware at the time.
It doesn't look like old hardware gets explicitly disabled, the code that runs them is still there. However writing new things that only work on newer hardware seems likely, as does prioritising testing on the current gen. So in practice the older stuff is likely to rot unless someone takes an interest in fixing it.
I wrote some code that compiles as opencl and found it an intensely annoying experience. There's some C++ extension model to it now which might help but it was still missing function pointers last time I looked. My lasting impression was that I didn't want to write opencl code again.
I know CUDA via their HIP is a moving target they don't control making it hard and expensive for them to prevent bit rot but this is still an AMD caused problem due to opencl not getting any love by anyone anymore. AMD included.