is it illegal to write abstraction APIs on top of CUDA? I have heard this argument for half of this decade and i think something that abstracts the CUDA stuff into a thin HAL that can also call other GPU Progamming interfaces would avoid vendor lock-in.
although, I guess the main challenge is the ever-changing surface of the CUDA api?
Edit: Ok so if the argument is we should be able to use NVIDIA GPUs without CUDA that any amount of abstraction is a moot point.