ROCm平台简介及使用汇总

AMD ROCm 平台简介及使用

  • 1.ROCm下载
    • 1.1下载安装
    • 1.2验证
  • 2.ROCm介绍
  • 3. HIP
    • 3.1.CUDA转HIP
    • 3.2 HIPify
  • 参考:

1.ROCm下载

1.1下载安装

安装步骤如下
官网下载amdgpu-install_xxxxxx.xxxxxx_all.deb
amd官网链接: [https://www.amd.com/en/support/kb/release-notes/rn-amdgpu-unified-linux-22-20]
# 更新软件库
sudo apt update && sudo apt upgrade
sudo apt install wget gnupg2 
# 22.04安装这个
wget https://repo.radeon.com/amdgpu-install/5.4/ubuntu/jammy/amdgpu-install_5.4.50400-1_all.deb
sudo apt install ./amdgpu-install_5.4.50400-1_all.deb
# 20.04安装这个
wget https://repo.radeon.com/amdgpu-install/5.4/ubuntu/focal/amdgpu-install_5.4.50400-1_all.deb
sudo apt-get install ./amdgpu-install_5.4.50400-1_all.deb
# 然后安装单个用例
sudo amdgpu-install --usecase=rocm,hip,mllib --no-dkms
##或者
sudo apt install rocm-dev
# 添加用户至render组
sudo usermod -a -G video,render $LOGNAME

1.2验证

验证是否安装成功
# 显示gpu性能监控
rocm-smi
#查看显卡信息的两条命令(直接在终端输入)
/opt/rocm/bin/rocminfo
/opt/rocm/opencl/bin/clinfo
#有一条报错可能是没安装好

2.ROCm介绍

ROCm是AMD的开源GPU计算软件堆栈,旨在提供一个可移植、高性能的GPU计算平台。ROCm支持AMD的GPU和APU,以及x86和ARM架构的处理器,提供了与CUDA相似的编程模型,使得在AMD GPU上编写和运行GPU计算应用程序变得更加容易。

ROCm的主要组成部分包括:

ROCm驱动程序:用于管理AMD GPU和APU的硬件资源,提供GPU计算所需的基本功能。

ROCm编译器:包括AMD的HIP编译器和HCC编译器,用于将HIP和C++ AMP代码编译为底层GPU指令。

ROCm运行时库:包括AMD的HIP运行时库和HCC运行时库,提供GPU计算所需的核心功能,如内存管理、线程调度、并发控制等。

ROCm工具集:包括AMD的GPU调试器、性能分析器、代码优化工具等,用于帮助开发人员调试和优化GPU计算应用程序。

ROCm的目标是成为一个全面的GPU计算平台,支持各种编程语言和应用场景。它已经得到了广泛的应用,尤其是在深度学习、科学计算和大数据分析等领域。

ROCm是AMD的一个软件平台,用来加速GPU计算
A卡上编程模型使用的是HIP或者OpenCL,而运行环境是ROCm
N卡上,编程模型是CUDA,运行环境也是CUDA

链接: [https://rocmdocs.amd.com/en/latest/]
The AMD ROCm Programming-Language Run-Time
ROCm平台简介及使用汇总_第1张图片Important features include the following
ROCm平台简介及使用汇总_第2张图片rocFFT:快速傅里叶变换库,用于加速频域计算任务。
rocBLAS:基本线性代数子程序库,用于加速矩阵计算任务。
rocRAND:随机数生成库,用于生成随机数序列。
rocSPARSE:稀疏矩阵计算库,用于加速稀疏矩阵计算任务。

3. HIP

HIP(Heterogeneous-Compute Interface for Portability)是AMD开发的一种GPU编程模型,旨在实现GPU代码的可移植性。HIP提供了一组C++类和函数,允许开发人员在AMD和NVIDIA GPU上编写可移植的代码。HIP的编程模型与CUDA相似,但是它是一个开放的标准,不依赖于任何特定的GPU厂商。

HIP是一种编程模型,对标CUDA编程模型。
HIP 可以说是 CUDA API 的”山寨克隆“版。除了一些不常用的功能(e.g. managed memory)外,几乎全盘拷贝 CUDA API,是 CUDA 的一个子集。
HIP is a C++ runtime API 。我们使用C++语言,可以调用HIP的API来进行编程。
HIP可以运行在ROCm平台,也可以运行在CUDA平台。
所以他可以运行在A卡,但是也可以运行在N卡上(N卡主要还是CUDA) 。
HIP 的API和CUDA非常类似,大多数情况下他们代码稍加修改就可以直接转换。

3.1.CUDA转HIP

HIP提供了移植工具 “hipify”,可以帮助你将cuda源代码转换成HIP。虽然HIP和CUDA具有相似的编程模型,但是它们在一些细节上有所不同,因此转换后的代码可能需要进行一些手动调整和修改,以确保其在AMD GPU上能够正确运行。
此外,由于AMD和NVIDIA GPU具有不同的架构和指令集,因此在不同的GPU上运行HIP和CUDA应用程序时,性能可能会有所差异。因此,在将CUDA应用程序移植到AMD GPU上时,需要进行一些性能测试和优化,以确保其在AMD GPU上能够获得最佳性能。

链接: https://www.anandtech.com/show/9792/amd-sc15-boltzmann-initiative-announced-c-and-cuda-compilers-for-amd-gpus.

cuda代码a卡实现

ROCm平台简介及使用汇总_第3张图片

3.2 HIPify

链接: [https://docs.amd.com/bundle/HIPify-Reference-Guide-v5.4/page/HIPify.html]

HIPify是AMD ROCm软件堆栈的核心组件之一,也被许多其他GPU软件堆栈所支持。它使得将现有的CUDA代码移植到AMD GPU上变得更加容易,从而加速应用程序的开发和部署。

参考:

下载:
https://blog.csdn.net/qq_44948500/article/details/127346390?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168051145516800215074940%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=168051145516800215074940&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-127346390-null-null.142v81koosearch_v1,201v4add_ask,239v2insert_chatgpt&utm_term=rocm%E4%B8%8B%E8%BD%BD&spm=1018.2226.3001.4187

https://blog.csdn.net/qq_51403540/article/details/123951460?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168050586016800180666120%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=168050586016800180666120&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-3-123951460-null-null.142v81koosearch_v1,201v4add_ask,239v2insert_chatgpt&utm_term=rocm&spm=1018.2226.3001.4187

介绍:
https://blog.csdn.net/chongbin007/article/details/124043701?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168050586016800180666120%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=168050586016800180666120&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-1-124043701-null-null.142v81koosearch_v1,201v4add_ask,239v2insert_chatgpt&utm_term=rocm&spm=1018.2226.3001.4187

https://blog.csdn.net/JackyTintin/article/details/74637157

你可能感兴趣的:(项目经验,ubuntu,linux,服务器)