HIP is an API equivalent to CUDA. The kernel code is identical. The host code is the same API with a change from the CUDA to HIP namespace. This seems to be an extremely minimal form of 'porting'.
Right. I can't speak to its correctness/completeness as I've only done a quick installation and smoke test of the ROCm/HIP/MIOpen stack, but there's even a tool that automates the translation [1].
Exactly. I heard recently the Lumi supercomputer team converted loads of scientific code from CUDA to Hip to run on MI250, and apparently it was pretty seamless, so a strong sign this approach works