带你读《弹性计算技术指导及场景应用》——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天前
|
存储 XML 人工智能
深度解读AI在数字档案馆中的创新应用:高效识别与智能档案管理
基于OCR技术的纸质档案电子化方案,通过先进的AI能力平台,实现手写、打印、复古文档等多格式高效识别与智能归档。该方案大幅提升了档案管理效率,确保数据安全与隐私,为档案馆提供全面、智能化的电子化管理解决方案。
65 48
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
当前AI大模型在软件开发中的创新应用与挑战
【10月更文挑战第31天】2024年,AI大模型在软件开发领域的应用取得了显著进展,从自动化代码生成、智能代码审查到智能化测试,极大地提升了开发效率和代码质量。然而,技术挑战、伦理与安全问题以及模型可解释性仍是亟待解决的关键问题。开发者需不断学习和适应,以充分利用AI的优势。
|
1天前
|
人工智能 安全 测试技术
探索AI在软件开发中的应用:提升开发效率与质量
【10月更文挑战第31天】在快速发展的科技时代,人工智能(AI)已成为软件开发领域的重要组成部分。本文探讨了AI在代码生成、缺陷预测、自动化测试、性能优化和CI/CD中的应用,以及这些应用如何提升开发效率和产品质量。同时,文章也讨论了数据隐私、模型可解释性和技术更新等挑战。
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
思通数科AI平台在尽职调查中的技术解析与应用
思通数科AI多模态能力平台结合OCR、NLP和深度学习技术,为IPO尽职调查、融资等重要交易环节提供智能化解决方案。平台自动识别、提取并分类海量文档,实现高效数据核验与合规性检查,显著提升审查速度和精准度,同时保障敏感信息管理和数据安全。
37 11
|
3天前
|
机器学习/深度学习 人工智能 算法
AI技术在医疗健康领域的应用与挑战####
本文旨在探讨人工智能(AI)技术在医疗健康领域的创新应用及其面临的主要挑战。通过深入分析AI如何助力疾病诊断、治疗方案优化、患者管理及药物研发,本文揭示了AI技术在提升医疗服务质量、效率和可及性方面的巨大潜力。同时,文章也指出了数据隐私、伦理道德、技术局限性等关键问题,并提出了相应的解决策略和未来发展方向。本文为医疗从业者、研究者及政策制定者提供了对AI医疗技术的全面理解,促进了跨学科合作与创新。 ####
|
1天前
|
机器学习/深度学习 人工智能 搜索推荐
探索AI在医疗诊断中的革命性应用
【10月更文挑战第29天】 随着人工智能技术的飞速发展,其在医疗领域的应用已成为推动现代医疗服务创新的重要力量。本文旨在探讨AI技术如何在医疗诊断中发挥其独特优势,通过分析AI在影像诊断、疾病预测和个性化治疗计划制定等方面的应用案例,揭示AI技术如何提高诊断的准确性和效率,以及面临的挑战和未来发展趋势。
17 1
|
2天前
|
人工智能 算法
AI技术在医疗领域的应用及其挑战
【10月更文挑战第31天】本文将探讨AI技术在医疗领域的应用及其面临的挑战。我们将从AI技术的基本概念开始,然后详细介绍其在医疗领域的应用,包括疾病诊断、药物研发、患者护理等方面。最后,我们将讨论AI技术在医疗领域面临的挑战,如数据隐私、算法偏见等问题。
|
2天前
|
存储 人工智能 文字识别
AI与OCR:数字档案馆图像扫描与文字识别技术实现与项目案例
本文介绍了纸质档案数字化的技术流程,包括高精度扫描、图像预处理、自动边界检测与切割、文字与图片分离抽取、档案识别与文本提取,以及识别结果的自动保存。通过去噪、增强对比度、校正倾斜等预处理技术,提高图像质量,确保OCR识别的准确性。平台还支持多字体识别、批量处理和结构化存储,实现了高效、准确的档案数字化。具体应用案例显示,该技术在江西省某地质资料档案馆中显著提升了档案管理的效率和质量。
|
7天前
|
机器学习/深度学习 数据采集 人工智能
AI赋能教育:深度学习在个性化学习系统中的应用
【10月更文挑战第26天】随着人工智能的发展,深度学习技术正逐步应用于教育领域,特别是个性化学习系统中。通过分析学生的学习数据,深度学习模型能够精准预测学生的学习表现,并为其推荐合适的学习资源和规划学习路径,从而提供更加高效、有趣和个性化的学习体验。
44 9
|
5天前
|
人工智能 JSON API
阿里云文档智能 & RAG解决方案:提升AI大模型业务理解与应用
阿里云推出的文档智能 & RAG解决方案,旨在通过先进的文档解析技术和检索增强生成(RAG)方法,显著提升人工智能大模型在业务场景中的应用效果。该方案通过文档智能(Document Mind)技术将非结构化文档内容转换为结构化数据,提取文档的层级树、样式和版面信息,并输出为Markdown和Json格式,为RAG提供语义分块策略。这一过程不仅解决了文档内容解析错误和切块丢失语义信息的问题,还优化了输出LLM友好的Markdown信息。方案的优势在于其多格式支持能力,能够处理包括Office文档、PDF、Html、图片在内的主流文件类型,返回文档的样式、版面信息和层级树结构。
35 2