带你读《弹性计算技术指导及场景应用》——2. 技术改变AI发展:RDMA能优化吗?GDR性能提升方案

本文涉及的产品
无影云电脑个人版,1个月黄金款+200核时
无影云电脑企业版,4核8GB 120小时 1个月
资源编排,不限时长
简介: 带你读《弹性计算技术指导及场景应用》——2. 技术改变AI发展:RDMA能优化吗?GDR性能提升方案

简介:随着人工智能(AI)的迅速发展,越来越多的应用需要巨大的GPU计算资源。GPUDirect RDMA Kepler GPU CUDA 5.0 中引入的一项技术,可以让使用pcie标准的gpu和第三方设备进行直接的数据交换,而不涉及CPU

背景:GPUDirect RDMA Kepler GPU CUDA 5.0 中引入的一项技术,可以让使用pcie标准的gpu和第三方设备进行直接的数据交换,而不涉及CPU

 

传统上,当数据需要在 GPU 和另一个设备之间传输时,数据必须通过 CPU,从而导致潜在的瓶颈并增加延迟。使用 GPUDirect,网络适配器和存储驱动器可以直接读写 GPU 内存,减少不必要的内存消耗,减少 CPU 开销并降低延迟,从而显著提高性能。当前网络通信已经成为分布式机器学习的性能瓶颈,所以GDR技术的诞生对提高gpu通信性能至关重要

GDR技术相较之前技术的升级点

下图直观的展示了gdr技术的核心点所在,归纳来说就是GPUDirect RDMA 技术使得数据流绕过主机内存和 CPU,直接走pcie链路,降低了传输延迟,加快了数据交换速度,并可以减轻 CPU 负载,释放 CPU 的计算能力,同时也避免了数据在主机内存中的复制,大大提升了性能。

image.png

那么,GDR就一定比传统方式快吗?

前文介绍了gdr的优势,仿佛gdr对比传统方式有百利而无一害,那么gdr就一定快吗?我们可以看下如下拓扑结构

我们拥有了如下图所示的拓扑,gpu与网卡是跨rc

image.png

这时候假设我们想要与对端机器进行一个通信,使能了gdr之后的整个路径流程如下图所示

image.png

首先是由网卡发起dma readrequestgpu收到之后再返回,网卡在收到dma read请求返回的数据接着rdma write到对端的网卡,再dma writegpu中,由于gdr技术是基于pcie标准的,所以整体链路都是需要通过整个pcie链路来触达,于是我们单看一端,链路就会是一个dma_read request翻山越岭,翻过rc,翻过switch到达gpu然后再是tlp包翻山越岭翻越switch翻越rc再到网卡,这么长的链路会导致延迟增大

而如果不使用gdr,整个链路则会是gpu数据搬运到系统内存,再从系统内存搬运到网卡,整体是pipline起来的,这种情况下,由于pcie链路长导致延迟大,使用gdr性能是可能差于不使用gdr的。

那么gdr的合适使用场景是什么呢,比较推荐的场景就是gpu与第三方设备在同switch下的场景,这种情况下是存在性能增益的

长拓扑链路的可能改进方案

那么对于上面那种拓扑,是否存在方案可以将其性能提升呢?上面这种拓扑性能差的最大问题为整个pcie链路过长,如果能缩短链路就可以降低延迟,提升性能,于是我们把眼光放到了dma_read上。

dma write的优势

如果将网卡发出的dma read替换成gpu发起的dma write,就可以降低一半的pcie链路长导致的时延,同时dma write相较于dma read也存在本身性能上的优势,对于readpcie采用切分传输的方式,首先需求方发起一个读请求,完成器发送 ACK DLLP 来确认需求方的读取请求,接下来完成器再返回一个completion data,那个completion date会被切分到多个completion包里,而write则是单一包,于是就会导致read 的吞吐是低于write的吞吐的,举个例子,假设read rerquest512bytes,而completion包大小为256 bytes,那么最大最理想的读吞吐则如下:

completion packets需要的数量为 512/256 = 2

没有 ECRC 3 dword TLP 标头的开销为 2*20=40bytes

最大吞吐为 512/512 + 40=92%

下图即为这个例子的一个示意图,read需要有两个completion包而write则是单一包即完成。

image.png

以上的计算为读吞吐最大最理想的情况,pcie标准定义了read completion boundary (RCB) 参数,这个参数定义了一个read request被几个completion 包回复的边界,对于root complext来说,rcb的值是64bytes或者128bytes,对于其他pcie设备来说,则是128bytes

对于没对齐的read request来说,吞吐数据还会更差。

所以改成dma write相较于dma read来说,有时延上的提升,同时也有吞吐上的提升。

优化后的方案整体链路就如下图所示:

image.png

简单尝试

当前rdma协议是不支持这种方式的,所以就需要自己探索下是否可行,那么第一点就是gpu需要能主动对第三方设备发起dma write,我们知道gpu是可以对gpu进行dma write的,那么下面就做一个简单的试验。

image.png

image.png

可以看到是可以跑通的,即gpu可以对非gpu地址主动dma write

可能遇到的问题

那么如果需要让gpu来发起dma write还有哪些方面需要考虑呢?

1)丢包问题

首先,之前由网卡发起是因为网卡这边可以计算到发包一定能成功再发起dma read请求,这样tlp包到了网卡就能顺畅发出去,不存在丢包风险,当前由gpu发起的话tlp包抵达网卡后,如果网卡接收到包就直接发出就存在丢包风险,所以需要有一个规避方案,网卡需要计算一定能发再发,于是就需要有一个缓存的地方将可能丢包的包先缓存起来

2)调度问题

其次,gpu直接dma write到网卡的tlp包可能不会被网卡所接收,需要在gpu和网卡间达成约定,gpu发的那些包网卡不进行丢弃而是调度管理起来发送到对端,那么就需要gpu这边能kick doorbell,通知网卡收到的dma数据包需要留下,有一种方案就是移植部分libverbsgpu上面去跑,这样子gpu就可以与网卡进行直接通信

另一个就是需要封装一个api,应用发起rdma命令后,使之前让网卡发起dma read的流程变为让gpu发起dma write

总结

综上所示,通过以下方法,可以提升gdr性能:

∙        上层封装一个api可以使gpu发起dma write

∙        libverbs移植部分到gpu上跑

∙        gpu主动发起dma write

∙        网卡那边增加缓存,对于不是一定有把握发成功的包先进行缓存,当确定能发送以后再将包发送出去

当然,整个方案的落地也还有很多工作要做,需要修改rdma协议,同时在缓存与调度方面也需要很多工作进行,但收益也是显而易见的,能大大提升gdr的通用性与性能,使gdr在长topo链路时也变得可用。

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
1天前
|
机器学习/深度学习 人工智能 自动驾驶
企业内训|AI大模型在汽车行业的前沿应用研修-某汽车集团
本课程是TsingtaoAI为某汽车集团高级项目经理设计研发,课程全面系统地解析AI的发展历程、技术基础及其在汽车行业的深度应用。通过深入浅出的理论讲解、丰富的行业案例分析以及实战项目训练,学员将全面掌握机器学习、深度学习、NLP与CV等核心技术,了解自动驾驶、智能制造、车联网与智能营销等关键应用场景,洞悉AI技术对企业战略布局的深远影响。
123 96
|
6天前
|
机器学习/深度学习 人工智能 物联网
AI赋能大学计划·大模型技术与应用实战学生训练营——湖南大学站圆满结营
12月14日,由中国软件行业校园招聘与实习公共服务平台携手魔搭社区共同举办的AI赋能大学计划·大模型技术与产业趋势高校行AIGC项目实战营·湖南大学站圆满结营。
AI赋能大学计划·大模型技术与应用实战学生训练营——湖南大学站圆满结营
|
3天前
|
SQL 人工智能 API
智能导购AI助手测评 | 替代未来客服的保障方案
阿里云推出的主动式智能导购AI助手,采用Multi-Agent架构,通过规划助理、商品导购助理和历史对话信息,为顾客提供个性化的产品推荐。无论是商家还是顾客,都能从中受益。它不仅帮助顾客在购买不熟悉的产品时做出明智选择,还让商家更高效地服务客户。开发者可快速部署,使用便捷,大大降低AI技术门槛。
44 10
|
3天前
|
弹性计算 人工智能 自然语言处理
云工开物:阿里云弹性计算走进高校第2期,与北京大学研一学生共探AI时代下的应用创新
阿里云高校合作、弹性计算团队​于北京大学,开展了第2届​【弹性计算进校园】​交流活动。
|
2天前
|
机器学习/深度学习 传感器 人工智能
开源AI视频监控系统在监狱安全中的应用——实时情绪与行为分析、暴力预警技术详解
针对监狱环境中囚犯情绪波动和复杂人际互动带来的监控挑战,传统CCTV系统难以有效预警暴力事件。AI视频监控系统基于深度学习与计算机视觉技术,实现对行为、情绪的实时分析,尤其在低光环境下表现优异。该系统通过多设备协同、数据同步及自适应训练,确保高精度识别(95%以上)、快速响应(<5秒),并具备24小时不间断运行能力,极大提升了监狱安全管理的效率与准确性。
|
2天前
|
人工智能 分布式计算 供应链
高效提取图片信息:AI技术赋能企业数字化转型
本文介绍了如何通过AI技术高效提取图片中的结构化信息,提升企业运营效率。具体应用场景包括票据与合同管理、电商商品信息管理、保险理赔和物流单据处理等。AI技术能将传统人工录入流程缩短至秒级,准确率高达99%,减少人为错误,提升客户满意度。方案优势在于易于扩展、灵活高性价比的调用模式及便捷安全的云产品接入。文中还详细描述了部署应用、访问示例应用及使用官方示例进行信息提取的操作步骤,并提供了参考链接和源码下载途径。
|
5天前
|
人工智能 前端开发 Java
Spring AI Alibaba + 通义千问,开发AI应用如此简单!!!
本文介绍了如何使用Spring AI Alibaba开发一个简单的AI对话应用。通过引入`spring-ai-alibaba-starter`依赖和配置API密钥,结合Spring Boot项目,只需几行代码即可实现与AI模型的交互。具体步骤包括创建Spring Boot项目、编写Controller处理对话请求以及前端页面展示对话内容。此外,文章还介绍了如何通过添加对话记忆功能,使AI能够理解上下文并进行连贯对话。最后,总结了Spring AI为Java开发者带来的便利,简化了AI应用的开发流程。
139 0
|
2天前
|
人工智能 运维 监控
云卓越架构:企业稳定性架构体系和AI业务场景探秘
本次分享由阿里云智能集团公共云技术服务部上海零售技术服务高级经理路志华主讲,主题为“云卓越架构:企业稳定性架构体系和AI业务场景探秘”。内容涵盖四个部分:1) 稳定性架构设计,强调高可用、可扩展性、安全性和可维护性;2) 稳定性保障体系和应急体系的建立,确保快速响应和恢复;3) 重大活动时的稳定重宝策略,如大促或新业务上线;4) AI在企业中的应用场景,包括智能编码、知识库问答、创意广告生成等。通过这些内容,帮助企业在云计算环境中构建更加稳定和高效的架构,并探索AI技术带来的创新机会。
|
5天前
|
人工智能 安全 图形学
【AI落地应用实战】篡改检测技术前沿探索——从基于检测分割到大模型
在数字化洪流席卷全球的当下,视觉内容已成为信息交流与传播的核心媒介,然而,随着PS技术和AIGC技术的飞速发展,图像篡改给视觉内容安全带来了前所未有的挑战。 本文将探讨篡改检测技术的现实挑战,分享篡改检测技术前沿和最新应用成果。
|
7月前
|
人工智能 缓存 调度
技术改变AI发展:RDMA能优化吗?GDR性能提升方案(GPU底层技术系列二)
随着人工智能(AI)的迅速发展,越来越多的应用需要巨大的GPU计算资源。GPUDirect RDMA 是 Kepler 级 GPU 和 CUDA 5.0 中引入的一项技术,可以让使用pcie标准的gpu和第三方设备进行直接的数据交换,而不涉及CPU。
136264 6