Radeon GPU上使用ROCm一些技术点

 Radeon GPU上使用ROCm一些技术点
1. 使用最新的高端AMD Radeon™7000系列GPU,将桌面变成机器学习平台
AMD已扩展了对RDNA™3 GPU上机器学习开发的支持,该GPU具有Radeon™软件,适用于Linux 24.10.3和ROCm™6.1.3!
使用PyTorch、ONNX运行时或TensorFlow的机器学习(ML)模型,开发人员可以在Linux®上使用ROCm 6.1.3,以利用最新高端AMD Radeon 7000系列台式机GPU的并行计算能力,并基于AMD RDNA 3 GPU架构。
基于强大的高端AMD GPU构建的客户端解决方案,可以实现本地、私有和经济高效的工作流程,为完全依赖云解决方案的用户开发ROCm和训练机器学习。
2. 为桌面提供更高的机器学习性能
当今的模型很容易超过非人工智能设计的标准硬件和软件的能力,机器学习工程师正在寻找经济高效的解决方案,开发和训练他们的机器学习驱动的应用程序。由于24GB或48GB的超大GPU内存的可用性,使用配备最新高端AMD Radeon 7000系列GPU的本地PC或工作站,提供了一种强大/有效但经济的选择,以应对这些不断扩大的ML工作流程挑战。
AMD Radeon 7000系列GPU基于RDNA 3 GPU架构构建,与上一代相比,每个计算单元(CU)的AI性能提高了2倍以上。配备了192个AI加速器,提供高达24GB或48GB的GPU内存来处理大型ML模型。
    AMD ROCm6.1软件解决方案堆栈,如图2-12所示。
 
图2-12 AMD ROCm6.1软件解决方案堆栈
根据2022年11月AMD的内部测量结果,将Radeon RX 7900 XTX在2.505 GHz升压时钟下,与96个CU在每个时钟下发出2倍的Bfloat16数学运算进行比较,而Radeon RX 6900 XT GPU在2.25 GHz升压时钟上,与80个CU在每个时钟下发出1倍的B浮点16数学运算。结果可能会有所不同。
3. 将应用程序从桌面迁移到数据中心
ROCm是用于图形处理单元(GPU)编程的开源软件栈。ROCm涵盖了多个领域:GPU上的通用计算(GPGPU)、高性能计算(HPC)和异构计算。
  AMD ROCm 6.1.3 GPU编程软件栈,释放了这些RDNA 3 GPU的大规模并行计算能力,可用于各种ML框架。同一软件栈还支持AMD CDNA™GPU架构,因此开发人员可以将应用程序从首选框架迁移到数据中心。
4. 自由定制
ROCm主要是开源软件(OSS),它允许开发人员自由地根据自己的需求定制和定制GPU软件,同时与其他开发人员社区合作,以敏捷、灵活、快速和安全的方式帮助彼此找到解决方案。AMD ROCm允许用户最大限度地提高GPU硬件投资。ROCm旨在帮助在自由、开源、集成和安全的软件生态系统中开发、测试和部署GPU加速的HPC、AI、科学计算、CAD和其他应用程序。计算
5. 提高互操作性
提高互操作性,包括以下几种。
1)支持PyTorch,领先的机器学习框架之一。
2)支持ONNX运行时对更广泛的源数据进行推理,包括使用MIGraphX的INT8。
3)支持TensorFlow。
如果成功,应该看到输出,表明图像分类器现在已在此数据集上训练到约98%的准确率,如图2-13所示。
 
图2-13 图像分类器在数据集上训练到约98%的准确率
环境设置已完成,系统已准备好与TensorFlow一起使用,以处理机器学习模型和算法。
6. Linux兼容性
按ROCm版本划分的Linux兼容的矩阵[n1] [2] 计算。
7. ROCm 6.1.3
最新ROCm版本的兼容操作系统、GPU和框架支持矩阵。
要回滚以前版本的支持列表和安装说明,单击屏幕右上角的版本列表,或选择左下角的版本(v:)菜单。
8. 操作系统支持矩阵
操作系统内核支持信息,见表2-8。
表2-8 操作系统内核支持信息

操作系统

内核

支持

Ubuntu® 22.04.4带HWE的桌面版本

带硬件的Ubuntu®22.04.4桌面版,

Ubuntu内核6.5

9. 框架+ROCm支持矩阵
查看PyTorch、ONNX和TensorFlow框架的ROCm支持矩阵。
10. PyTorch+ROCm支持矩阵
PyTorch版本、ROCm版本说明信息,见表2-9。
表2-9 PyTorch版本、ROCm版本说明信息

PyTorch版本

ROCm版本

说明

2.1.2

6.1.3

官方生产支持。可从AMD.com获取

2.5+/Nightly

6.1

可从PyTorch.org获取夜间构建版本,未经AMD广泛测试

2.3/Stable

6.0

Radeon 7000系列不支持

11. AI数据操作(PyTorch)[n3] 精度
AI数据操作(PyTorch)支持多种精度,例如:
1)FP32
2)FP16
3)混合精度 (FP32/FP16)
4)INT8
12. ONNX + ROCm支持矩阵
ONNX版本、ROCm版本说明信息,见表2-10。
表2-10 ONNX版本、ROCm版本说明信息

ONNX版本

ROCm版本

说明

1.17

6.1.3

官方生产支持。可从AMD.com获取。

13. AI数据操作(ONNX)[n4] [5] 精度
AI数据操作(ONNX)支持多种精度,例如:
1)FP32
2)FP16
3)INT8 (MIGraphX)
4)混合精度 (FP32/FP16)
14. TensorFlow+ROCm支持矩阵
Tensorflow版本、ROCm版本说明信息,见表2-11。
表2-11 Tensorflow版本、ROCm版本说明信息

TensorFlow版本

ROCm版本

说明

2.15

6.1.3

官方生产支持。可从AMD.com获取。

15. AI数据操作(TensoFlow)精度
AI数据操作(TensorFlow)支持多种精度,例如:
1)FP32
2)FP16
2.8.2 ROCm兼容矩阵(WSL)
1. ROCm 6.1.3
提供有关ROCm™组件、Radeon™GPU和适用于Windows Linux的Radeon软件®子系统(WSL)兼容性的信息。
要回滚以前版本的支持列表和安装说明[6] 。
1. GPU支持矩阵
AMD ROCm支持的操作系统与硬件信息,见表2-12。
表2-12 AMD ROCm支持的操作系统与硬件信息

ROCm版本

适用于Linux®版本的Radeon™软件

适用于Windows版本的Radeon™软件

支持的AMD Radeon™硬件

6.1.3

24.10.3

AMD软件:适用于WSL 2的Adrenalin Edition™24.6.1

AMD Radeon RX 7900 XTX
AMD Radeon RX 7900 XT
AMD Radeon RX 7900 GRE
AMD Radeon PRO W7900
AMD Radeon PRO W7900DS
AMD Radeon PRO W7800

2. 框架+ROCm支持矩阵
查看PyTorch的ROCm支持矩阵。
PyTorch+ROCm支持矩阵
AMD ROCm支持的操作系统与硬件信息,见表2-12。
表2-12 AMD ROCm支持的操作系统与硬件信息

PyTorch版本

ROCm版本

说明

2.1.2

6.1.3

官方生产支持。可从AMD.com获取。

2.5+/Nightly

6.1

可从PyTorch.org获取夜间版本,未经AMD广泛测试。

2.3/Stable

6.0

Radeon 7000系列不支持。

3. 局限性
Radeon™PRO系列图形卡不是为数据中心使用而设计的,也不建议使用GD-239。在数据中心设置中使用可能会对可管理性、效率、可靠性和/或性能产生不利影响。
ROCm在任何移动SKU上都不受官方支持。
4. 多GPU配置
在Windows Linux子系统(WSL)[n7] [8] 环境中的ROCm中,由于此时对Radeon™WSL配置上的ROCm™验证有限,因此确定了常见错误和适用建议。

ROCm 6.1.3版本仅限于对WSL配置的预览支持。[1] 

5. ROCm smi支持

由于WSL架构对原生Linux用户内核界面(UKI)的限制,不支持rocm-smi,见表2-13。

表2-13 WSL架构对原生Linux用户内核界面(UKI)的限制,不支持rocm-smi[n2] [3] 

由于WSL架构对原生Linux用户内核界面(UKI)的限制,不支持rocm-smi

问题

局限性

UKI目前不支持rocm-smi

目前不支持:

1主动计算进程

2GPU利用率

3可修改的状态特征

6. 在虚拟环境中运行PyTorch

在虚拟环境中运行PyTorch,需要手动libhsa-runtime64.so更新。

当使用WSL用例和hsa-runtime-rocr4wsl-amdgpu包(与PyTorch轮子一起安装)时,用户需要更新到WSL兼容的运行库。

7. 解决方案

输入以下命令:

location=`pip show torch | grep Location | awk -F ": " '{print $2}'`

cd ${location}/torch/lib/

rm libhsa-runtime64.so*

cp /opt/rocm/lib/libhsa-runtime64.so.1.2 libhsa-runtime64.so


 
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/901200.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推荐几本书1《AI芯片开发核心技术详解》、2《智能汽车传感器:原理设计应用》、3《TVM编译器原理与实践》、4《LLVM编译器原理与实践》

4本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该…

ragflow-naive模式pdf解析 调试日志

测试用例1:test_emf 无图映射解析结果 boxes1: {x0: 70.0, x1: 308.6666666666667, top: 76.0, text: Test with three images in unusual formats, bottom: 90.0, page_number: 1, layout_type: } {x0: 70.66666666666667, x1: 152.33333333333334, top: 109.66666666666667, …

树形DP 树的重心

树形DP 树的重心 给定一颗树,树中包含 \(n\) 个结点(编号 \(1 \sim n\))和 \(n-1\) 条无向边。 请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。 重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个…

Bootstrap5入门

Bootstrap 5 入门教程 目录Bootstrap 简介 环境配置 布局与网格系统 常用组件 工具类与工具函数 定制化与主题 项目实战示例1. Bootstrap 简介什么是 Bootstrap?开源前端框架,用于快速构建响应式网页。 基于 HTML、CSS、JavaScript。Bootstrap 5 新特性移除 jQuery,依赖原生…

如何写自己的springboot starter?自动装配原理是什么?

如何写自己的springboot starter?自动装配原理是什么? 官方文档地址:https://docs.spring.io/spring-boot/docs/2.6.13/reference/html/features.html#features.developing-auto-configuration 1. 不用starter有什么弊端?我们开发需要引入maven依赖,如果我们需要的依赖又有…

清理 node.js 包管理工具 npm 的缓存

清理 node.js 包管理工具 npm 的缓存清理 node.js 包管理工具 npm 的缓存 要清理 Node.js 包管理工具 npm 的缓存,可以按照以下步骤操作。npm 的缓存主要用于存储下载的包,通常位于用户主目录下的 .npm 文件夹中。以下是清理方法: 1. 检查 npm 缓存位置 npm 默认将缓存存储在…

清理 Python 包管理工具 pip 的缓存

清理 Python 包管理工具 pip 的缓存清理 Python 包管理工具 pip 的缓存 要清理 pip 的缓存,可以按照以下步骤操作(适用于 Python 的包管理工具 pip):检查 pip 缓存位置 pip 默认会将下载的包缓存在本地。你可以通过以下命令查看缓存目录: pip cache dir常见的缓存路径:Wi…

清理 Python 的包管理工具 pip 的缓存

清理 Python 的包管理工具 pip 的缓存清理 Python 的包管理工具 pip 的缓存 要清理 pip 的缓存,可以按照以下步骤操作(适用于 Python 的包管理工具 pip):检查 pip 缓存位置 pip 默认会将下载的包缓存在本地。你可以通过以下命令查看缓存目录: pip cache dir常见的缓存路径…

微服务的网关配置

微服务的网关配置 1. 网关路由 1.1 网关 1.1.1 存在问题 单体架构时我们只需要完成一次用户登录、身份校验,就可以在所有业务中获取到用户信息。而微服务拆分后,每个微服务都独立部署,这就存在一些问题:每个微服务都需要编写身份校验、用户信息获取的接口,非常麻烦。 用户…

博客图床 VsCode + PigGo + 阿里云OSS方案

关键字 写博客,图床,VsCode,PigGo,阿里云OSS 背景环境 我想把我在本地写的markdown文档直接搬到CSDN上和博客园上,但是图片上传遇到了问题。我需要手动到不同平台上传文件,非常耗费时间和经历。 为了解决这个问题,我想到了图床方案,我只需要把图片链接放到我本地写好的…

20244203张晨曦 实验一《Python程序设计》实验报告

20244203张晨曦《Python程序设计》实验一报告 课程:《Python程序设计》 班级: 2442 姓名: 张晨曦 学号:20244203 实验教师:王志强 实验日期:2025年3月18日 必修/选修: 专选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能; 3.编写程序,练习变量和…

Cobalt Strike基础

Cobalt Strike基础 Staged(有阶段) 在有阶段的执行方式中,分为Stager和Stage两个阶段Stager(初始执行载荷):​ 定义:Stager是Stage 1,是一个较小的、轻量级的初始执行载荷 ​ 作用:与服务端建立初始连接,并从服务器下载更大的Payload,也就是Stage2Stage(更大、…