阿里云赵大川:弹性计算推理解决方案拯救 AIGC 算力危机

云布道师

本篇文章围绕弹性计算推理解决方案 DeepGPU 实例如何支持 Stable Diffusion 文生图推理、Stable Diffusion 推理演示示例等相关话题展开。
在这里插入图片描述
赵大川 阿里云弹性计算高级技术专家

GPU 云服务器推理解决方案的提出背景

随着 AIGC 时代的到来,两个重要应用应运而生,一个是 Stable Diffusion DALL-E 为代表的文生图,另一个是以 ChatGPT 和 Llama 为代表的文生文。这两个场景迅速火爆全球,近期采用融合模式将两个应用融合在一起的场景已经出现,即以 ChatGPT + DALL-E 为代表的融合多模态模型。在这样的趋势下,融合模型将成为新的增长点。
在这里插入图片描述
2015 年,Resnet50 的诞生使图像识别达到非常高的境界。时至今日,该模型依然活跃在主流 benchmark 的测试集中。

2018 年,随着 Bert Base 的诞生,各种应用场景对算力的需求达到了新的高峰,在典型情况下,需要十倍于 Resnet50 的算力。在这种大背景下,越来越多的业务运营方开始感受到了巨大算力需求带给自身的运营压力,继而促使他们更加积极地寻求性能优化的解决方案。据数据统计,阿里云支持的客户场景中,Bert Base 的优化需求超过了一半。
在这里插入图片描述
2022 年,Stable Diffusion 文生图一经发布便迅速火爆全球,它带来的算力需求增长惊世骇俗。相较于 Resnet50,它对算力的需求量增长了约 10000 倍。

相较于 Resnet50,Bert Base 仅仅是一个数量级的提升,便让业务运营方感受到了巨大压力,而 Stable Diffusion 文生图在 Bert Base 基础上又提升了三个数量级的算力需求,这种需求的变化将会引起一场重大的算力危机。

Stable Diffusion 弹性计算 DeepGPU 实例拯救文生图推理

在上面提到的算力需求迅速扩大的背景之下,弹性计算 GPU 实例针对文生图场景进行了深度优化。

如下图所示,最底层是 GPU 传统的硬件,如 GPU、网络、存储等;在这些硬件之上是 DeepGPU 增强工具包,基于 DeepGPU 增强工具包可以最大化地利用底层硬件的性能,从而更好地支撑上层应用,包括大语言模型、SD 等解决方案。DeepGPU 主要是为了帮助客户快速基于 IaaS 构建企业级应用,同时大幅优化性能,降低使用难度,做到开箱即用,提升用户体验。
在这里插入图片描述
下面罗列了一些在售的实例规格:包括老型号如 T4、V100,以及 Ampere 架构的A100 和 A10。基于 Ampere 架构的 A100 和 A10 更适合 Stable Diffusion 场景,原因在于 Ampere 架构提供的新的底层硬件特性能够很好地帮助 Stable Diffusion 推理提升性能。
在这里插入图片描述
相对而言,A100 在 Stable Diffusion XL 1.0 上的表现更加突出,其根本原因是在于 Stable Diffusion XL 1.0 的算子主要由计算密集型组成,可以充分发挥 A100 的算力优势。

而 A10 则能够在 Stable Diffusion 1.5 上提供较高性价比,同时也能对 Stable Diffusion XL 1.0 提供良好的支持。

ECS GPU 实例基于 DeepGPU 工具包在 SD 上的性能表现

如下图所示:左侧两个图表是常规性能的对比,上面是 Stable Diffusion 1.5,下面是 Stable Diffusion 2.1,整个平台是在 A10 的 GPU 上运行,相比较 xformers 的性能在不同的分辨率下提升了 60%~70%。
在这里插入图片描述
右上方的表格主要罗列了各种不同场景,更加接近于客户真实的使用情况,包括一些标准测试、动态尺寸,还叠加了 LORA + controlnet 等,同时还夹杂一些模型切换,可以看到基于不同的场景,性能的差异较大,最多能提升几倍,性能提升的主要来源是模型切换过程中对耗时的节省。

ECS GPU 实例的客户价值

想让客户去接受该加速方案仅有性能提升是远远不够的。DeepGPU 自诞生以来,包含 SD、LLM 在内已有上百个客户进行过测试,目前已有数十个客户在线上使用 DeepGPU 加速产品。

之所以能够获得客户的认可,主要的原因在于该产品可以帮助客户获得7大收益:

  1. 提供 S 模型性能加速,完美支持动态尺寸优化,而动态尺寸是不同客户在各种场景下能达到运营目标的必需条件,产品使用户的应用在任意分辨率下都可以达到极致的性能水准;
  2. LORA 加速性能无损。
  3. 支持全模式 controlnet 加速。
  4. SD、LORA 和 controlnet 模型无感切换。随着模型的规模越来越大,数据总量急剧上升,存储的成本也是客户要考虑的重中之重。DeepGPU 可以通过缓存降低存储读取延时,对常见的 SD、LORA、 controlnet 模型进行无感的切换。
  5. 全网的图优化。图优化是对模型进行最大程度优化的有效方式,但其需要伴随模型编译的过程,该过程往往会比较耗时。目前,DeepGPU 可以在免编译的前提下,实现全网的图优化,从而达到性能的最大化。
  6. 能对多个模型进行高效的管理。
  7. DeepGPU 在客户适配过程中,对客户的代码以及模型无任何侵入性。

Stable Diffusion XL 极速推理

Stable Diffusion XL 专为高清图片生成而生,它能够提供更多的图像生成细节和更高的画质,是对 SD 的重大改进,也是业界生成图的重要发展趋势。性能对比见以下两个图表:
在这里插入图片描述
左边是 A100,右边是 A10,在分辨率较大的情况下,DeepGPU 相对 xformers 可提供 60%-70% 的性能提升,而在分辨率较小的情况下,性能优势会更大,达到 1 倍甚至 2 倍多。由此可以看出,xformers 在小分辨率上的支持较弱。同时可以看出 A100 在高分辨率下的优势非常明显。

A100 在高分辨率下优势明显,主要原因有两个,其一,A100 的算力很强,高分辨率有助于 A100 发挥算力优势;其二,A100 配备非常大的显存,可以对高分辨率下巨大的显存需求提供良好的支持,可以看到在 2048 分辨率下,A100 的性能是 A10 的近 3 倍。

除此之外,对业界主流接口的完整支持也是非常重要的一项,目前 ECS GPU 支持的主流接口包括 diffusers,webUI,comfyUI,以满足不同客户的需求。

Stable Diffusion 推理演示示例

接下来通过实例演示来更直观地体验在 DeepGPU 加持下,SD 的推理过程,如下图:这里给出了 5 个不同的场景,分别对应金字塔的 5 个层级,越接近于塔尖,对算力以及显存的需求越苛刻。
在这里插入图片描述
1.基于 A100 SD1.5 512x512 50step 的应用场景
这是一个非常常见的标准测试场景,通过实际运行,发现其运行时间非常短,DeepGPU 在 0.88 秒结束了整个过程,xformers 紧随其后,用时 2.27 秒,性能提升大约为 1.5 倍。
在这里插入图片描述
(https://cloud.video.taobao.com/play/u/null/p/1/e/6/t/1/441769882876.mp4)

2.基于 A100 SD1.5 + controlnet + LORA 1024x1024 50step 场景
测试时间更长,通过测试可以发现 DeepGPU 一路领先,在 5.31 秒率先完成整个推理过程,xformers 花费 9.70 秒,性能提升约 80%。
在这里插入图片描述
(https://cloud.video.taobao.com/play/u/null/p/1/e/6/t/1/441652358095.mp4)

3.基于 A100 SDXL base 1024x1024 50step 场景
这是 StabilityAI 今年最重要的模型更新,基于标准的 SDXL 测试。通过测试发现,DeepGPU 与 xformers 对比加速明显,DeepGPU 3.96 秒完成测试,xformers 花费 7.07 秒,性能提升约 70%。
图片
(https://cloud.video.taobao.com/play/u/null/p/1/e/6/t/1/442038691040.mp4)

4.基于 A100 SDXL base 2048x2048 50step 场景
对测试进行加码,通过测试可以发现,随着分辨率的提升,推理的时间大幅增长,DeepGPU 的耗时是 18.78 秒,xformers 完成推理的时间是 32.8 秒,性能提升约为 70%。
在这里插入图片描述
(https://cloud.video.taobao.com/play/u/null/p/1/e/6/t/1/441179104308.mp4)

5.基于A100 SDXL base + refiner + controlnet + LORA 2048x2048 50step 场景
测试难度持续攀升,在该配置下,对算力和显存的需求极高,A100 在该配置下发挥了其硬件优势,在加持了 DeepGPU 之后性能遥遥领先,DeepGPU 用时 26.56 秒,xformers 用时 46.06 秒,在这一场景下,用户明显体验到了性能质的飞跃,性能提升约 70%。

关于 A10 的主售机型性能对比,可以在阿里云计算巢完成 A10 在五种测试场景的对比。
在这里插入图片描述
(https://cloud.video.taobao.com/play/u/null/p/1/e/6/t/1/441941306009.mp4)

以下展示的是阿里云目前使用 DeepGPU 进行推理的部分合作伙伴。
在这里插入图片描述
此外,除了阿里巴巴集团、蚂蚁集团的多个业务部门,还有超 40 家外部客户也在使用 DeepGPU 进行加速,如果有兴趣进一步了解 DeepGPU 的加速,可以联系阿里云的解决方案架构师了解详细情况。

以上就是本次分享的全部内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/238036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js如何调用iframe页面里的方法

document.getElementById("iframeID").contentWindow.子级页面方法(); <body><h3>父页面</h3><iframe id"iframebb" src"b.html" ></iframe><br><script>function ff(){alert("这里是父页面ff的…

IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -SpringMVC @RequestMapping详解

第一章 RequestMapping详解 RequestMapping注解作用&#xff1a;为指定的类或方法设置相应URL 1.1 RequestMapping注解位置 书写在类上面 作用&#xff1a;为当前类设置映射URL注意&#xff1a;不能单独使用&#xff0c;需要与方法上的RequestMapping配合使用 书写在方法上面 …

vi和vim的区别

目录 一、前言 二、vi/vim 的介绍 三、Vi/Vim 常见指令 四、vi和vim的区别 一、前言 写这篇文章的目的&#xff0c;是为了告诉大家我们如果要在终端下对文本进行编辑和修改可以使用vim编辑器。 Ubuntu 自带了 VI 编辑器&#xff0c;但是 VI 编辑器对于习惯了 Windows 下进…

Python办公自动化 – 日志分析和自动化FTP操作

Python办公自动化 – 日志分析和自动化FTP操作 以下是往期的文章目录&#xff0c;需要可以查看哦。 Python办公自动化 – Excel和Word的操作运用 Python办公自动化 – Python发送电子邮件和Outlook的集成 Python办公自动化 – 对PDF文档和PPT文档的处理 Python办公自动化 – 对…

55 回溯算法解黄金矿工问题

问题描述&#xff1a;你要开发一座金矿&#xff0c;地质学家已经探明了这座金矿中的资源分布&#xff0c;并用大小为m*n的网格grid进行了标注&#xff0c;每个单元格中的整数就表示这一单元格中的黄金数量&#xff1b;如果单元格是空的&#xff0c;那么就是0&#xff0c;为了使…

【pentaho】kettle读取Hive表不支持bigint和timstamp类型解决。

一、bigint类型 报错: Unable to get value BigNumber(16) from database resultset显示kettle认为此应该是decimal类型(kettle中是TYPE_BIGNUMBER或称BigNumber)&#xff0c;但实际hive数据库中是big类型。 修改kettle源码解决&#xff1a; kettle中java.sql.Types到kettle…

MFC使用高速绘图控件high-speed Charting Control绘制柱形图

1. 创建MFC单文档工程BarChartDemo。 2. 在工程文件夹下新建文件夹ChartCtrl,将ChartCtrl源码放入,如下图所示。在工程中添加这些项,项目——添加——现有项,全部添加。 3. 添加一个对话框,ID为IDD_DLG_BAR,类名为CBarDlg。 4. 在对话框中添加Custom Control控件,将控…

【SpringBoot应用篇】【AOP+注解】SpringBoot+SpEL表达式基于注解实现权限控制

【SpringBoot应用篇】【AOP注解】SpringBootSpEL表达式基于注解实现权限控制 Spring SpEL基本表达式类相关表达式表达式模板 SpEL表达式实现权限控制PreAuthAuthFunPreAuthAspectUserControllerSpelParserUtils Spring SpEL Spring 表达式语言 SpEL 是一种非常强大的表达式语言…

cka从入门到放弃

无数次想放弃&#xff0c;最后选择了坚持 监控pod日志 监控名为 foobar 的 Pod 的日志&#xff0c;并过滤出具有 unable-access-website 信息的行&#xff0c;然后将 写入到 /opt/KUTR00101/foobar # 解析 监控pod的日志&#xff0c;使用kubectl logs pod-name kubectl logs…

OSPF面试总结

OSPF 基本特点 属于IGP、LS支持无类域间路由没有环路&#xff08;区域内运行LS、区域间是DV,所以所有的区域要和区域0相连&#xff09;收敛速度快使用组播发送数据 224.0.0.5、224.0.0.6 什么时候用224.0.0.5&#xff1f;支持多条等价路由支持协议报文认证 OSPF路由的计算过程…

Pytorch:torch.nn.utils.clip_grad_norm_梯度截断_解读

torch.nn.utils.clip_grad_norm_函数主要作用&#xff1a; 神经网络深度逐渐增加&#xff0c;网络参数量增多的时候&#xff0c;容易引起梯度消失和梯度爆炸。对于梯度爆炸问题&#xff0c;解决方法之一便是进行梯度剪裁torch.nn.utils.clip_grad_norm_&#xff08;&#xff09…

CMD中文名称修改

会引发的问题 1. jupyter notebook运行出现Bad file descriptor (bundled\zeromq\src\epoll.cpp:100) 2. 用Anaconda或pycharm运行jupyter notebook时候&#xff0c;创建ipynb文件没一会儿就开始报错,且没法运行代码 3. 使用opencv时报错&#xff0c;opencv不支持中文路径&…

Python 爬虫之下载视频(二)

爬取某Y的视频链接和标题 文章目录 爬取某Y的视频链接和标题前言一、基本思路二、程序解析阶段三、程序处理阶段总结 前言 这篇内容就简单给大家写个如何从网页上爬取某B主 主页 页面上所有的视频链接和视频标题。 这篇是基础好好看&#xff0c;下篇会根据这篇的结果做一个批…

如何开发专属花店展示平台小程序?

如今&#xff0c;微信小程序已经成为了花店行业拓展客户资源的重要工具。通过开发一个专属花店小程序&#xff0c;你可以为自己的花店带来更多的曝光和客户资源。那么&#xff0c;如何开发一个专属花店小程序呢&#xff1f;接下来&#xff0c;我们将一步步为你详细讲解。 首先&…

产能过剩的今天,企业的方向在哪里?

随着经济的发展和技术的进步&#xff0c;许多行业都面临着产能过剩的问题。在产能过剩的背景下&#xff0c;企业如何找到新的发展方向&#xff0c;成为了一个亟待解决的问题。本文将探讨产能过剩时代下&#xff0c;企业应该如何寻找新的发展之路。 接下来我们就来看看当今的产…

共建还是对抗?BTC 铭文风波中开发者、矿工与社区的平衡艺术

近期&#xff0c;比特币铭文正加速进入一场争议与危机的漩涡。12 月 6 日&#xff0c;比特币核心开发人员 Luke Dashjr 在 X 表示&#xff0c;铭文&#xff08;Inscriptions&#xff09;正在利用比特币核心客户端 Bitcoin Core 的一个漏洞向区块链发送垃圾信息&#xff0c;Bitc…

MUX VLAN配置

MUX VLAN简介 产生背景 MUX VLAN&#xff08;Multiplex VLAN&#xff09;提供了一种通过VLAN进行网络资源控制的机制。 例如&#xff0c;在企业网络中&#xff0c;企业员工和企业客户可以访问企业的服务器。对于企业来说&#xff0c;希望企业内部员工之间可以互相交流&#…

使用工具类Exectors创建线程池

大型并发项目 不能使用Executors 通过ThreadPoolExector的方式 核心线程配置方式: 计算密集型的任务 核心线程数量 CPU的核数 1 IO密集型的任务 核心线程数量 CPU的核数*2 演示: Callable import java.util.concurrent.Callable;public class MyCallable implements Callab…

R语言贝叶斯网络模型、INLA下的贝叶斯回归、R语言现代贝叶斯统计学方法、R语言混合效应(多水平/层次/嵌套)模型

目录 ㈠ 基于R语言的贝叶斯网络模型的实践技术应用 ㈡ R语言贝叶斯方法在生态环境领域中的高阶技术应用 ㈢ 基于R语言贝叶斯进阶:INLA下的贝叶斯回归、生存分析、随机游走、广义可加模型、极端数据的贝叶斯分析 ㈣ 基于R语言的现代贝叶斯统计学方法&#xff08;贝叶斯参数估…

提升Elasticsearch性能的一些经验

分片查询缓存(Shard Request Cache) ES 层面的缓存实现,封装在 IndicesRequestCache 类中。缓存的 Key 是整个客户端请求,缓存内容为单个分片的查询结果。主要作用是对聚合的缓存,查询结果中被缓存的内容主要包括:Aggregations(聚合结果)、Hits.total、以及 Suggestion…