带你读《弹性计算技术指导及场景应用》——1. 技术改变AI发展:CUDA Graph优化的底层原理分析

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 带你读《弹性计算技术指导及场景应用》——1. 技术改变AI发展:CUDA Graph优化的底层原理分析

简介:随着人工智能(AI)的迅速发展,越来越多的应用需要巨大的GPU计算资源。CUDA是一种并行计算平台和编程模型,由Nvidia推出,可利用GPU的强大处理能力进行加速计算。

CUDA 异步执行模型

对于GPU运算集中的AI应用场景,为了提升系统的性能,最大化地利用GPU资源是一个重要的优化方向。比较常用的方式是尽量将GPU运算转换为异步操作,CPU侧负责任务提交,保证有足够的cuda kernel发送到GPUGPU按照CUDA Stream流队列中的Kernel顺序执行。只要这中间不存在同步操作,GPU完全可以不用等待,顺序地将所有的kernel执行完,然后再通知CPUCPU运算和GPU运算是相互独立的协作关系。

 

以上的模型是一个理想化的状态,听起来合乎逻辑,而且很完美。大致的运行效果如图1。可以看到CPU通过CUDA API已经将Kernel提前准备好,GPU的任务一个接一个。GPU的利用率也比较高。

 

image.png

1 GPU异步执行的典型场景?

 

对于一般的性能优化,达到这种状态已经很好了。但如果想进一步的优化就需要知道模型的实际运行情况。随着GPU算力的提升,计算任务的执行时间在慢慢缩小,一个GPU执行单元可能在us或者ms级完成。

 

通常情况下一个好的AI运算框架或模型应该尽量让GPU Kernel的运算时间长一些,从而使得GPU的性能能够更好地发挥,因为有个事实是:GPU Kernel提交到硬件也是有开销的,虽然这个时间可能只有0.x us。这里的提交不是指的cudaLaunchKernel而是更底层驱动和硬件之间的真正的提交。

 

如果业务场景中有很多小的usKernel要执行,则整个系统的性能会随着短Kernel的比例增加整体性能输出越来越差,GPU资源并不能充分利用起来。?

CUDA Graph 性能优化效果

CUDA Graph可以通过CaptureCreate的方式将多个Kernel组合在一起生成一个Graph,与Kernel融合不同,在Graph内部仍然是多个Kernel的形式存在,但提交操作只需要一次,如果可以将尽量多的Kernel组合在一起,那么理论上可以节约很多Kernel提交的开销。

 

CUDA Graph也有其自身的限制,它的设计思路是将多个任务单元作为一个快照进行组合,也就意味着这个快照的参数和结构组成是固定的,不能变换,同时实例化这个快照是比较耗时的,但如果这个快照被反复执行(replay)的次数足够多,实例化快照的时间是可以忽略的。

 

以一个简单的Kernel为例介绍CUDA Graph是如何影响性能输出的。这里需要自己开发构造一个Kernel:可以根据运算复杂度调整执行时间,但在运行过程中没有HostDevice侧的数据交互。

 

以下分析均基于这个自定义Kernel进行。通过对比CUDA Graph优化前后的性能数据(图2)可以看到CUDA Graph对于执行时间越小的Kernel性能提升越明显,原因是Kernel提交的开销占比会更大(假设单次提交的开销是固定的,接下来会证明这一假设)。

 

image.png

图 不同执行时间kernel CUDA Graph优化后性能提升对照表?

CUDA Graph 性能优化原理

为什么Kernel的提交会有系统开销并最终影响到GPU卡的性能输出?

 

从图1GPU异步执行逻辑来看,GPU完全可以按照CUDA Stream的队列顺序自己控制Kernel的执行节奏,只要队列中的任务足够,就能输出最大的性能。

 

Kernel提交的开销究竟在哪里?

 

3 可以有一个侧面的解释。在Kernel的执行过程中是有持续的双向数据流量的。而且这个流量和Kernel的执行时间是成反比的。这是个很重要的信息,因为Kernel执行过程中是没有运算数据流量的,HostToDevice的流量就是CPUKernel提交产生的,DeviceToHost的流量就是GPU执行完Kernel需要和Host交互产生的。而且这个流量是和Kernel的提交频率有关,和Kernel本身并没有关系。

 

image.png

图 不同执行时间kernel对应的GPU流量对照表?

 

进一步研究Kernel提交究竟会有多大的数据流量,图4 做了一个展示,单次Kernel的提交产生数据流量大约在1KBGPU执行与Host同步的数据量大约在0.22KB,而且从统计结果看与Kernel的大小无关。这也可以证明前面的假设:Kernel的提交开销总体上是固定的。

 

image.png

4. 不同Kernel单次提交产生的数据流量对照表

CUDA Graph引入分析总结:

?        cuda kernel在执行时存在确定的HostDevice侧交互

?        交互的频率或流量与cuda kernel的提交频率有关,与cuda kernel大小无关

?        CUDA Graph通过组合Kernel的方式可以将Kernel提交频率大幅降低,提高GPU的性能输出,但对于执行时间长的Kernel性能优化不明显。

?        对于HostDevice端延时明显的场景,这种优化都是有益的。因为这个Kernel的提交开销本质上就是H2D 延时的开销,延时越小Kernel提交的效率就越高。

?        对于物理机为了能够得到极致的性能可以尽量减少中间PCIe Switch的级数,因为每一级的switch引入RTT延时大约在0.3us,我们目前使用的GPU Box机型普遍有2Switch,引入RTT延时在0.6us。如果是采用gn7i的机型,GPU卡直连PCIe Root Complex,这0.6us是完全没有的,性能表现在小Kernel占比较高的场景中会更优越。

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
1天前
|
人工智能 自然语言处理 搜索推荐
如何利用AI技术改善学生的学习体验?
【5月更文挑战第19天】如何利用AI技术改善学生的学习体验?
6 1
|
2天前
|
机器学习/深度学习 人工智能 编解码
AI生成壁纸的工作原理
AI生成壁纸基于深度学习和生成对抗网络(GANs),通过生成器与判别器的对抗学习,以及条件生成对抗网络(CGANs)来创造特定风格的壁纸。技术还包括风格迁移、深度卷积生成对抗网络(DCGAN)、潜在空间扩展和自注意力机制。审美评价机制的引入确保了生成的壁纸既符合技术标准又有艺术价值。CGANs能根据用户条件生成个性化壁纸,而风格迁移技术通过多种方法实现图像风格转换。DCGAN和其他GAN变体在处理图像数据时有优势,如高质量样本生成和特征学习,但也存在图像质量、训练效率和模式崩溃等问题。通过构建审美评估模型和使用XAI技术,AI在生成壁纸时能更好地平衡技术与艺术标准。
|
2天前
|
人工智能 算法 Serverless
上海站丨飞天技术沙龙 Serverless + AI 专场开启报名!
"飞天技术沙龙——Serverless 技术实践营"将于2024年5月31日举行,聚焦Serverless在AI中的应用。活动包括演讲、实操,探讨Serverless演进趋势、AI应用开发及降低成本等议题。限额80人,报名审核制,现场还有大奖和证书待您领取。扫描链接<https://summit.aliyun.com/Serverless2024shanghai>报名。
上海站丨飞天技术沙龙 Serverless + AI 专场开启报名!
|
5天前
|
人工智能 自然语言处理 搜索推荐
AI如何优化广告效果?
【5月更文挑战第15天】AI如何优化广告效果?
12 1
|
5天前
|
人工智能 IDE Devops
通义灵码技术解析,打造 AI 原生开发新范式
本文第一部分先介绍 AIGC 对软件研发的根本性影响,从宏观上介绍当下的趋势;第二部分将介绍 Copilot 模式,第三部分是未来软件研发 Agent 产品的进展。
|
5天前
|
人工智能 NoSQL atlas
Atlas Vector Search:借助语义搜索和 AI 针对任何类型的数据构建智能应用
一切才刚刚开始,MongoDB 致力于提供优秀的开发者数据平台,助力开发者打造新一代 AI 赋能的应用
2542 2
|
5天前
|
人工智能 NoSQL atlas
Fireworks AI和MongoDB:依托您的数据,借助优质模型,助力您开发高速AI应用
我们欣然宣布MongoDB与 Fireworks AI 正携手合作让客户能够利用生成式人工智能 (AI)更快速、更高效、更安全地开展创新活动
2539 1
|
5天前
|
人工智能 JSON 机器人
[译][AI OpenAI-doc] 延迟优化
本指南涵盖了一系列核心原则,您可以应用这些原则来改善在各种LLM相关用例中的延迟。这些技术来自于与广泛的客户和开发人员在生产应用程序上的合作,因此无论您正在构建什么——从细粒度的工作流程到端到端的聊天机器人,都应该适用!
[译][AI OpenAI-doc] 延迟优化
|
5天前
|
人工智能 自然语言处理 搜索推荐
阿里通义千问的这次升级不仅带来了实实在在的利好,也为我们展示了AI技术的巨大潜力和广阔前景
【5月更文挑战第13天】阿里通义千问3月22日升级,开放1000万字长文档处理功能,成为全球处理容量最大的AI应用,超越ChatGPT等。此升级助力用户(如金融分析师、法律人士、科研人员)高效处理文档,提升工作效率,并推动AI在各行业深入应用,加速数字化转型。未来,通义千问可能发展更强大的自然语言处理能力、拓宽应用场景及提供智能个性化推荐,展现AI技术潜力与前景。
25 2
|
5天前
|
存储 机器学习/深度学习 人工智能
新一代数据库技术:融合AI的智能数据管理系统
传统数据库管理系统在数据存储和查询方面已经取得了巨大的成就,但随着数据量的不断增长和应用场景的多样化,传统数据库已经难以满足日益增长的需求。本文将介绍一种新一代数据库技术,即融合了人工智能技术的智能数据管理系统。通过结合AI的强大能力,这种系统能够实现更高效的数据管理、更智能的数据分析和更精准的数据预测,为用户带来全新的数据管理体验。
http://www.vxiaotou.com