ROCm平台简介及使用汇总
AMD ROCm 平台简介及使用
1.ROCm下载
1.1下载安装
安装步骤如下官网下载amdgpu-install_xxxxxx.xxxxxx_all.debamd官网链接: [https://www.amd.com/en/support/kb/release-notes/rn-amdgpu-unified-linux-22-20]
# 更新软件库sudo apt update && sudo apt upgradesudo apt install wget gnupg2 # 22.04安装这个wget https://repo.radeon.com/amdgpu-install/5.4/ubuntu/jammy/amdgpu-install_5.4.50400-1_all.debsudo 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.debsudo 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
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上变得更加容易,从而加速应用程序的开发和部署。
参考:
下载:
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
来源地址:https://blog.csdn.net/weixin_45206081/article/details/129931038
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341