V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
apppa
V2EX  ›  iMac

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

  •  
  •   apppa · 2023-10-06 11:22:43 +08:00 · 7022 次点击
    这是一个创建于 443 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前 N 年前的 MBP ,跑 SD 生成一张图太慢了,准备升级。不知道 SD 在 Mac 上跑图是吃 GPU 还是吃内存?
    50 条回复    2023-11-14 10:39:42 +08:00
    qweruiop
        1
    qweruiop  
       2023-10-06 11:39:36 +08:00
    一样慢,我专门买了个 rog 来生图。。。mac 就别指望了。。。
    seres
        2
    seres  
       2023-10-06 12:20:13 +08:00
    提升都不大
    不如抠出三千,E5 + 2080ti 改 22G
    给你飞一般的画图体验
    zooo
        3
    zooo  
       2023-10-06 12:52:03 +08:00   ❤️ 1
    非 mac 跑的

    前几天跑过,发现内存需求挺大的,48G 内存不够用,把 swap 拉高才能跑,我理解的 GPU 显存大小越大越好,不过听说 mac 的显存和内存是同一个,那就是内存越大越好,至少 64G
    zooo
        4
    zooo  
       2023-10-06 12:53:00 +08:00
    另外,跑图慢倒无所谓,现在要出效果好,得用大模型,模型越来越大,比较吃显存
    zooo
        5
    zooo  
       2023-10-06 13:01:43 +08:00
    Mac 的 GPU 比 N 卡 3090 跑图速度更快么,不清楚 Mac 芯片真正用来跑模型的速度,业界大多都用的 N 卡跑的吧
    2kCS5c0b0ITXE5k2
        6
    2kCS5c0b0ITXE5k2  
       2023-10-06 13:02:20 +08:00
    我的建议是买 4090
    TabGre
        7
    TabGre  
       2023-10-06 13:05:59 +08:00 via iPhone
    你们用的什么客户端🏃的?
    imqiyue
        8
    imqiyue  
       2023-10-06 13:27:16 +08:00
    为什么一定要在 Mac 上跑,可以考虑搭建个 linux 环境,用 Nvidia 的显卡跑呀,出了问题还好排查
    newage126
        9
    newage126  
       2023-10-06 13:29:46 +08:00
    sd 和玩游戏一样 不适合在 macOS 上搞
    youthfire
        10
    youthfire  
       2023-10-06 13:34:42 +08:00 via iPhone
    windows 上 N 卡跑,mac 远程
    apppa
        11
    apppa  
    OP
       2023-10-06 13:37:53 +08:00
    @zooo 明白。您觉得显卡核心数多少够用?
    apppa
        12
    apppa  
    OP
       2023-10-06 13:40:22 +08:00
    @TabGre 一般都用 Stable Diffusion web UI 吧
    cest
        13
    cest  
       2023-10-06 14:01:09 +08:00
    64G, 还可以玩玩 llm

    ram 是能不能动的问题
    gpu 是去玩多久手机的问题
    zooo
        14
    zooo  
       2023-10-06 14:05:13 +08:00
    @apppa 不清楚

    另外,真心不建议用 mac 跑

    不只是速度的问题,跑模型遇到一些问题,mac 版能够查到的资料的少,不如用 N 卡

    如果你要做模型在 mac 系统移植那另说
    formant
        15
    formant  
       2023-10-06 14:22:25 +08:00
    2080ti 魔改 22G ,了解一下。
    ybz
        16
    ybz  
       2023-10-06 15:30:09 +08:00
    你有没有感觉 Mac 跑 sd 生成的图片很丑?使用通用模型
    paopjian
        17
    paopjian  
       2023-10-06 16:11:13 +08:00
    真被忽悠瘸了啊,用 mac 跑 AI
    TabGre
        18
    TabGre  
       2023-10-06 16:28:56 +08:00 via iPhone
    @apppa 有具体的 githib 地址吗? 我找了几个 都不大好用
    felixcode
        19
    felixcode  
       2023-10-06 16:36:40 +08:00
    lun9
        20
    lun9  
       2023-10-06 19:03:32 +08:00 via iPhone
    专门买了 4070 来跑😂
    TUCANA
        21
    TUCANA  
       2023-10-06 19:08:24 +08:00
    @ybz 我也觉得,同样的参数 Mac 跑出来的不好看。但是这个很主观,没有证据
    ShadowPower
        22
    ShadowPower  
       2023-10-06 19:17:40 +08:00
    预算有限的情况下不要用 Mac 跑,因为任何一个选项都是性价比很低的选项。
    作为参考,我的 4060Ti 16GB 跑 512x512 的图,用 UniPC 采样器,大约 13it/s 。

    如果不得不买 Mac ,建议租 GPU VPS 来跑。
    ShadowPower
        23
    ShadowPower  
       2023-10-06 19:38:55 +08:00   ❤️ 1
    另外,和大型语言模型是 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
        24
    hawei  
       2023-10-06 20:11:27 +08:00
    直接开 cloud gpu
    wclebb
        25
    wclebb  
       2023-10-06 20:15:30 +08:00 via iPhone
    关于这个有 YTB 谈过。

    ?si=XQ5sosyTctnZWblx

    可以了解一下。

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

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

    你这思路很清新奇特。我觉得你想表达的是,喜欢平时用 mac 电脑,但是老 mac 太慢了需要更新换代一台。想偶尔跑跑 sd ,预算不太多,选 gpu 核心多的款式还是内存大一点的。都选的话荷包不太够,给个建议。
    WuSiYu
        27
    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
        28
    justaname  
       2023-10-07 03:04:53 +08:00 via iPhone
    原来还真有人信了 mac 那残疾独显(除开低功耗区间的能效比优势)能跑 DL 呀……
    winglight2016
        29
    winglight2016  
       2023-10-07 08:45:29 +08:00
    你要出图为啥要本地运行,脚本写好,在云端服务器跑才是王道。用你购买设备的钱,足够出 10w+的图了
    huihushijie1996
        30
    huihushijie1996  
       2023-10-07 09:14:56 +08:00
    所以 mac 跑这种吃设备的程序还是不得行嘛
    ApmI00
        31
    ApmI00  
       2023-10-07 09:19:57 +08:00
    @huihushijie1996 别说 m1 系列了,A 卡都得劲。老老实实老黄家的吧
    devHang
        32
    devHang  
       2023-10-07 09:26:34 +08:00
    mac 跑 sd 就纯折磨。
    至少我是 32G 的 M1 Pro ,用起来只能算是勉强可以出图。512 的图 25 step ,也要 1 分钟左右。
    devHang
        33
    devHang  
       2023-10-07 09:27:20 +08:00
    @devHang 个人建议想长时间玩,要不然就 N 卡,要不然就租云服务。
    ykk
        34
    ykk  
       2023-10-07 09:28:01 +08:00
    我用 A100 都觉得慢
    sharpy
        35
    sharpy  
       2023-10-07 09:39:06 +08:00
    跑语言模型可以用 mac ,跑图尽量还是上英伟达吧
    huihushijie1996
        36
    huihushijie1996  
       2023-10-07 09:42:09 +08:00
    @ApmI00 没用过 mac 我还以为可以跑 emmm
    Lambert2022
        37
    Lambert2022  
       2023-10-07 09:47:15 +08:00
    直接用 Poe 上的
    nno
        38
    nno  
       2023-10-07 09:47:57 +08:00
    @ShadowPower 模型都是计算密集型,包括语言模型
    ShadowPower
        39
    ShadowPower  
       2023-10-07 10:16:53 +08:00
    @nno GPT 、LLaMa 和类似的模型都不是,否则模型量化都不会提升效率。
    因为量化不会降低计算量,实际计算的时候都先还原成 float16 再计算……
    ShadowPower
        40
    ShadowPower  
       2023-10-07 10:20:24 +08:00
    @nno 另外,实际上加大 batch size 以及使用 flash attention (指第一代,因为第二代还有比如尽可能利用矩阵乘法之类的技巧)能提高效率,还是因为能缓解 IO 瓶颈……

    运算性能出现瓶颈而 IO 还没有瓶颈的情况下,加大 batch size 不会节省多少时间,和跑多次差不多。
    lianchi
        41
    lianchi  
       2023-10-07 10:23:51 +08:00
    我试过用 M1 Max ( 32G 内存,24 核 GPU )跑 SD ,第一次出现了 M1 发烫、风扇猛转的情况。出图速度没达到预期。
    hpan
        42
    hpan  
       2023-10-07 10:33:17 +08:00
    没有 M2 用户现身说法一下?
    zsc8917zsc
        43
    zsc8917zsc  
       2023-10-07 10:47:44 +08:00
    M2MAX 32G 实测 不能训练 Lora ,训练出来的模型效果是黑色的。 出图慢,会发烫,会站交换内存,交换内存释放不了会卡点很厉害。
    t1cb2v754F32JdOs
        44
    t1cb2v754F32JdOs  
       2023-10-07 11:09:45 +08:00
    M1Pro 在没有跑 SD 之前没热过,没听到过风扇声音。
    跑了几次后,即使不用 SD ,经常发热,时常听到风扇声音。
    ShadowPower
        45
    ShadowPower  
       2023-10-07 11:58:17 +08:00
    @hpan
    M2 Ultra 192GB 上用 ComfyUI 跑 SDXL 大约有 0.7 it/s
    4060Ti 16GB 有 2.22 it/s
    evan9527
        46
    evan9527  
       2023-10-07 13:47:51 +08:00
    顶配都不管事,还是买一台 n 卡的 pc 吧。
    Moker
        47
    Moker  
       2023-10-07 13:52:18 +08:00
    有钱 4090 没钱 3080 CPU 带不动的,这东西得上 GPU
    jevonszmx
        48
    jevonszmx  
       2023-10-07 19:55:28 +08:00
    有钱 4090 ,没钱 P100 矿卡 100 块搞定
    sl450282169
        49
    sl450282169  
       2023-10-11 14:28:03 +08:00
    不建议使用 M 系列跑 sd,首先是由于平台差异,计算结果会跟 x86 不一样,差别还有点大.其次就是由于部分功能依赖于 N 卡的某些东西,在 Mac 上跑不起来.会特别慢

    我之前在我电脑(M1 max 64G)上跑 SD,感觉 cpu 还好,内存占用会比较高
    COOLEER
        50
    COOLEER  
       2023-11-14 10:39:42 +08:00
    M 系列可以用 Draw Things 跑,最新的版本比之前版本优化很多,功耗都降了不少
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2763 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:38 · PVG 19:38 · LAX 03:38 · JFK 06:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.