[AI相关4]你们要的AI benchmark,toms关于stable diffusion测评
原文,论坛人工智能和深度学习最近不断出现在头条新闻中,无论是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发邮件(在新标签中打开))。
https://cdn.mos.cms.futurecdn.net/JxtTd9NUa4poQXVFykHCBf-970-80.jpg.webp
我们的测试参数对所有的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 "库(在新标签中打开)(速度较快,呈绿色)。
https://cdn.mos.cms.futurecdn.net/iURJZGwQMZnVBqnocbkqPa.png
正如预期的那样,与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看起来普遍较差。随着软件的更新,情况可能会发生根本性的变化,考虑到人工智能的普及,我们预计看到更好的调校只是时间问题(或者找到已经调校好的正确项目,提供更好的性能)。
https://cdn.mos.cms.futurecdn.net/ye49n5XUBk8KwuD4PVkdBf-970-80.png
我们还对传统的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的能力,据说这在深度学习工作负载中是相当频繁地发生的。[正确地偷懒 ]https://chiphell.com/static/image/smiley/diy/tong.gif
https://cdn.mos.cms.futurecdn.net/5xRLCknXRdn9EFSKYETiye-970-80.png
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型号落在一起相对较近。
https://cdn.mos.cms.futurecdn.net/5xRLCknXRdn9EFSKYETiye-970-80.png
下面是对FP16理论性能的不同看法,这次只关注各种GPU通过着色器计算能做什么。Nvidia的Ampere和Ada架构以与FP32相同的速度运行FP16,因为假设FP16可以被编码为使用Tensor核心。相比之下,AMD和英特尔的GPU在FP16着色器计算上的性能是FP32的两倍。
很明显,这第二张FP16计算的图表与我们的实际性能相比,并没有更好的张量和矩阵核心的图表,但也许在设置矩阵计算时有额外的复杂性,所以完整的性能需要...额外的东西。这给我们带来了最后一个图表。
https://cdn.mos.cms.futurecdn.net/rnyd8TgaEud4S7uKzEJd5L-970-80.png
这张最后的图表显示了我们更高的分辨率测试结果。我们没有测试新的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。 结论:N卡是涩卡,做涩图超快的.... rx6000还有希望提升起来吗,和7000架构差距又不是很大,怎么天上地下啊 79XTX得在linux下用Rocm才能和39ti差不多速度
AMD不给上win 现在win下能调用涩图也是一堆毛病 想要4090,哪怕是最便宜最蹩脚的4090,只要是4090就行了。 我輩樹である 发表于 2023-2-28 10:28
想要4090,哪怕是最便宜最蹩脚的4090,只要是4090就行了。
树导这回复那么“涩”真的好吗?[震惊] 本帖最后由 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://techcommunity.microsoft.com/t5/image/serverpage/image-id/192470iAE331AFD83BA4079
https://azurecomcdn.azureedge.net/mediahandler/acomblog/media/Default/blog/228d22d3-6e3e-48b1-811c-1d48353f031c.png
https://user-images.githubusercontent.com/69568351/204980787-aa897fd5-58d8-4f51-ba25-d11c04cc72b3.png
参考:https://learn.microsoft.com/zh-cn/windows/ai/windows-ml/get-started 小白问下表一AMD 7xxx的卡是跑在linux还是windows下测试的数据? itisfine 发表于 2023-3-17 10:40
小白问下表一AMD 7xxx的卡是跑在linux还是windows下测试的数据?
windows下的测试,最后一张图的RX6000是linux下的测试,RX7000测不了,最新的内核工作也不正常 NV就是牛逼! T.JOHN 发表于 2023-3-17 13:21
windows下的测试,最后一张图的RX6000是linux下的测试,RX7000测不了,最新的内核工作也不正常 ...
那7系的跑AI绘图的效能还行啊 itisfine 发表于 2023-3-17 13:34
那7系的跑AI绘图的效能还行啊
这不得看和谁比么,7900对手是4080/4090,现在已经全面下风。stable diffusion还没上int8和sparsity技术(你把他当成AI界的dlss就行了),40系未来还有更加鸡血的性能,AMD已经无了[怪脸] 话说没人用cdna测一下吗,这个理论性能比较牛逼。rdna 的bf16加速是到7000才加上的吧 本帖最后由 zhuifeng88 于 2023-3-17 14:07 编辑
koney 发表于 2023-3-17 14:04
话说没人用cdna测一下吗,这个理论性能比较牛逼。rdna 的bf16加速是到7000才加上的吧 ...
cdna的话AITemplate的实现他们自己有测过, 半块MI-250打不过3080
https://github.com/facebookincubator/AITemplate/tree/main/examples/05_stable_diffusion 6000系不同寻常的满。。。[困惑] zhuifeng88 发表于 2023-3-17 14:06
cdna的话AITemplate的实现他们自己有测过, 半块MI-250打不过3080
https://github.com/facebookincubator/ ...
mi250主要牛逼的是fp64, bf16理论性能貌似只有A100的一半 koney 发表于 2023-3-17 14:42
mi250主要牛逼的是fp64, bf16理论性能貌似只有A100的一半
半张mi250的fp16差不多a100的一半, 比3080还是高了不少的 我英伟达天下无敌!
这么看来A厂的软件生态碎片化仍比较严重,后续软件生态的发展对已售或者在售A卡的支持仍不乐观,说人话就是买了现在A卡的,不管是RDNA还是CDNA,无论RDNA2还是3,都有可能后边拿不到新发布的AI软件的支持 a卡不能训练,很致命。 大家只能做ft或者transfer,训练的都是成群结队的A100,苏妈的目标是这个。 降价是不可能降价了[恶魔] 我用RX6700XT 在Linux下安装了rocm版本的pytorch,测试SDwebui 越16秒跑100次it,6.25it/s,比3060慢点,勉强能用,比Tomshardware测试结果快一倍。
directml 和 shark 版本的画图没怎么玩,速度很慢。
页:
[1]