在AMD GPU编程中,不使用CUDA,因为CUDA是NVIDIA的专有技术,只在NVIDIA的GPU上工作。会使用ROCm (Radeon Open Compute Platform)来编程AMD GPU。更具体地,会使用HIP(Heterogeneous-compute Interface for Portability),它是一个由AMD开发的用于编写可移植代码的API,可以在AMD和NVIDIA GPU上运行。HIP提供了一个类似于CUDA的API和编程模型。如果有一个用CUDA语言写的程序,通常可以使用AMD提供的工具`hipify`将它转换为可以在AMD GPU上运行的HIP程序。`hipify`工具可以自动将大部分的CUDA API调用转换为HIP API调用。
CUDA代码段:
unpermute_kernel_backward<<<num_blocks, block_size>>>(scratch, dout, B, T, NH, HS);
在HIP中类似的代码会是:
hipLaunchKernelGGL(unpermute_kernel_backward, dim3(num_blocks), dim3(block_size), 0, 0, scratch, dout, B, T, NH, HS);
确