对于stable diffusion这类ai绘画来说,N卡更能适应ai绘画的生态环境,
这是由于英伟达早在多年前就针对AI绘画进行了布局,再加上与诸多AI领域的厂商合作,使得N卡的架构更能兼容AI绘画,
这对于N卡用户来说,当然皆大欢喜,对于A卡用户就挺难受了,
虽然有ONNX模型提供相关的功能,但是功能太少,许多基于n卡的插件也不对A卡兼容,这就导致很尴尬的情况出现。
所以,为了能跑一下ai绘图,我选择买了一张p106-90 3g 的计算卡,
老实讲,这卡我买来做计算卡是有点小亏了。
本来就只支持x4的带宽,在加上我那个h81的主板只有一个x16插槽和两个x1插槽,就更尴尬了,索性买了一根x1转x16的转接线。
但是,如我所说,作为一张不是显卡的显卡,p106有着接近1060的性能,虽然只是声称。
在这样的情况下,p106的性能所剩无几。
当然,如果只是这样的话,其实也还好。
虽然只有x1的带宽,但是我既不拿来做显卡,也不拿来打游戏,
也够用,拿来跑图而已,够用就好。
为此,我直接上的官方驱动,至于魔改驱动,我也试了一下,发现在跑图上的性能会降低一点,
干脆就用官方的驱动了,反正又不追求打游戏。
在这里我顺带提一下,
很多人不知道显卡带宽x1,x4,x16是个什么概念,
这里我专门列了一个表,提供一个参考。
PCI Express | 带宽 | 速率 |
---|---|---|
X1 | 476.84 MB/s | 3814.7 Mbps |
X2 | 953.68 MB/s | 7629.4 Mbps |
X4 | 1907.36 MB/s | 15258.9 Mbps |
X8 | 3814.72 MB/s | 30517.8 Mbps |
X16 | 7629.44 MB/s | 61035.5 Mbps |
X32 | 15258.88 MB/s | 122071 Mbps |
注: x2模式仅用于主板内部接口而非插槽模式
综上,
X1接口下,带宽所能发挥的性能肯定是远不如P106-3G的所带X4的,
不过实际上,速度还是可观的。
对比一下当前最常见的SATA3.0接口也就600MBps,即6Gbps,
x1带宽的3814.7 Mbps就相当于38.147Gbs,
实际上还算可观了,
市面上所说的什么PCIE固态转接卡,号称远超sata3.0,便是来源于此。
所以,我们买二手显卡的时候,人家说保x16的比那些声称保风扇的重要是这么来的。
当然了,我这张p106又不当显卡,传输速度慢点无所谓。
确认卡完好,不是坏的就行。
在上完机之后,直接让它自动转官方驱动就行,无需装那些魔改驱动,
只能说需求不一样,如果是要玩游戏的话,还是要装魔改驱动的,
这里就不多赘述了,如果想知道怎么通过装魔改驱动来玩游戏的,还是等我哪天专门出一片文章吧。
主要拾光我太懒了。
现在你们只要知道这张算不上显卡的显卡能用就行了。
在我们打开sd的启动器之后,
进入stable diffusion的本地网页之后,
随便输了几个描述词,也就是俗称的tag,
然后就点击生成,
但是只听见风扇突然转了一会然后就停了,
出现了几列字符:
RuntimeError:
CUDA out of memory. Tried to allocate 4.10 GiB (GPU 0; 3.00 GiB total
capacity; 2.46 GiB already allocated; 0 bytes free; 2.50 GiB reserved in
total by PyTorch) If reserved memory is >> allocated memory try
setting max_split_size_mb to avoid fragmentation. See documentation for
Memory Management and PYTORCH_CUDA_ALLOC_CONF
Time taken:21.76s
Torch active/reserved: 2619/2656 MiB,Sys VRAM: 3072/3072 MiB (100.0%)
大致的意思是什么呢?
意思就是说:
哎呀,你这卡,显存太低了,想要再用你4.1g的显存,但是你总共才3g显存,刚刚才只用了你2.46g的显存,你就被榨干了,
大概就这意思。
之后我在网上找了下解决方案,
方法很多,但是对于我现在情况有用的很少,
最实用的就是减小batch_size的大小
再就是降低torch的版本,
最好1.12.1版本。
这样设置之后,能在没有VAE模型的情况下跑了。