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
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上能够获得最佳性能。

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

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

ROCm平台简介及使用汇总相关推荐

  1. AMD ROCm 平台简介

    最近,AMD 发布 MIOpen.至此,AMD 始于15年的打造 GPU 计算生态的 Boltzmann Initiative,有了阶段性的成果. 下面本文从深度学习计算的视角来审视一下 AMD 推出 ...

  2. 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 文章汇总及学习指南...

    一.AgileEAS.NET平台简介 AgileEAS.NET平台是一套应用系统快速开发平台,用于帮助中小软件开发商快速构建自己的企业信息管理类开发团队,以达到节省开发成本.缩短开发时间,快速适应市场 ...

  3. 第三代测序平台简介-单分子实时测序

    第三代测序平台简介-单分子实时测序  (2017-09-16 15:35:13) ​转载▼ 标签: 测序仪 pacbiorsii 测序平台 分类: 三代测序 PacBio RS II 测序平台介绍 P ...

  4. JSON简介以及用法汇总

    SON简介以及用法汇总 什么是JSON? JavaScript 对象表示法(JavaScript Object Notation). JSON是一种轻量级的数据交换格式,某个JSON格式的文件内部譬如 ...

  5. rocm平台_痛击NV CUDA!AMD ROCm开放计算平台瓜熟蒂落

    去年11月的超级计算大会SC15上,AMD提出了"玻尔兹曼计划"(Boltzmann Initiative),重构了自己的整个HPC高性能计算软件平台,向着NVIDIA CUDA发 ...

  6. ML之Anaconda:关于Anaconda集成平台简介、安装、使用方法的详细攻略

    ML之Anaconda:关于Anaconda集成平台简介.安装.使用方法的详细攻略 目录 Anaconda简介 1.管理 Python 所用的包 2.管理 Python 不同版本的环境

  7. ITTC数据挖掘平台介绍(综述)——平台简介

    数据挖掘方兴未艾,大量新事物层出不穷.本系列将介绍我们自主设计的数据挖掘软件平台.与大家共同分享对知识,微博,人际等复杂网络的分析,以及对自然语言处理的见解. 一.我们需要怎样的数据挖掘系统 一直以来 ...

  8. iMAG移动应用快速开发平台简介

    跨平台的移动应用 移动应用产品往往要考虑多个平台的支持,至少需要兼容主流的iOS和Android平台.而多平台的支持往往因为不同平台技术的迥异需要建立不同的技术团队,开发周期长,成本高,后期维护升级也 ...

  9. ONENET平台简介及简单的接入方法

    ONENET平台简介及简单的接入方法 OneNET是中国移动物联网有限公司响应"大众创新.万众创业"以及基于开放共赢的理念,面向公共服务自主研发的开放云平台,为各种跨平台物联网应用 ...

最新文章

  1. FileSystem close Exception
  2. C++ using namespace 命名空间的定义与使用
  3. CodeForces.1174D.EhabandtheExpectedXORProblem(构造前缀异或和数组)
  4. foundation-datepicker只能选年份_你喝的年份酒和原浆酒都怎么来的?
  5. Spark Streaming 之foreachRDD 输出
  6. php redis hgetall 慢,redis的hGetAll函数的性能问题(记Redis那坑人的HGETALL)
  7. 10个精美免费PPT模板下载网站推荐
  8. 2022保密教育线上培训考试参考答案 05
  9. 树莓派4b 创乐博 7寸 1920*1200 分辨率触摸屏校准
  10. 小米平板2装win10(附驱动)
  11. AP(affinity propagation)聚类算法
  12. [机器学习与scikit-learn-29]:算法-回归-普通线性回归LinearRegression拟合线性分布数据的代码示例
  13. 谁说大象不能跳舞读后感
  14. 安全测试(五)Android APK软件安全 APP应用安全 手机软件安全 apk安全 apk反编译 应用日志窃取 apk漏洞 应用软件本身功能漏洞 高危权限泄密风险等 移动应用常规安全讲解
  15. css获取父元素下第几个元素出坑和JQuery通过index()获取下标出坑方法
  16. centos 拨号上网
  17. 视频教程-系统集成项目管理工程师考试-技术部分-软考
  18. 数据结构—— 构造散列函数的六种方法【直接定址法-数字分析法-平方取中法-折叠法-除留余数法-随机数法】
  19. SpringBoot集成ElasticSearch对API的实际应用封装(七)
  20. onnx模型输出所有中间层结果

热门文章

  1. 解决 idea 启动报错: Failed to create JVM.JVM.Path XXXXXXX\jbr\
  2. 最新北风网人工智能(完整版)
  3. 离线数仓-01-项目介绍和用户行为数据采集
  4. vue-router 两种模式
  5. 并发编程----接口聚合 (实现方法)
  6. python 函数练习题
  7. 站在新的起点上,扬帆起航
  8. 工科生的Java Hello World 透视投影动画 二-----和我一起熟悉Java的数组,列表,类型,和JFrame GUI初步
  9. Java物联网项目中,运行SPringBoot脚手架,运行失败问题
  10. 煤炭行业转型箭在弦上,云+AI推进两化深度融合