ROCm has a direct replacement backend that can even take CUDA code (it's designed to be incredibly similar). It's called HIP. It's just that no one wants to support it. That is actually how TensorFlow on AMD works (mostly), and you can compile the latest stable release that way.