找回密码
 加入我们
搜索
      
查看: 11955|回复: 24

[软件] [AI相关4]你们要的AI benchmark,toms关于stable diffusion测评

[复制链接]
发表于 2023-2-28 09:58 | 显示全部楼层 |阅读模式
原文论坛

人工智能和深度学习最近不断出现在头条新闻中,无论是Chatg/p/t产生的不良建议,自动驾驶汽车,艺术家被指控使用人工智能,人工智能的医疗建议,等等。这些工具大多依靠复杂的服务器和大量的硬件进行训练,但通过推理使用训练过的网络可以在你的PC上,使用其显卡来完成。但是,消费类GPU做人工智能推理的速度如何?

我们在最新的Nvidia、AMD甚至英特尔的GPU上对AI画图(Stable Diffusion)这一流行的人工智能图像创建器进行了基准测试,看看它们的表现如何。如果你碰巧尝试过在自己的PC上启动和运行Stable diffusion,你可能会对这一过程的复杂性--或简单性--有一些了解。- 这可能是多么复杂或简单。简而言之,Nvidia的GPU占主导地位,大多数软件都是使用CUDA和其他Nvidia工具集设计的。但这并不意味着你不能在其他GPU上运行Stable Diffusion。

我们最终使用了三个不同的Stable Diffusion项目进行测试,主要是因为没有一个软件包可以在每个GPU上运行。对于Nvidia,我们选择了Automatic 1111的webui版本(在新标签中打开);它表现最好,有更多的选项,而且很容易运行。AMD GPU使用Nod.ai的Shark版本(在新标签中打开)进行测试--我们检查了Nvidia GPU的性能(在Vulkan和CUDA模式下),发现它是......不足的。由于缺乏支持,让英特尔的Arc GPU运行起来有点困难,但Stable Diffusion OpenVINO(在新标签中打开)给了我们一些非常基本的功能。

免责声明是有必要的。我们没有对这些工具进行编码,但我们确实在寻找那些容易运行的工具(在Windows下),而且似乎也得到了合理的优化。我们比较有信心的是,Nvidia 30系列测试在提取接近最佳性能方面做得很好--特别是当xformers被启用时,它提供了额外的约20%的性能提升(尽管精度降低,可能影响质量)。同时,RTX 40系列的结果最初较低,但George SV8ARJ提供了这个修复方法(在新标签中打开),其中更换PyTorch CUDA DLLs对性能有一个健康的提升。

AMD的结果也有点喜忧参半。RDNA 3 GPU表现非常好,而RDNA 2 GPU似乎相当平庸。Nod.ai让我们知道他们仍在为RDNA 2的 "调整 "模型工作,一旦它们可用,性能应该会有相当大的提升(可能是两倍)。最后,在英特尔GPU上,尽管最终的性能似乎与AMD的选项一致,但在实践中,渲染的时间大大延长--在实际生成任务开始之前需要5-10秒,而且可能有很多额外的后台东西正在发生,使其变慢。

由于软件项目的选择,我们也在使用不同的Stable Diffusion模型。Nod.ai的Shark版本使用SD2.1,而Automatic 1111和OpenVINO使用SD1.4(尽管在Automatic 1111上可以启用SD2.1)。同样,如果你对Stable Diffusion有一些内部知识,并且想推荐不同的开源项目,这些项目可能比我们使用的项目运行得更好,请在评论中告诉我们(或者直接给Jarred发邮件(在新标签中打开))。

我们的测试参数对所有的GPU都是一样的,尽管在英特尔版本上没有负面提示选项(至少,我们没有找到)。上面的图集是在Nvidia GPU上使用Automatic 1111的webui生成的,具有更高的分辨率输出(需要更长的时间来完成)。这是同样的提示,但目标是2048x1152,而不是我们用于基准测试的512x512。请注意,我们选择的设置是为了在所有三个SD项目上工作;一些可以提高吞吐量的选项只在Automatic 1111的构建中可用,但后面会有更多的内容。以下是相关的设置。

正面提示。
末世蒸汽朋克城市、探索、电影、现实、超级细节、逼真的最大细节、体积光、((焦点))、广角、((明亮的光线))、(((植被))、闪电、藤蔓、破坏、毁灭、荒芜、废墟

负面的提示。
(((模糊)), ((有雾)), ((黑暗)), ((单色)), 太阳, ((景深))

步数。
100

分类器自由指导。
15.0

采样算法。
某种欧拉变体(自动1111的祖先,AMD的鲨鱼欧拉离散)。

采样算法似乎并不对性能产生重大影响,尽管它可能影响输出。自动1111提供了最多的选择,而英特尔的OpenVINO构建则没有给你任何选择。

以下是我们对AMD RX 7000/6000系列、Nvidia RTX 40/30系列和Intel Arc A系列GPU的测试结果。请注意,每个Nvidia GPU都有两个结果,一个是使用默认的计算模型(速度较慢,呈黑色),另一个是使用Facebook的更快的 "xformers "库(在新标签中打开)(速度较快,呈绿色)。


正如预期的那样,与AMD或英特尔的任何产品相比,Nvidia的GPU提供了卓越的性能--有时是以巨大的优势。随着Torch的DLL修复到位,RTX 4090的性能比带有xformers的RTX 3090 Ti高出50%,而没有xformers的性能则高出43%。生成每张图片只需要三秒多,甚至RTX 4070 Ti也能勉强超过3090 Ti(但如果你禁用xformers就不行)。

从Nvidia GPU的顶级卡中,性能以相当一致的方式下降,从3090下降到3050。同时,AMD的RX 7900 XTX与RTX 3090 Ti并驾齐驱(经过额外的重新测试),而RX 7900 XT与RTX 3080 Ti并驾齐驱。7900卡看起来相当不错,而每张RTX 30系列卡最终都能击败AMD的RX 6000系列部件(目前)。最后,英特尔Arc GPU几乎排在最后,只有A770设法超过了RX 6600。让我们再来谈一谈这些差异。

适当的优化可以使RX 6000系列卡的性能提高一倍。Nod.ai说,它应该在未来几天内为RDNA 2调整模型,届时整体性能应该开始与理论性能有更好的关联。说到Nod.ai,我们也使用该项目对一些Nvidia GPU做了一些测试,在Vulkan模型下,Nvidia显卡的速度大大低于Automatic 1111的构建(4090的15.52 it/s,4080的13.31,3090 Ti的11.41,3090的10.76 - 我们无法测试其他显卡,因为它们需要先被启用)。

基于7900卡使用调谐模型的性能,我们对Nvidia卡也很好奇,它们能够从其Tensor核心中获得多少好处。在纸面上,4090的性能是RX 7900 XTX的五倍以上--即使我们不考虑稀疏性,也是2.7倍。在实践中,现在的4090在我们使用的版本中只比XTX快50%左右(如果我们省略精度较低的xformers结果,则下降到只有13%)。这同样的逻辑也适用于英特尔的Arc卡。

英特尔的Arc GPU目前提供了非常令人失望的结果,特别是由于它们支持FP16 XMX(矩阵)操作,应该提供高达4倍于常规FP32计算的吞吐量。我们怀疑目前我们使用的Stable Diffusion OpenVINO项目也有很大的改进空间。顺便提一下,如果你想尝试在Arc GPU上运行SD,请注意你必须编辑'stable_diffusion_engine.py'文件,将 "CPU "改为 "GPU"--否则它就不会使用显卡进行计算,而且需要花费大量时间。

那么总的来说,使用指定的版本,Nvidia的RTX 40系列卡是最快的选择,其次是7900卡,然后是RTX 30系列GPU。RX 6000系列表现不佳,而Arc GPU看起来普遍较差。随着软件的更新,情况可能会发生根本性的变化,考虑到人工智能的普及,我们预计看到更好的调校只是时间问题(或者找到已经调校好的正确项目,提供更好的性能)。


我们还对传统的GPU进行了一些测试,特别是Nvidia的图灵架构(RTX 20-和GTX 16-系列)和AMD的RX 5000-系列。RX 5600 XT失败了,所以我们在RX 5700的测试中离开了,而GTX 1660超级版的速度很慢,我们觉得没有必要对低级别部件做进一步的测试。但这里的结果是相当有趣的。

首先,RTX 2080 Ti的表现最终超过了RTX 3070 Ti。这通常不会发生,在游戏中,即使是虚构的3070也往往会击败前冠军。更重要的是,这些数字表明,Nvidia在安培架构中的 "稀疏性 "(sparsity)优化根本没有被使用--或者也许它们根本不适用。

我们一会儿会讨论一些其他的理论计算性能数字,但再次考虑RTX 2080 Ti和RTX 3070 Ti作为一个例子。2080 Ti的张量核心不支持稀疏性,有高达108 TFLOPS的FP16计算。RTX 3070 Ti支持稀疏性,有174 TFLOPS的FP16,或不支持稀疏性下的常规87 TFLOPS的FP16。2080 Ti击败3070 Ti的事实清楚地表明,稀疏性并不是一个因素。同样的逻辑适用于其他比较,如2060和3050,或2070超级和3060 Ti。

至于AMD的RDNA卡,RX 5700 XT和5700,在性能上有很大差距。5700 XT仅比6650 XT领先,但5700低于6600。从纸面上看,XT卡的速度应该高达22%。然而,在我们的测试中,它的速度是37%。无论哪种方式,在我们最初的stable diffusion基准测试中,旧的Navi 10 GPU都没有特别的性能。

最后,GTX 1660超级版在纸面上的理论性能应该是RTX 2060的1/5左右,使用后者的Tensor核心。如果我们使用FP16的着色器性能(图灵在FP16着色器代码上有两倍的吞吐量),差距缩小到只有22%的赤字。但是在我们的测试中,GTX 1660超级版的速度只有RTX 2060的1/10左右。

同样,目前还不清楚这些项目到底有多优化。也不清楚这些项目是否完全利用了诸如Nvidia的Tensor核心或英特尔的XMX核心。因此,我们认为看一下各种GPU的最大理论性能(TFLOPS)会很有趣。下图显示了每个GPU的FP16理论性能(只看较新的显卡),在适用的地方使用张量/矩阵核心。Nvidia的结果还包括"稀疏性 "(sparsity)--基本上是在矩阵中最多一半的单元中跳过乘以0的能力,据说这在深度学习工作负载中是相当频繁地发生的。[正确地偷懒 ]


Nvidia的那些Tensor核心显然是有冲击力的(灰色/黑色条是没有稀疏性的),显然我们的stable diffusion测试与这些数字不完全吻合--甚至不接近。例如,在纸面上,RTX 4090(使用FP16)比RTX 3090 Ti快106%,而在我们的测试中,它在没有xformers的情况下快43%,而在有xformers的情况下快50%。还要注意的是,我们假设我们使用的稳定扩散项目(自动1111)没有利用Ada Lovelace GPU上的新FP8指令,这有可能使RTX 40系列的性能再次翻倍。

同时,看看Arc GPU。他们的矩阵核心应该提供类似于RTX 3060 Ti和RX 7900 XTX的性能,给或不给,A380下降到RX 6800左右。在实践中,Arc GPU远远没有达到这些分数。最快的A770 GPU介于RX 6600和RX 6600 XT之间,A750仅次于RX 6600,而A380的速度大约是A750的四分之一。因此,它们都是预期性能的四分之一,如果不使用XMX核心,这将是合理的。

不过,Arc上的内部比率看起来确实差不多。A380的理论计算性能大约是A750的四分之一,这也是它现在在稳定扩散性能方面的位置。最有可能的是,Arc GPU正在使用着色器进行计算,在全精度FP32模式下,错过了一些额外的优化。

另一件需要注意的事情是,与RX 6000系列相比,AMD的RX 7900 XTX/XT的理论计算能力提高了很多。我们得看看经过调整的6000系列型号是否能缩小差距,因为Nod.ai说它期望在RDNA 2上的性能有大约2倍的提高。 内存带宽并不是一个关键因素,至少对于我们使用的512x512目标分辨率而言--3080的10GB和12GB型号落在一起相对较近。


下面是对FP16理论性能的不同看法,这次只关注各种GPU通过着色器计算能做什么。Nvidia的Ampere和Ada架构以与FP32相同的速度运行FP16,因为假设FP16可以被编码为使用Tensor核心。相比之下,AMD和英特尔的GPU在FP16着色器计算上的性能是FP32的两倍。

很明显,这第二张FP16计算的图表与我们的实际性能相比,并没有更好的张量和矩阵核心的图表,但也许在设置矩阵计算时有额外的复杂性,所以完整的性能需要...额外的东西。这给我们带来了最后一个图表。

这张最后的图表显示了我们更高的分辨率测试结果。我们没有测试新的AMD GPU,因为我们必须在AMD RX 6000系列显卡上使用Linux,显然RX 7000系列需要一个更新的Linux内核,而我们无法让它工作。但请看RTX 40系列的结果,替换了Torch DLLs后。

RTX 4090现在比没有xformers的3090 Ti快72%,而用xformers则快了高达134%。4080也比3090 Ti快55%/18%,有/没有xformers。有趣的是,4070 Ti在没有xformers的情况下比3090 Ti慢22%,但在有xformers的情况下快20%。

看起来更复杂的2048x1152目标分辨率开始更好地利用潜在的计算资源,也许更长的运行时间意味着Tensor核心可以充分地发挥它们的力量。

归根结底,这充其量只是stable diffusion性能的一个时间快照。我们看到频繁的项目更新,对不同训练库的支持,以及更多。我们将在来年更多地重温这个话题,希望能有更好的优化代码用于所有不同的GPU。
发表于 2023-2-28 10:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2023-2-28 10:24 | 显示全部楼层
结论:N卡是涩卡,做涩图超快的....
发表于 2023-2-28 10:28 来自手机 | 显示全部楼层
rx6000还有希望提升起来吗,和7000架构差距又不是很大,怎么天上地下啊
发表于 2023-2-28 10:28 | 显示全部楼层
79XTX得在linux下用Rocm才能和39ti差不多速度
AMD不给上win 现在win下能调用涩图也是一堆毛病
发表于 2023-2-28 10:28 | 显示全部楼层
想要4090,哪怕是最便宜最蹩脚的4090,只要是4090就行了。
 楼主| 发表于 2023-2-28 10:30 | 显示全部楼层
我輩樹である 发表于 2023-2-28 10:28
想要4090,哪怕是最便宜最蹩脚的4090,只要是4090就行了。

树导这回复那么“涩”真的好吗?
 楼主| 发表于 2023-2-28 10:33 | 显示全部楼层
本帖最后由 T.JOHN 于 2023-2-28 11:08 编辑
fluttershy 发表于 2023-2-28 10:28
79XTX得在linux下用Rocm才能和39ti差不多速度
AMD不给上win 现在win下能调用涩图也是一堆毛病 ...


不是不给上,用toms帖子里回复是,现在相关社区(github/stackflow)压倒性地以linux为操作系统统治ai生态,和AMD关系不大。程序员压根不care windows,命令行是基本语言,不会c++/python都不好意思说自己混社区。

edit:
windows也不是不行,不过得靠他自己爹微软的directml,onnx等,毕竟windows是统一生态。但由于论文发展很快,硬件发展很快,onnx的性能靠社区的程序员很多时候不如直接调用tensorrt和rocm等作为后端。这一点光靠微软自己显然也不够,参考1月份谷歌裁了AI部门12000人。此事说明大厂未必干得过小厂,比如openai,这个领域是没有道路可循的,一切都在走前人没走过的路,往往一两个天才能走出正确的“一步”,不是人海战术复制黏贴能行的



参考:https://learn.microsoft.com/zh-c ... dows-ml/get-started
发表于 2023-3-17 10:40 | 显示全部楼层
小白问下表一AMD 7xxx的卡是跑在linux还是windows下测试的数据?
 楼主| 发表于 2023-3-17 13:21 | 显示全部楼层
itisfine 发表于 2023-3-17 10:40
小白问下表一AMD 7xxx的卡是跑在linux还是windows下测试的数据?

windows下的测试,最后一张图的RX6000是linux下的测试,RX7000测不了,最新的内核工作也不正常
发表于 2023-3-17 13:23 | 显示全部楼层
NV就是牛逼!
发表于 2023-3-17 13:34 | 显示全部楼层
T.JOHN 发表于 2023-3-17 13:21
windows下的测试,最后一张图的RX6000是linux下的测试,RX7000测不了,最新的内核工作也不正常 ...

那7系的跑AI绘图的效能还行啊
 楼主| 发表于 2023-3-17 13:40 | 显示全部楼层
itisfine 发表于 2023-3-17 13:34
那7系的跑AI绘图的效能还行啊

这不得看和谁比么,7900对手是4080/4090,现在已经全面下风。stable diffusion还没上int8和sparsity技术(你把他当成AI界的dlss就行了),40系未来还有更加鸡血的性能,AMD已经无了
发表于 2023-3-17 14:04 来自手机 | 显示全部楼层
话说没人用cdna测一下吗,这个理论性能比较牛逼。rdna 的bf16加速是到7000才加上的吧
发表于 2023-3-17 14:06 | 显示全部楼层
本帖最后由 zhuifeng88 于 2023-3-17 14:07 编辑
koney 发表于 2023-3-17 14:04
话说没人用cdna测一下吗,这个理论性能比较牛逼。rdna 的bf16加速是到7000才加上的吧 ...


cdna的话AITemplate的实现他们自己有测过, 半块MI-250打不过3080
https://github.com/facebookincub ... 05_stable_diffusion
发表于 2023-3-17 14:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2023-3-17 14:30 | 显示全部楼层
6000系不同寻常的满。。。
发表于 2023-3-17 14:42 | 显示全部楼层
zhuifeng88 发表于 2023-3-17 14:06
cdna的话AITemplate的实现他们自己有测过, 半块MI-250打不过3080
https://github.com/facebookincubator/ ...

mi250主要牛逼的是fp64, bf16理论性能貌似只有A100的一半
发表于 2023-3-17 14:49 | 显示全部楼层
koney 发表于 2023-3-17 14:42
mi250主要牛逼的是fp64, bf16理论性能貌似只有A100的一半

半张mi250的fp16差不多a100的一半, 比3080还是高了不少的
发表于 2023-3-17 21:10 | 显示全部楼层
我英伟达天下无敌!
发表于 2023-3-18 12:48 | 显示全部楼层
这么看来A厂的软件生态碎片化仍比较严重,后续软件生态的发展对已售或者在售A卡的支持仍不乐观,说人话就是买了现在A卡的,不管是RDNA还是CDNA,无论RDNA2还是3,都有可能后边拿不到新发布的AI软件的支持
发表于 2023-3-18 13:17 来自手机 | 显示全部楼层
a卡不能训练,很致命。
发表于 2023-3-18 13:21 | 显示全部楼层
大家只能做ft或者transfer,训练的都是成群结队的A100,苏妈的目标是这个。
发表于 2023-3-18 13:31 | 显示全部楼层
降价是不可能降价了
发表于 2023-3-18 13:47 来自手机 | 显示全部楼层
我用RX6700XT 在Linux下安装了rocm版本的pytorch,测试SDwebui 越16秒跑100次it,6.25it/s,比3060慢点,勉强能用,比Tomshardware测试结果快一倍。
directml 和 shark 版本的画图没怎么玩,速度很慢。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-2-1 20:41 , Processed in 0.012470 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表