PCEVA,PC绝对领域,探寻真正的电脑知识
开启左侧

10倍的AI绘图性能提升:Stable Diffusion+Microsoft Olive性能测试

[复制链接]
橙黄鼠标 发表于 2023-10-7 14:34 | 显示全部楼层 |阅读模式
点击数:826|回复数:1
本帖最后由 橙黄鼠标 于 2023-10-24 10:39 编辑

前言

Stable Diffusion是目前知名度最高的AI绘图软件,因为这是一款开源软件,任何人都可以获取并进行二次训练以及修改,所以目前网络上流传的版本和模型极多。其中流传最广的应该是“Automatic1111”的Stable diffusion-wbui,很多非常好用的训练模型都是基于这个版本来进行训练,但是这个版本的Stable Diffusion对于AMD驱动并不友好,通常需要额外修改Pytorch指令或是安装修改好的Stable diffusion版本,并且效率也并不高,RX 7900 XTX的性能也只有1.87 it/s左右。要知道,在Stable Diffusion的nod-ai/SHARK版本,RX 7900 XTX的AI性能高达20.76 it/s,效率相差十几倍,可见这并非是RX 7900 XTX的算力不足,而是软件未能发挥出它的效率,但矛盾点又在于Automatic1111的训练模型太多太多了,多数AI画图师都不具备抛掉现有模型不用,自己重新训练的能力。

于是,AMD和微软合作优化了AMD硬件在Microsoft Olive的路径,通过Microsoft DirectML平台充分发挥AMD GPU的AI加速能力。具体来说,就是 Python预装的 PyTorch无法发挥出AMD GPU的AI性能,而Microsoft Olive是一个Python转换工具,将基本模型从 PyTorch转换为ONNX,以此充分发挥AMD GPU的AI加速能力。AMD的官方数据显示,Microsoft Olive工具可以将RX 7900 XTX的每秒迭代速度从1.87it/s提高到18.59it/s,AI性能提升至9.9倍。

安装方法与测试平台
Microsoft Olive的安装方法很简单,如果你已经安装过 Automatic1111 WebUI ,那只需要在Anaconda/Miniconda里逐步输入以下命令,即可在浏览器中输入http://127.0.0.1:7860打开Stable Diffusion图形操作界面。


整个安装过程基本是全自动,只需要保持良好的网络环境,耐心等待即可。如果你没有安装过Automatic1111 WebUI,那也没关系,只需要下载并安装“Git”、“Miniconda”、“Python”三个前置软件,即可进入上述的命令行安装流程。


安装完成后,你会看到页面相比Automatic1111 WebUI原版多了ONNX和Olive两个模块,进入Olive的Optimiza ONNX model点击下方的优化按键,就可以开始画图了。

处理器:AMD Ryzen 9 7900X
主板:ASROCK X670E TAICHI
内存:G.Skill TridentZ5 RGB DDR5-6000 CL30(EXPO)
显卡:AMD Radeon RX 7900 XTX
硬盘:KingStone KC3000 1TB /PLEXTOR M10P 2TB
散热器:NZXT Kraken Z73 RGB
电源:ANTEC HCG X1000
系统:Windows11 22H2
驱动:Adrenalin 23.9.2

本次测试平台使用的是锐龙9 7900X处理器+DDR5-6000 16GB x 2内存条,显卡是RX 7900 XTX 24GB,系统是Windows 11 22H2,显卡驱动是最新的Adrenalin 23.9.2,这里需要注意Microsoft Olive需要搭配至少Adrenalin 23.7.2或更新版本的驱动使用,建议将驱动更新到最新版本。

性能测试

生成关键词:
dynamic pose, dynamic angle,(masterpiece:1. 4, best quality), unity 8k wallpaper, ultra detailed, beautiful and aesthetic, perfect lighting,detailed background, realistic

去除关键词:
EasyNegative,nsfw, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, bad feet, text,logo

分辨率设置:512×512
采样步进:20
提示词引导系数:7
生成数量:6-1,1-1



首先测试的是AI性能,RX 7900 XTX在Stable diffusion-wbui原版的性能,AI性能在1.35it/s左右,安装Microsoft Olive后,AI性能则提升到了19.4it/s左右,AI迭代速度提升了13.3倍。



接下来是生成图片的速度测试,共有两组,一组是6-1,也就是一批6张图片;一组是1-1,也就是一批只生成一张图片。可以看到在6-1组的测试中,使用Microsoft Olive优化模型的图片生成速度比WebUI原版快了6倍,生成6张图片只需要25.8秒。单张图片1-1组的生成速度,Microsoft Olive优化模型更是比WebUI原版快了14.2倍,生成一张图片仅需要1.8秒,提升幅度是相当惊人的。

总结

从测试结果看,Microsoft Olive工具确实能提升AMD GPU在Stable Diffusion-Automatic1111中的AI表现,实测RX 7900 XTX显卡的每秒迭代数可提升至19.4it/s左右,相较原版性能提升了13.3倍。Stable Diffusion的图片生成速度也有大幅度提升,具体提升效果取决于生成的图片质量、数量可能会有所区别。但在我们的测试中,Microsoft Olive工具让Stable Diffusion的图片生成时间缩短了6-14倍。

从这个测试中,我们还可以看到AI应用目前还属于新鲜事物,不管是AI工具还是AI模型都没有形成大统一的环境,这也导致硬件厂商对其做的优化或是配套工具还处于一个比较初级的阶段。AMD GPU的硬件算力并非技不如人,甚至在部分AI软件中还能发挥出远超同级显卡的AI性能,但必须得承认AMD的AI加速算法、模型以及配套工具仍有较大的优化空间,通过Microsoft Olive支持Stable Diffusion-Automatic1111是往前迈出了一小步,未来还有更多的路等着AMD向前攀登。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
tomoyo 发表于 2023-11-27 20:25 | 显示全部楼层
本帖最后由 tomoyo 于 2023-11-30 11:34 编辑

stable-diffusion-webui-directml\repositories\generative-models

这个文件一直下不来。用梯子干脆都连不上

试了几次过了。。不过还是报错。。百度了一下改httpx没用

    return AsyncHTTPTransport(
  File "D:\sdai\amd2\stable-diffusion-webui-directml\venv\lib\site-packages\httpx\_transports\default.py", line 275, in __init__
    self._pool = httpcore.AsyncConnectionPool(
TypeError: AsyncConnectionPool.__init__() got an unexpected keyword argument 'socket_options'
配置文档有问题。需要去删掉这个配置文档的一段


您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部