12秒内AI在手机上完成作画!谷歌提出扩散模型推理加速新方法

这篇具有很好参考价值的文章主要介绍了12秒内AI在手机上完成作画!谷歌提出扩散模型推理加速新方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文源自:量子位

只需12秒,只凭手机自己的算力,就能拿Stable Diffusion生成一张图像。

而且是完成了20次迭代的那种。

12秒内AI在手机上完成作画!谷歌提出扩散模型推理加速新方法

要知道,现在的扩散模型基本都超过了10亿参数,想要快速生成一张图片,要么基于云计算,要么就是要本地硬件够强大了。

而随着大模型应用逐渐普及开来,在个人电脑、手机上跑大模型很可能是未来的新趋势。

由此,谷歌的研究员们带来了这篇新成果,名字就叫Speed is all you need:通过GPU优化加速大规模扩散模型在设备上的推理速度。

12秒内AI在手机上完成作画!谷歌提出扩散模型推理加速新方法

三步走优化加速

该方法是针对Stable Diffusion来做的优化,但同时也能适应其他扩散模型。面向的任务是从文本生成图像。

具体优化可以分成三个部分

  • 设计专门的内核

  • 提升Attention模型效率

  • Winograd卷积加速

首先来看专门设计的内核,它包括了组归一化和GELU激活函数

组归一化是在整个UNet体系结构中实现,这种归一化的工作原理是将特征映射的通道划分为更小的组,并对每个组独立归一,使组归一化较少依赖于批大小,并且能适应更大范围的批处理大小和网络架构。

研究人员以GPU着色器(shader)的形式设计了一个独特的核,能在没有任何中间张量的情况下,在单个GPU命令中执行所有内核。

GELU激活函数中,包含大量的数值计算,如惩罚、高斯误差函数等。

通过一个专用着色器来整合这些数值计算以及伴随的分割和乘法操作,使得这些计算能放在一个简单的draw call里。

Draw call是CPU调用图像编程接口,命令GPU进行渲染的操作。

接下来,到了提升Attention模型效率方面,论文介绍了两种优化方法。

其一是部分融合softmax函数。

为了避免在大矩阵A上执行整个softmax计算,该研究设计了一个GPU着色器来计算L和S向量以减少计算,最终得到一个大小为N×2的张量。然后将softmax计算和矩阵V的矩阵乘法融合。

这种方法大幅减少了中间程序的内存占用张量和总体延迟。

12秒内AI在手机上完成作画!谷歌提出扩散模型推理加速新方法

需要强调的是从A到L、S的计算映射的并行是有限的,因为结果张量中的元素比输入张量A中的元素数量要少得多。

为了增加并行、进一步降低延迟,该研究将A中的元素组成block,将归约操作(reduction operations)切分为多个部分进行。

然后在每个block上执行计算,然后将其简化为最终结果。

利用精心设计的线程和内存缓存管理,可以在多个部分实现使用单个GPU命令降低延迟。

另一种优化方法是FlashAttention

这是去年火起来的IO感知精确注意力算法,具体有两种加速技术:按块递增计算即平铺、并在后向传递中重新计算注意力,将所有注意力操作融合到CUDA内核中。

相较于标准Attention,这种方法能减少HBM(高带宽内存)访问,提高整体效率。

不过FlashAttention内核的缓存器密集度非常高(register-intensive),所以该团队是有选择性地使用这一优化方法。

他们在注意力矩阵d=40的Adreno GPU和Apple GPU上使用FlashAttention,其他情况下使用部分融合softmax函数。

第三部分是Winograd卷积加速

它的原理简单来说就是使用更多的加法计算来减少乘法计算,从而降低计算量。

但弊端也很明显,将会带来更多的显存消耗和数值错误,尤其是在tile比较大的情况时。

Stable Diffusion的主干非常依赖3×3卷积层,尤其是在图像解码器方面,这里90%的层都是由3×3卷积层构成的。

研究人员分析后发现,在使用4×4大小的tile时,是模型计算效率和显存利用率的最佳平衡点。

12秒内AI在手机上完成作画!谷歌提出扩散模型推理加速新方法

实验结果

为了评估提升效果,研究人员先在手机上进行了基准测试。

12秒内AI在手机上完成作画!谷歌提出扩散模型推理加速新方法

结果表明,两部手机在使用了加速算法后,生成图片的速度都明显提升。

其中三星S23 Ultra的延迟降低了52.2%,iPhone 14 Pro Max上的延迟降低了32.9%

在三星S23 Ultra上端到端从文本生成一张512×512像素的图片,迭代20次,耗时在12秒以内。

论文地址:
https://arxiv.org/abs/2304.11267

卡奥斯开源社区是为开发者提供便捷高效的开发服务和可持续分享、交流的IT前沿阵地,包含技术文章、群组、互动问答、在线学习、大赛活动、开发者平台、OpenAPI平台、低代码平台、开源项目等服务,社区使命是让每一个知识工人成就不凡。

 官网链接:Openlab.cosmoplat—打造工业互联网顶级开源社区文章来源地址https://www.toymoban.com/news/detail-427512.html

到了这里,关于12秒内AI在手机上完成作画!谷歌提出扩散模型推理加速新方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • unity发布WebGl在手机上的横屏适配,webgl横版游戏在手机上直接转横屏

    unity版本2020.1 问题:webgl的横版游戏 1920*1080,在手机上适配的不好,还是竖屏显示, 使用官方的说明,说是只在全屏模式下能旋转,也不好用,可能直接旋转也不会达到理想的效果 解决方案: 1.我这边使用的方案是UI的适配,UGUI,采用的是两套UI,根据不同平台加载不同的资源

    2024年02月02日
    浏览(47)
  • 在手机上运行Python程序

    Python是一种广泛使用的编程语言,它在许多领域中都有广泛的应用。虽然Python通常在计算机上运行,但是你也可以在手机上运行Python程序。本文将介绍如何在手机上运行Python程序,并提供相应的源代码示例。 要在手机上运行Python程序,我们需要一个能够在移动设备上运行Py

    2024年02月03日
    浏览(42)
  • tcpdump在手机上的使用

    首先手机得root才可以,主要分析手机与手机的通信协议 我使用的是一加9pro, root方法参考 一加全能盒子、一加全能工具箱官方网站——大侠阿木 (daxiaamu.com) https://optool.daxiaamu.com/index.php  tcpdump,要安装在/data/local/tmp下要arm64的版本,参考下面的文章 安卓使用tcpdump抓包_tcp

    2024年02月21日
    浏览(39)
  • vue3 - 最新手机扫码PC网站二维码登录功能,用手机端扫描PC端vue3网页的登录二维码,然后在手机上点击“确认登录“完成登录,PC网页生成登录二维码,用户拿手机扫码,手机上点确定后电脑端做出响应

    在vue3开发中,详细实现 “PC电脑网站生成微信登录二维码+手机扫码登录+双端同步数据”,利用扫码实现网站登录功能、用户用手机扫描电脑端二维码进行登录的详细教程步骤(电脑端PC网页、手机端都是vue3开发,支持将手机端改造成微信小程序、uniapp安卓苹果app、H5网页等

    2024年04月13日
    浏览(45)
  • 在手机上模拟kali系统(bochs)

      先进入官网:kali.org下载32位kali文件,推荐下载轻量级,之后下载bochs(最新版)下载完后,打开bochs,点点ata0-master,选择cdrom,之后选择刚下载完的iso文件,之后到底部启动还是选择cdrom,之后点击配置设置内存,之后点去start好了,如果出现闪退,有可能内存不足或需清一下缓

    2024年02月09日
    浏览(48)
  • 在手机上使用MAA一键长草

    在手机中搭建Linux虚拟机,在虚拟机中下载Maa,然后解压配置启动。 Linux虚拟机方案 使用linux deploy (需要ROOT) 这是我目前使用的方案,也是本文主要演示的方案。 linux deploy 可以配置开机启动自启脚本,十分方便,推荐使用。 使用Termux安装Linux 建议还是安装一下Termux,用来

    2024年02月07日
    浏览(38)
  • SNPE教程3 - 在手机上部署运行

    手机部署和推理参考: https://developer.qualcomm.com/sites/default/files/docs/snpe/tutorial_inceptionv3.html 运行命令 snpe-net-run 的说明参考: https://developer.qualcomm.com/sites/default/files/docs/snpe/tools.html DSP环境配置: https://developer.qualcomm.com/sites/default/files/docs/snpe/dsp_runtime.html 手机是需要root的 大坑提

    2024年02月16日
    浏览(43)
  • 如何在手机上写Python--安卓篇

    大家好,欢迎来到 Crossin的编程教室 ! 写代码当然要在电脑上,毕竟打字方便屏幕又大。但偏偏有人要在坐车、吃饭、上课、约会的时候写代码。于是我就会经常被问到: 今天就给你们分享下,安卓手机编写并运行Python代码的三个App。 详细操作演示见视频: 1. QPython 应用商

    2024年01月25日
    浏览(41)
  • 如何在手机上使用bing chat?

    如何在手机上使用bing chat? 用过手机助手的人一定知道,目前的语音助手存在诸多的问题。 而chatGPT4是基于openAI开发的人工智能语言模型。能够根据上下文生成类似人类的文本,有时候看着他的回答真的叫人惊艳。 不管是文员、工程师还是创作者,bing chat的强大搜集分析能力

    2024年02月04日
    浏览(36)
  • 在手机上运行python文件(qpython版)

    声明:本教程所使用的软件为qpython;第一次写教程,如有错误,还请指出,谢谢! 软件下载: QPython - Python on Android​​​​​​  下载完成后打开,遇到如下选项,选择你Python文件所使用的Python版本,一般是Python3(右 边的那个)  选好后点击编辑器,如果你是直接要编写代

    2024年02月16日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包