AMDGPU对CUDA支持方式的分析

AMDGPU对CUDA支持方式的分析
实现方式是针对HIP API(Heterogeneous-Computing Interface for Portability)做CUDA的接口套壳,即将cuda的API接口作为标准接口,用AMD ROCm实现cuda的API(目的就是保证对外的API与CUDA完全相同),但实际调用 HIP+ROCm 的相关接口实现(即实际在AMD GPU卡上运行),编译生成动态库libcuda*.so,并替换cuda相关动态库,从而完成适配,达到兼容CUDA生态的接口的目的。ROCm提供了HIPIFY工具,用于将CUDA源代码转换为HIP源代码,实现CUDA代码到HIP的移植。
1. ROCm API库文件 — ROCm文档
ROCm API库文件清单,见表1-13。
表1-13 ROCm API库文件清单

ROCm API库文件

人工智能

C++原型

可组合内核

hipCUB

MIGraphX

hipTensor

MIOpen

rocPRIM

MIVisionX

rocThrust

通信

HIP

RCCL

HIP运行时

 

HIPIFY

数学

随机数

hipBLAS/rocBLAS

hipRAND

hipBLASLt

rocRAND

hipFFT/rocFFT

 

hipSOLVER/rocSOLVER

 

hipSPARSE/rocSPARSE

 

hipSPARSELt

 

rocALUTION

 

rocWMMA

 

 
2. Hipify工具介绍
HIP是 CUDA API 的山寨克隆版。除了一些不常用的功能(如管理内存)外,几乎全盘拷贝 CUDA API,是 CUDA 的一个子集。HIP为开发人员使用HIPIFY,将CUDA应用程序移植到ROCm,HIPIFY会自动转换CUDA应用程序,成为HIP内核语言和运行时API,使用NVIDIA的CUDA编译器,或将AMDCLANG编译为GPU的运行代码。HIP将AMDCLANG编译为GPU的运行代码,如图1-22所示。
 
图1-22 HIP将AMDCLANG编译为GPU的运行代码
posted @ 2025-04-01 19:54  吴建明wujianming  阅读(233)  评论(0)    收藏  举报