1.ROCm下载
1.1下载安装注意:ROCm目前仅限在Linux系统下可用,Windows暂不支持
安装步骤如下 官网下载: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
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
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 usermod -a -G video,render $LOGNAME
1.2验证
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
Important features include the following
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上能够获得最佳性能。
cuda代码a卡实现
3.2 HIPify
链接: [https://docs.amd.com/bundle/HIPify-Reference-Guide-v5.4/page/HIPify.html]
HIPify是AMD ROCm软件堆栈的核心组件之一,也被许多其他GPU软件堆栈所支持。它使得将现有的CUDA代码移植到AMD GPU上变得更加容易,从而加速应用程序的开发和部署。

Thanks for sharing. I read many of your blog posts, cool, your blog is very good.
Hello guys!
I came across a 178 very cool site that I think you should check out.
This resource is packed with a lot of useful information that you might find insightful.
It has everything you could possibly need, so be sure to give it a visit!
[url=https://informatico.pt/blog/protecao-pme-ransomware/]https://informatico.pt/blog/protecao-pme-ransomware/[/url]
And don’t forget, guys, which one at all times can in the piece find responses to address your most tangled queries. Our team tried to explain all information via the very accessible way.