chaucerling 发表于 2023-1-20 15:30

M1 Pro 测试 MochiDiffusion AI画图的功耗和性能

本帖最后由 chaucerling 于 2023-1-24 16:06 编辑

果子上个月开源了core ML的AI画图框架,将普通模型转成coreML 模型可以用上m系芯片的npu进行画图
MochiDiffusion是用这一框架编写的原生app,性能上比用electron封装的Diffusionbee要好

测试环境: M1 pro MacBook Pro,Macos13.1,
测试模型: anything-v3
测试参数:prompt: ((masterpiece)), best quality, 1girl, looking at viewer, (brown hair), (rabbit gril), (animal ear fluff), blue eyes, shirt, neck ring, blue sky, could, outdoor
negative prompt: lowres, bad anatomy, bad hands, text, error, missing fIngers, extra digt, fewer digits, cropped, worst quality, jpeg artifacts, signature, watermark, username, blurry
Model: anything-v3.0_split-einsum_compiled; Scheduler: dpmSolverMultistepScheduler; Steps: 25; Guidance: 12.0

场景1:
电池供电,低电量模式,使用全部核心,开始前内存占用5G,平均功耗0.05W
测试结果:
平均功耗 总 4.48W,CPU 0.52W,GPU 1.35W,NPU 2.2W
内存占用10G,平均每张图片耗时20s

场景2:
电池供电,低电量模式,使用CPU和NPU核心,开始前内存占用5G,平均功耗0.05W
测试结果:
平均功耗 总 2.8W,CPU 0.32W,GPU 0.02W,NPU 2.5W
内存占用9.3G,平均每张图片耗时21.5s

场景3:
电源供电,使用全部核心,开始前内存占用5G,平均功耗0.1W
测试结果:
平均功耗 总 4.8W,CPU 0.52W,GPU 1.95W,NPU 2.3W
内存占用10.7G,平均每张图片耗时19s
生成的图片节选


测试下来生成图片的时间和质量没有很大的差距,简直可以秒杀我之前用Diffusionbee的体验
不过这个框架限制和缺点还是有,例如split-einsum的模型只能生成512x512大小的图片,转模型耗时很长




すぴぱら 发表于 2023-1-20 15:53

PalmTiger 发表于 2023-1-20 17:19

买个32g的mbp是不是显存能用到16g?

chaucerling 发表于 2023-1-20 17:38

PalmTiger 发表于 2023-1-20 17:19
买个32g的mbp是不是显存能用到16g?

理论上是动态分配的,内存和显存不爆32g就行,内存还能转成虚拟内存,m1 max更高的内存带宽在这种情况也有优势

Wqr_ 发表于 2023-1-20 17:38

功耗低的离谱

Wqr_ 发表于 2023-1-20 17:39

感觉速度优势不是很明显 但是这个显存(内存)优势很大

starash 发表于 2023-1-20 17:52

M系列本来特色就是
能做到的事情基本上都能以非常夸张的能耗比在一个相对合理的时间里给你完成掉....

PalmTiger 发表于 2023-1-20 18:12

chaucerling 发表于 2023-1-20 17:38
理论上是动态分配的,内存和显存不爆32g就行,内存还能转成虚拟内存,m1 max更高的内存带宽在这种情况也 ...

这显存使用方式很棒啊。。只能512x512不应该啊。等app完善后就没老黄什么事了

endlessz 发表于 2023-1-20 20:37

ffail 发表于 2023-1-20 21:23

试了下,相比DiffusionBee速度提升太多,太牛了。

noahhhh 发表于 2023-1-21 01:42

PalmTiger 发表于 2023-1-20 18:12
这显存使用方式很棒啊。。只能512x512不应该啊。等app完善后就没老黄什么事了 ...

巴不得马上干碎老黄,可惜现在还是差得远

—— 来自 S1Fun

win8 发表于 2023-1-21 07:53

将普通模型转成coreML 模型的过程是谁做的?恐怕这个过程本身也对模型做了优化吧.现在ai画图的模型本身就是训练出来后没有重新写推理的,开销当然大

chaucerling 发表于 2023-1-21 08:59

win8 发表于 2023-1-21 07:53
将普通模型转成coreML 模型的过程是谁做的?恐怕这个过程本身也对模型做了优化吧.现在ai画图的模型本身就是 ...
Core ML Tools 4 开始就支持 PyTorch 模型直接转成 core ML 模型,今年年中果子优化了 ANE 跑转换模型的效率
上面的测试NPU只有30%的负载,还有更多优化的空间,优化好了直接在移动端上本地运行也不是问题
我看官方的 benchmark,m2 比 m1 快了50%,估计m2 pro上还能快不少,这方面的提升还是挺值得期待的

https://coremltools.readme.io/docs/pytorch-conversion
https://machinelearning.apple.co ... engine-transformers

kanki 发表于 2023-1-21 10:09

测试了下,体验很好
M2 MacBook Air, Activity Monitor里头看就占了3G Memory,step调到48也就半分钟左右一张

psvsd 发表于 2023-1-24 14:30

为什么AAPL总喜欢把新功能和系统绑定
各种系统App更新也是这样

MakeLaugh 发表于 2023-1-24 15:15

8G内存的mac mini可以用吗?
大概率去买一个mac mini m2丐版

chaucerling 发表于 2023-1-24 16:03

MakeLaugh 发表于 2023-1-24 15:15
8G内存的mac mini可以用吗?
大概率去买一个mac mini m2丐版

有减少内存占用的选项可以开启,8g内存也能跑


—— 来自 HUAWEI BLA-AL00, Android 10上的 S1Next-鹅版 v2.5.2-play

Cairetina 发表于 2023-1-24 18:52

本帖最后由 Cairetina 于 2023-1-24 18:56 编辑

其实去年 11 月就有 MPS + Swift 的 Stable Diffusion 实现了啊,不知道为啥这么久了还有在提 diffusionbee 的

https://apps.apple.com/jp/app/draw-things-ai-generation/id6444050820

上架 App Store 支持 iOS/iPadOS/macOS

使用 2-3 GB 统一内存在 M1 设备上达到512x512 <1s/step,同时也支持使用 CoreML 在 ANE/GPU/CPU 间并行以进一步提升速度

功能上支持各类模型和自定义模型(内置 Swift 实现的转换器),混合模型(包括 vae),inpaint,img2img,project,内置 ESRGAN 等 upscaler 模型整合,自定义画布分辨率这种最基础的就不多说了

早就不用电脑跑了,手机上跑了几个月了

ls2021 发表于 2023-1-24 22:05

apple silicon可以选32G甚至64G的,虽然比PC的内存贵,但是比老黄那边便宜多了
这波是Apple的黄金内存性价比暴涨了

citrus 发表于 2023-1-24 22:53

其实M系列我觉得最好的就是这个统一内存,毕竟传统的CPU-内存-GPU结构(应该叫IBM PC结构?)在异构计算时,瓶颈大概率就是PCIE带宽

这时想起来,新一代主机也是统一内存架构吧,也许PS5/XSX如果能跑AI画图,效率会意外地高

现在以CPU和内存为核心的架构,是在机械软硬盘极慢,GPU尚未发展起来时就确立的
根据现在SSD外存和高速GPU的发展程度,结合AI、游戏等现实需求,感觉现有的系统结构也该改变一下了

或许这样也能在死气沉沉的PC市场搞出点新的增长点?说不定也可能真的实现大家干掉老黄的愿望

ls2021 发表于 2023-1-25 00:43

citrus 发表于 2023-1-24 22:53
其实M系列我觉得最好的就是这个统一内存,毕竟传统的CPU-内存-GPU结构(应该叫IBM PC结构?)在异构计算时 ...

实际上至少跑stable diffusion的时候,RAM和VRAM之间并没有那么多交互,pcie控制器并不是瓶颈,瓶颈还是在显卡的IMC上
倒是希望苹果可以把老黄阉割显存容量和带宽的这点干掉。这么多年主流显卡的显存带宽似乎都没什么提升

keytomylife 发表于 2023-1-25 01:27

大暴死 发表于 2023-1-25 10:34

饼大飞砖,水果有钱的优势

—— 来自 Xiaomi M2102K1C, Android 12上的 S1Next-鹅版 v2.5.4

灰流うらら 发表于 2023-1-25 10:53

Cairetina 发表于 2023-1-25 10:58

本帖最后由 Cairetina 于 2023-1-25 11:00 编辑

ls2021 发表于 2023-1-25 00:43
实际上至少跑stable diffusion的时候,RAM和VRAM之间并没有那么多交互,pcie控制器并不是瓶颈,瓶颈还是 ...

有一些区别

1.所有参与的异构核心 ANE/GPU/CPU(AMX) 都是 peers,zero copy,只有读写结构化的方式上有区别,而传统结构的问题发生在推理前,要么将模型驻留于 VRAM 中,要么就需要进行一次拷贝

2.异构核心均可以进行 page in/out,以更低的实际内存容量大小应对异构核心中更高的突发性内存使用

此外
1.对这类结构,谈 “显存容量” 这个概念没什么意义
2.现有情况下高带宽会带来能耗上的问题,苹果目前采用 TBDR + cHSR 来降低带宽压力,代价是损失一些峰值性能和旧管线兼容,换来能效与延迟(主要依靠堆8/16/32 通道 DDR 而不采用 GDDR)上的优势,同时也得到一些在 CPU 单核心高带宽利用率上的好处,因此不太可能看到带宽高过 N 卡的情况出现


—— 来自 Google Pixel 6 Pro, Android 13上的 S1Next-鹅版 v2.5.2-play

Cairetina 发表于 2023-1-25 11:06

本帖最后由 Cairetina 于 2023-1-25 11:07 编辑

灰流うらら 发表于 2023-1-25 10:53
任何一个正经的模型在运行的时候都不会在cpu上进行任何计算,和ram的交互也仅限于input和output

—— 来 ...

在推理中往往是可以但没必要,而不是一定不,但在 ASi 上常常有多个异构核心与 CPU 并行的情况

—— 来自 Google Pixel 6 Pro, Android 13上的 S1Next-鹅版 v2.5.2-play

citrus 发表于 2023-1-25 11:32

灰流うらら 发表于 2023-1-25 10:53
任何一个正经的模型在运行的时候都不会在cpu上进行任何计算,和ram的交互也仅限于input和output

—— 来 ...

我也写过类似的东西(虽然是科学计算而不是ML推理)
可以在CPU上进行计算,但完成CUDA部分已经够累了,感觉再把CPU部分完成,还得手搓一个异步调度,GPU和CPU的算力分别是4xV100和2x12c至强,感觉工作量大收益不大,就直接摆了只用GPU跑,效果也不错

相信很多AI模型也是这样。但商业化的科学计算软件,我接触到的一般就是CPU+GPU全部占满的

燕山雪 发表于 2023-1-25 14:28

感慨一下,什么时候有人在摩尔线程沐曦寒武纪的芯片上移植SD成功了,国产GPU就算真正走上竞技场了吧。

chenhui7373 发表于 2023-1-25 16:59

看来m2有意义

御坂MKII 发表于 2023-1-25 17:08

本帖最后由 御坂MKII 于 2023-1-25 17:24 编辑

燕山雪 发表于 2023-1-25 14:28
感慨一下,什么时候有人在摩尔线程沐曦寒武纪的芯片上移植SD成功了,国产GPU就算真正走上竞技场了吧。 ...

国产gpu几家靠谱的都不做民用部分,会兼容cuda,但是不做gui接口,卖也是面向数据中心

—— 来自 Xiaomi 2203121C, Android 13上的 S1Next-鹅版 v2.5.4

燕山雪 发表于 2023-1-25 17:16

御坂MKII 发表于 2023-1-25 17:08
国产gpu几家靠谱的都不做民用部分

—— 来自 Xiaomi 2203121C, Android 13上的 S1Next-鹅版 v2.5.4 ...

不做民用的只有骗补贴机器和慢性死亡两种结局

御坂MKII 发表于 2023-1-25 17:26

本帖最后由 御坂MKII 于 2023-1-25 17:40 编辑

燕山雪 发表于 2023-1-25 17:16
不做民用的只有骗补贴机器和慢性死亡两种结局

diy/pc死路一条啊 反而是数据中心比老黄性价比高多了

amd的驱动都一直破烂,你真要创业公司除了做cuda还要再找人做win api和directx去卷吗

以及 之前美国的算力限制,就是这几家做机器学习卡的公司流片的算力设计爬坡爬出来的。几乎所有的公司都改了下一代流片的设计,因为全超了限制

—— 来自 Xiaomi 2203121C, Android 13上的 S1Next-鹅版 v2.5.4

燕山雪 发表于 2023-1-25 17:52

本帖最后由 燕山雪 于 2023-1-25 18:08 编辑

御坂MKII 发表于 2023-1-25 17:26
diy/pc死路一条啊 反而是数据中心比老黄性价比高多了

amd的驱动都一直破烂,你真要创业公司除了 ...
数据中心不算民用?高校跑AI和数值计算不算民用?

另外Cuda闭源的怎么兼容,OPENCL/ROCM还差不多。如果pytorch2.0的primtorch也支持不好,就不要怪别人没给机会了~

燕山雪 发表于 2023-1-25 18:03

御坂MKII 发表于 2023-1-25 17:26
diy/pc死路一条啊 反而是数据中心比老黄性价比高多了

amd的驱动都一直破烂,你真要创业公司除了 ...

老美那个算力限制本身很扯淡,这几年的GPGPU初创公司被算力军备竞赛完全带歪了,锁算力上限,让大家把注意力从MAC数量转回良率兼容性和能效比上来,说是拨乱反正都不为过。真正卡脖子的是其它条款

御坂MKII 发表于 2023-1-25 18:51

本帖最后由 御坂MKII 于 2023-1-25 18:54 编辑

燕山雪 发表于 2023-1-25 17:52
数据中心不算民用?高校跑AI和数值计算不算民用?

另外Cuda闭源的怎么兼容,OPENCL/ROCM还差不多。如果py ...

那没事儿了。专做军政的你认为的非民用那肯定是看都不看。提市场我都默认个人用图形卡和计算卡两边,所以个人用就是民用,计算卡是商用

个人用的卡和计算卡之前自然是先做计算卡好。具体兼容策略没问过,但是他们提过迁移成本肯定是很低的。后面再问问好了

—— 来自 Xiaomi 2203121C, Android 13上的 S1Next-鹅版 v2.5.4

灰流うらら 发表于 2023-1-25 22:22

页: [1]
查看完整版本: M1 Pro 测试 MochiDiffusion AI画图的功耗和性能