AMD ROCm搭配Stable Diffusion:Linux系统下的AIGC性能超越Windows

发表时间: 2024-04-08 10:38

众所周知,在当下火热的AIGC应用领域内,GPU对应用加速的支持程度一直以来都是广大用户所津津乐道的“显摆”领域。在这一领域内,NVIDIA由于先行一步布局市场,基于CUDA的AIGC加速解决方案已经趋近于成熟,英特尔也有OpenVino框架用于自身CPU、GPU的AIGC加速应用。而对于另一家核心GPU厂商AMD来说,它交出的答卷则是ROCm。

正如我们此前多次在各种评测和技术文章中所强调过的一样,对当前的消费级应用领域而言,显卡的性能并不仅仅限于游戏,设计创作性能和近年来大火的AI应用都逐渐成了主流显卡性能考核的重要指标。

虽然在整体布局的步伐上,相比先行一步的CUDA要慢一些,但AMD还是在AI应用领域内积极地发力追赶,并做出了不少比较显著的成绩。不光是开始在CPU、GPU的核心内加入了更多AI计算相关的硬件单元,而且在软件框架方面也提出了基于Radeon GPU的AI计算解决方案,以此来与成熟的CUDA框架方案竞争,这就是被称为“Radeon Open Compute Platform”的ROCm框架,通常我们将其称为Radeon开源计算平台。

ROCm简析

AMD ROCm是一个由驱动程序、开发工具套件和API协议共同组成的AI计算解决方案框架。它能够在一个免费、开源和集成的软件生态系统中开发、协力创作、测试和部署各类应用程序。按照AMD给出的资料来看,ROCm特别适合于GPU加速的高性能计算(HPC)、人工智能(AI)、科学计算和计算机辅助设计(CAD)。并提供了对当前比较流行的AI和ML框架的支持,如TensorFlow、JAX、Pytorch等,这也使得ROCm对平台的支持能更加广泛。

AMD ROCm是一个开源软件平台,可在AMD和其他厂商硬件上实现卓越的高性能计算和 AI 计算。通过 ROCm,用户在运行高性能计算工作负载时能够体会到更出色的自由和访问便捷。ROCm框架的主要核心诉求在于为高性能计算和机器学习应用提供支持,基于GPU计算,通过开放的编程模型和标准的API,使开发者能够利用AMD的GPU资源进行高效的数据处理和计算,在科学计算、深度学习和数据分析等领域有着广泛的应用前景。也是被AMD寄予厚望在AI应用领域上用以追赶CUDA框架的重要技术。

支持Radeon RX 7900系,AIGC应用更上一层楼

从5.7版本开始,ROCm带来了飞跃式的更新进化。大量全新更新的功能和改进,也是将AMD的硬件产品性能充分地发挥了出来,在多种应用场合下都有比较不错的表现。尤其是在5.7版本中,ROCm加入了Linux系统下对消费级显卡Radeon RX 7900 XTX和RX 7900 XT的支持,这样一来消费者无疑就能得到更多的改进优势,能够在基于AMD RDNA 3架构打造的AMD Radeon显卡上进行机器学习,也能充分利用性能优秀的AMD Radeon RX 7900系列台式机显卡来运行机器学习模型和各类AI算法,比如大家最常用的AI Chat和AIGC都能从中受益匪浅。而在最新发布的ROCm 6.0版本上,还提供了对消费级显卡Radeon RX 7900 GRE的支持。


▲ROCm 6.0在5.7版本的基础上加入了对Radeon RX 7900 GRE和Radeon Pro W7800显卡的支持

那么,ROCm 5.7版本之后,对消费者的意义何在?

首先,我们要清楚地看到,ROCm实现对Radeon RX 7900系显卡的支持的真正意义。AMD Radeon RX 7900 系列显卡基于 AMD RDNA 3 架构打造,其每个计算单元的AI性能都是上一代产品的两倍以上。上一代的产品Radeon RX 6950 XT具备128MB第一代AMD无限高速缓存,采用256位内存总线和18Gbps GDDR6内存,提供1793.5 GB/秒的带宽。Radeon RX 7900 XT则配置了80MB第二代AMD无限高速缓存,320位内存总线,20Gbps GDDR6内存,提供2912 GB/秒的带宽;而顶级的Radeon RX 7900 XTX则拥有96MB第二代AMD无限高速缓存,采用384位内存总线和20Gbps GDDR6内存,能够提供3494.4 GB/s的带宽。不仅如此,它们还可提供多达192个AI加速器以及出色的显存带宽,其搭载的显存最高可达24GB,在处理大型机器学习模型方面同样拥有不小的优势。

▲RDNA 3架构的新一代GPU中,每个CU单元中包含了2个新设计的AI计算加速核心,采用全新AI指令设计,AI吞吐量可提供高达2.7倍于前代AMD RDNA 2架构的性能。

▲新RDNA 3架构采用双发指令集设计,在执行和渲染效率上可以达到2倍的性能提升。

▲AMD RDNA 3架构基于全新的计算单元、第二代AMD高速缓存和5nm小芯片架构,AMD RDNA 3架构相比前代AMD RDNA 2架构可提供多达54%的更高每瓦性能。

以大家都非常熟悉的AIGC应用Stable Diffusion来举例。很明显,相较于以前模拟CUDA框架的AIGC应用解决方案,在ROCm支持Radeon RX 7900系显卡之后,由于原生支持各种主流的AI框架,比如TensorFlow、JAX和PyTorch。这会进一步激发出Radeon GPU的AI计算性能,理论上肯定会使Radeon RX 7900系显卡的AIGC性能得到极大的提升。参考AMD给出的资料,也表明在Linux系统下搭建基于PyTorch的Stable Diffusion WEB UI加入ROCm框架之后,其出图效率将比Windows系统下Stable Diffusion WEB UI+DirectML的方式大幅提升。为此,我们也进行了一番实际的测试,ROCm能否为RX 7900系显卡带来AIGC应用的巨大性能提升?让我们一起来看看。

实测,ROCm+UBUNTU性能优势明显

测试硬件平台

CPU:AMD锐龙9 7950X3D

显卡:AMD Radeon RX 7900 XT公版

内存:DDR5 7200 24GB×2

硬盘:NVMe PCIe SSD 1TB

测试软件平台

UBUNTU 22.04.3:

Stable Diffusion WEB UI Automatic 1111+ROCm 5.7

驱动程序 Radeon Software for Linux version 23.40.2

Windows 11 Pro:

Stable Diffusion WEB UI Automatic 1111+DirectML

驱动程序 Radeon Software Adrenalin Edition 24.3.1

在测试中,我们在UBUNTU系统下搭建了基于ROCm 5.7的Stable Diffusion Automatic 1111本地部署,作为对比的是在Windows下搭建同样的Stable Diffusion Automatic 1111+DirectML。测试使用的Python版本为3.10.6,Pytorch版本为2.3。在模型的选择上,两种系统下的Stable Diffusion都使用了相同版本的SD V.15标准模型。

▲UBUNTU系统下的Stable Diffusion界面,我们使用的ROCm为成熟的5.7版本。

在以下测试中,统一设置参数如下。

迭代步数:50

采样器:DPM2++Karras

生成批次:5、1

每批数量:1

提示词相关性:7

关键词1:海边的卡通风格女孩

Portrait photography, a girl leans into the water to look at herself, in the style of romantic soft focus and ethereal light, exaggerated poses, white and orange, romantic use of light, backlit photography, fang lijun, seaside vistas --v 5.2 --s 250 --style raw --ar 5:7

首先在第一个关键词“海边卡通女孩”生成的测试中,在Windows 11+DirectML环境下,单张图片生成时,生成一张图片约耗时11秒左右,出图效率约为5.5张/分。但是在UBUNTU+ROCm环境下,单张图片的生成时间缩短到了6.2秒左右,出图效率也提升到了9.68张/分。而批量生成5张图片的测试结果也基本保持了一致。

从测试结果来看,UBUNTU系统下附加的ROCm确实为RX 7900 XT带来了非常明显的AIGC性能提升,相比Windows环境下,出图效率的提升约为80%。

关键词2:写实风格女孩图片

Commercial photography, golden ginkgo tree, Korean girl (20-25 years old), waist-length black flowing hair, flowing long skirt, big eyes, smile, pink lips, pink cheeks, red lips, relaxed, upset, blushing, Shy, goddess-like,playful style, dreamy imagery, fairy tale core, Chie Yoshii, ultra high definition image, color collage, forced perspective, golden ginkgo tree :: golden::0.5 --ar 7:5 --v 5.2 --s 250 --style raw

和关键词1的测试结果非常接近,在“写实风格女孩”图片生成测试中,UBUNTU系统+ROCm 5.7同样带来了性能上的显著提升。相比Windows 11系统+DirectML环境,在图片生成时间上缩短了平均70%,而在出图效率上提升了70%。

关键词3:高达机甲战士

Gundam, Neon Genesis, Ultra Light Beams, Directed by Denis Villeneuve, Production Stills, Fuji Film Stock

仍然和前两个测试相仿,在“高达机甲战士”的图片生成性能测试中,单张图片的生成效率在UBUNTU+ROCm 5.7环境下相比Windows 11+DirectML提升约82%,5张图片生成测试中这一提升则达到了84%左右。UBUNTU系统下使用ROCm带来的AIGC性能提升非常明显。

▲测试成绩总表,黄色:关键词 海边女孩;浅绿色:关键词:写实女孩;浅粉色:关键词 高达机甲战士。

RX 7900系+ROCm,AIGC应用加速的不错选择

从我们本次的测试情况来看,UBUNTU环境下的ROCm扩展已经表现出了相较于传统的DirectML方式非常大的性能提升,基本达到了75%甚至更高。再加上Radeon RX 7900系显卡一贯的高显存配置和比较亲民的市场价格,因此对那些经常需要使用AIGC应用进行图形图像创作的用户来说,选择Radeon RX 7900 XT这样的显卡在UBUNTU等Linux系统下搭配ROCm扩展,无疑能取得事半功倍的出图效率,也是非常值得推荐的。

从目前的情况来看,ROCm更新到最新的6.0版本之后,该有的东西也基本趋于完善了,包括对硬件的支持、AI开发SDK、运行框架、加速数据库以及各种工具包等。现在主要的问题可能还是在于ROCm的用户群体目前尚未完全成熟,相对较少,导致很多玩家对ROCm的应用环境并不熟悉。这应该需要一个相对较长的时间来培养AIGC用户对ROCm的使用粘性,同时也需要AMD对ROCm持续不断地进行更新,尤其是在对系统和硬件的广泛支持度上可以更加发力去完善。当然,现在玩家最希望的,恐怕还是AMD尽早实现ROCm新版本对Windows系统的支持。

在前不久的AMD AI PC峰会上,我们也看到了AMD在AI领域上的发力决心,由此我们也有理由相信ROCm的未来是完全可期的!拭目以待!