为此,AMD又打造了一个“异构计算可移植界面(HIP)”,也就是针对AMD GPU的CUDA编译环境,开发者可以将代码轻松移植过来。
开发者可以在HIP里得到和CUDA类似的编程语法,和大量的API指令,从而以类似CUDA的风格为AMD GPU编程。
正如AMD所说,HIP实现了多个目标。其允许开发者习惯于英伟达的CUDA来开发相同的语构。此外它还包含一套工具集HIPify Tools,可以自动将CUDA代码转换成HIP代码。关键的是,无论是转换来的还是原生的HIP代码,就可以分别利用HCC、NVCC编译器(利用HIP头文件增加支持HIP)为AMD、NVIDIA GPU进行编译了!
当然,AMD GPU是不可能直接运行编译好的CUDA程序的,后者仍然是NVIDIA的私有技术,但是有了HIP这种代码级别的转换,开发者可以轻松挖掘AMD GPU潜力了。虽然转换的效率总是不如原生的,但至少比没有强得多。
微软直接移植Android应用的努力归于失败,但是在高性能计算领域,开发者通常都是完全自己写自己的代码,并针对特定架构优化,所以HIP代码转换是十分有用的。(文/Silvia译)