第三个部分是HIP(Heterogeneous-compute Interface for Portability)可移植异构计算界面,这个东西就是专门对付NVIDIA的。由于NVIDIA专心搞自家的CUDA,对OpenCL并不怎么上心,硬件规格支持也仅限于OpenCL 1.2,AMD倒是一心想着支持OpenCL,但NVIDIA的不配合只能让他们痛下杀招——HIP可以让开发者把CUDA代码转换成AMD HIP代码,支持CUDA与HIP之间的源码到源码转换。
很多人认为AMD的HIP实际上是让AMD显卡支持了CUDA,但实际上并不是,AMD是不可能这么做的,NVIDIA同样也不会允许AMD这么做。HIP实际上是开发者把针对CUDA开发的代码转换成AMD显卡可以运行的代码,只不过是帮助开发者节省重新开发的时间,提高效率。
这样做其实并不动摇NVIDIA的CUDA地位,因为开发者对CUDA开发的代码不受影响,而对AMD来说,HIP的存在就相当于多了一个从NVIDIA那边加速移植代码的工具,这多少可以缓解AMD在GPU运算环境上落后于NVIDIA的局面。