Mac 跑 Stable Diffusion,预算有限是上 38 核 GPU,还是上 64 GB 内存?

2023-10-06 11:22:43 +08:00
 apppa
目前 N 年前的 MBP ,跑 SD 生成一张图太慢了,准备升级。不知道 SD 在 Mac 上跑图是吃 GPU 还是吃内存?
7233 次点击
所在节点    Stable Diffusion
50 条回复
TUCANA
2023-10-06 19:08:24 +08:00
@ybz 我也觉得,同样的参数 Mac 跑出来的不好看。但是这个很主观,没有证据
ShadowPower
2023-10-06 19:17:40 +08:00
预算有限的情况下不要用 Mac 跑,因为任何一个选项都是性价比很低的选项。
作为参考,我的 4060Ti 16GB 跑 512x512 的图,用 UniPC 采样器,大约 13it/s 。

如果不得不买 Mac ,建议租 GPU VPS 来跑。
ShadowPower
2023-10-06 19:38:55 +08:00
另外,和大型语言模型是 IO 密集型任务不同,Stable Diffusion 实际上是计算密集型任务。
计算性能一般但带宽够大的设备适合前者。
Stable Diffusion 模型参数相比大型语言模型并不大,但运算量要大得多。

我用 4060Ti 16GB 就可以训练(不是推理) SDXL Lora 模型。游戏玩家会告诉你这块显卡是智商税,但玩 Stable Diffusion 的会告诉你这是非矿非改全新显卡中最实惠选择。

另外用 Stable Diffusion 直接出超高分辨率是毫无意义的,如果你生成的图像超出了训练分辨率,即:
原版 1.4 、1.5 是 512 像素边长
原版 2.0 、2.1 ,以及 NovelAI 泄露模型和衍生模型是 768 像素边长
SDXL 是 1024 边长

如果超出一点点还行。超出很多的话,并不会得到一张细节非常清晰的图,而是得到一张主体元素重复,内容四分五裂的图。只是图片看起来还能衔接起来罢了。

在使用 xformers 的情况下,我用 6GB 显存跑原版 1.5 模型都可以直出 2048x2048 。但我也就体验了一次,之后根本没有用过。

真正出大图还是用 Tile 模式,先生成一张正常的小图,然后把这张小图放大,分块,最后细化每个分块。
实际上用起来显存使用量跟生成小图差不多。

---

虽然 N 卡 16GB 显存就可以做,但我从未听说过有人用 32GB 内存的 Mac 来做同样的事情。(指训练 SDXL 的 Lora )
hawei
2023-10-06 20:11:27 +08:00
直接开 cloud gpu
wclebb
2023-10-06 20:15:30 +08:00
关于这个有 YTB 谈过。

<amp-youtube data-videoid="UsfmqTb2NVY" layout="responsive" width="480" height="270"></amp-youtube>?si=XQ5sosyTctnZWblx

可以了解一下。

我个人觉得内存越大越好,速度可以慢点,内存上不去就真上不去了。

大约 11 分钟这里谈到 SD 对于大内存的优势。大内存 SD 可以出十连抽,内存低的只能抽一张。
findex
2023-10-07 00:09:48 +08:00
放弃 mac 。特别慢。手有 m1 和老黄家显卡,m 再怎么吹也被 n 卡吊打几个数量级。gpu 核心加显存都吃。4090 笑而不语。

你这思路很清新奇特。我觉得你想表达的是,喜欢平时用 mac 电脑,但是老 mac 太慢了需要更新换代一台。想偶尔跑跑 sd ,预算不太多,选 gpu 核心多的款式还是内存大一点的。都选的话荷包不太够,给个建议。
WuSiYu
2023-10-07 02:21:10 +08:00
跑 sd 就用 4090 吧,跑推理的话显存需求不大,24G 完全够用。而别的实现连 flash attention 都没有,反而会需要更多的内存,O ( n )和 O ( n^2 )的区别。

mac 是很一般的算力 + 大容量的(内存)显存的组合,唯一的用处是跑单 batch LLM 推理这种极为特殊的 workload ,跑别的计算密集的负载,比如 stable diffusion ,都极为拉垮:m2 max gpu 的 fp16 性能为 26.98 TFLOP/s ,而 4090 为 350 TFLOP/s 以上( tensor core )
justaname
2023-10-07 03:04:53 +08:00
原来还真有人信了 mac 那残疾独显(除开低功耗区间的能效比优势)能跑 DL 呀……
winglight2016
2023-10-07 08:45:29 +08:00
你要出图为啥要本地运行,脚本写好,在云端服务器跑才是王道。用你购买设备的钱,足够出 10w+的图了
huihushijie1996
2023-10-07 09:14:56 +08:00
所以 mac 跑这种吃设备的程序还是不得行嘛
ApmI00
2023-10-07 09:19:57 +08:00
@huihushijie1996 别说 m1 系列了,A 卡都得劲。老老实实老黄家的吧
devHang
2023-10-07 09:26:34 +08:00
mac 跑 sd 就纯折磨。
至少我是 32G 的 M1 Pro ,用起来只能算是勉强可以出图。512 的图 25 step ,也要 1 分钟左右。
devHang
2023-10-07 09:27:20 +08:00
@devHang 个人建议想长时间玩,要不然就 N 卡,要不然就租云服务。
ykk
2023-10-07 09:28:01 +08:00
我用 A100 都觉得慢
sharpy
2023-10-07 09:39:06 +08:00
跑语言模型可以用 mac ,跑图尽量还是上英伟达吧
huihushijie1996
2023-10-07 09:42:09 +08:00
@ApmI00 没用过 mac 我还以为可以跑 emmm
Lambert2022
2023-10-07 09:47:15 +08:00
直接用 Poe 上的
nno
2023-10-07 09:47:57 +08:00
@ShadowPower 模型都是计算密集型,包括语言模型
ShadowPower
2023-10-07 10:16:53 +08:00
@nno GPT 、LLaMa 和类似的模型都不是,否则模型量化都不会提升效率。
因为量化不会降低计算量,实际计算的时候都先还原成 float16 再计算……
ShadowPower
2023-10-07 10:20:24 +08:00
@nno 另外,实际上加大 batch size 以及使用 flash attention (指第一代,因为第二代还有比如尽可能利用矩阵乘法之类的技巧)能提高效率,还是因为能缓解 IO 瓶颈……

运算性能出现瓶颈而 IO 还没有瓶颈的情况下,加大 batch size 不会节省多少时间,和跑多次差不多。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/979171

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX