论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
人工智能
›
人工智能
›
可部署于所有装备上的开源加快 Stable-Diffusion.cpp: ...
可部署于所有装备上的开源加快 Stable-Diffusion.cpp:让 AI 图像生成更快 ...
千千梦丶琪
金牌会员
|
2025-1-18 12:23:53
|
显示全部楼层
|
阅读模式
楼主
主题
859
|
帖子
859
|
积分
2577
在 AI 生成图像领域,
Stable Diffusion
已经成为一个里程碑式的工具,凭借其强大的图像生成本领,被广泛应用于艺术创作、商业筹划等领域。然而,
生成高质量图像的过程经常需要付出大量的时间和内存
,这对于硬件资源有限的装备来说是一大挑战。
为了应对这一问题,我们优化了
Stable-Diffusion.cpp
(简称
Sdcpp
)
。Sdcpp 是 Stable Diffusion 模型的 C/C++ 实现,旨在无需外部依赖的情况下在 CPU(以及大概配置 GPU)上实现高效推理。Sdcpp 作为一个高效的推理框架,不仅可以或许显著加快模型的运行,还能大幅减少内存占用。今天,我们就来深入相识 Sdcpp 的技能上风和我们的优化方法。
为什么需要加快
?
Sdcpp 的实现中,
盘算密集型的
2D
卷积运算
是图像生成的主要瓶颈。现有方法固然功能强大,但服从却不敷抱负,推理速率较慢,内存占用高。为了办理这些问题,我们在 Sdcpp 的基础上,引入了
Winograd
算法
,对 Sdcpp 中的卷积利用进行了革命性的改进,最终实现了
性能与资源利用率的双提拔
。
技能亮点:
Winograd
算法加
持
为了让 Sdcpp 的卷积利用更高效,从而加快生成过程并降低盘算和内存成本,我们引入了 Winograd 算法,并联合以下优化策略:
分步处理
:将卷积拆解为滤波器和激活权重的预处理、预处理张量的逐元素乘法和中央结果的后处理三个阶段,进步运算服从。
局部优化
:通过调整数据加载方式(散点存储和聚集加载优化),减少 L1 缓存的切换,最大限度地减少缓存互换,提拔内存使用服从。
并行处理
:分析算子间的关联性,将关联性较小的运算动态分配到不同的盘算线程与核心上,充实利用多线程和多核心架构,动态分配盘算任务,充实发挥硬件性能,减少图像生成耽误。
尤其是在 M 系列 Mac 装备上,我们优化了性能核心(P-core)和服从核心(E-core)的分工,使推理速率得到了显著提拔。
多装备、多模型支
持
我们优化后的 Sdcpp 框架支持多个装备和模型,包括:
主流
Stable Diffusion
模型
:SDv1.4、v1.5、v2.1、SDXL 和 SDXL-Turbo;
不同硬件平台
:Mac、Android、AMD 等;
扩展模块
:如支持 LoRA,以及支持算子量化等,为用户提供更高的灵活性。
此外,我们还支持而且优化了diffusion transformer 模型中的算子,进一步拓展了应用场景。
速率提拔究竟有多快
?
通过实际测试,我们的优化成果令人振奋!
单卷积层的加快表现
:对于多种卷积层配置,推理速率均匀提拔超过
2
倍
!
我们选择了一些在 SD 生成图片过程中出现比力频仍的卷积层,盘算了在这些单卷积层上,我们优化的 Sdcpp 相较于原版 Sdcpp 的加快结果。在不同的卷积层上,我们的推理速率提拔至少达到
2 倍
。
整图生成速率对比
:最高加快比达到
4
.79 倍
!
面对越大的图像分辨率,我们的方法的加快结果越明显。在生成 1024×1024 分辨率图像时,相比于原版 Sdcpp,我们优化的 Sdcpp 在 M1 Pro 以及 M2 Max 上的推理速率提拔可超过
4.6
倍
(FP32 类型)。
对于其他图像尺寸和 SD 模型,我们优化的 Sdcpp 的加快结果也十分显著(如 SDv1.5 模型生成 512×512 图像时在M1 Pro上加快
1.84
倍
)。
这显著的加快比主要得益于我们的局部优化(降低缓存互换而且进步内存使用服从),以及并行处理(动态分配盘算任务而且进步运算并行度)。
更快的速率,不仅节省时间,更让创作更自由
!
实例展示:更真实的生成效
果
下图展示了使用 SDXL-Turbo 模型,原版 Sdcpp 以及我们优化的 Sdcpp 使用 5 步采样,所生成的图像对比:
可以看出,在相同配置和提示词下,我们优化后的 Sdcpp
不仅速率更快,生成的图像也更加细腻逼真,细节丰富,井井有条
。我们优化的 Sdcpp 可以或许支持不同硬件平台上(Mac、Android、AMD 等)各种主流 SD 模型(如SDv1.4、v1.5、v2.1、SDXL 和 SDXL-Turbo)的所有算子,确保使用这些 SD 模型可以或许生成高质量的图片。
将来计
划
只管我们在加快方面取得了显著成效,但我们并不会止步于此。将来,我们将继续:
优化更多利用符,提拔兼容性;
进一步进步模型量化的服从;
探索在更多装备上的性能提拔。
结
语
Sdcpp 的推出,不仅大幅加快了图像生成过程,还降低了硬件门槛,让更多人能以更低成本享受 AI 创作的乐趣!假如你对 AI 图像生成感兴趣,不妨试试我们优化后的
Stable-Diffusion.cpp
。
项目主页
:GitHub - SealAILab/stable-diffusion-cpp: SealAI's stable diffusion implementation
技能报告:
https://arxiv.org/abs/2412.05781
欢迎关注我们,相识更多技能细节!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
千千梦丶琪
金牌会员
这个人很懒什么都没写!
楼主热帖
SQLserver的安装
【C++】ZZ1864- 解题精讲
StoneDB社区答疑第一期
一文搞清UNIX/Linux与Windows文件换行 ...
数据湖Hudi与对象存储Minio及Hive\Spar ...
C语言程序设计(一)计算机思维导论 ...
开发了一个Java库的Google Bard API, ...
学透shell 带你写常用的100个 shell 脚 ...
ASP.NET Core MVC 从入门到精通之自动 ...
Cesium 几何体贴模型 sampleHeight(二 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表