AMD GPU平台简单分析
在启动docker的测试命令中,传入一个设备参数--device=/dev/kfd,转到DOCKER环境,kfd表示AMDGPU异构计算的GPU设备驱动(KMD)的设备节点,它是用户操作GPU的基础。AMD GPU设备驱动流程简单分析,如图1-19所示。

图1-19 AMD GPU设备驱动流程简单分析
AMDKFD驱动程序是Radeon GPU计算软件栈的Linux内核代码,也是该公司ROCm产品的一部分,从功能上可以理解为在 DRM 子系统中,提供了 CPU 与 GPU 沟通的快速通道,使得两者可以平等的访问内存资源而无需额外拷贝。
在运行测试时,简单追踪以下对KFD内核驱动的调用,以验证加速环境确实使用的
ROCm和CUDA编程模型对比如下所示。
1)NVIDIA和AMD都支持OpenCL,毕竟CL是个开放标准。
2)OpenACC对标OpenMP,网上有很多例子。
3)HIP对标Cuda,Cuda源可以翻译为 HIP,然后由ROCm编译为AMDGPU上可运行的代码。
在OpenCL同时支持ROCm和CUDA运行时对比分析,如图1-20所示。

图1-20 在OpenCL同时支持ROCm和CUDA运行时对比分析
针对异构计算,深度系学习场景,双方各自都有底牌,目前OpenCL打个平手,HIP和CUDA相比较生态弱一些,OpenACC和OpenMP旗鼓相当。HIP和CUDA相比较生态弱一些,如图1-21所示。

图1-21 HIP和CUDA相比较生态弱一些
绘图风格建议一致
改好了