近几年,随着国内外大模型产品的批量涌现,如:ChatGPT、DeepSeek、Grok、文心一言、Kimi、豆包等,人工智能技术再次引发现象级关注,下一轮技术革命——人工智能,也逐步成为全社会的共识。
为赶上这次技术革命,需要持续学习、了解人工智能相关的知识。但当前网络上的各类知识:
- 要么过于专业,即使搞研究的人员也很难看懂;
- 要么过于表面,内容空泛,多存在夸大和误导性。
针对上述问题,结合在日常学习、工作中对技术和市场的理解,便萌生了一种想法:计划以通俗的语言把人工智能发展的一些关键概念、逻辑讲清楚,供各位参考。
(声明:本人非专业科研人员,如有描述不准确/错漏之处,还望批评指正,十分感谢!)
本篇内容,主要介绍在智算发展过程中的一项关键技术——RDAM。
目录
一、RDMA概念定义
RDMA,全称:Remote Direct Memory Access,包含四个词汇:
Remote:远程
Direct:直接
Memory:内存
Access:访问
顾名思义,RDMA就是一种远程直接访问内存的技术(相当于废话)。
为了真正弄清楚什么是RDMA,我们首先要清楚,RDMA同TCP/IP一样,是一种网络传输协议。
现阶段,绝大多数网络都采用TCP/IP协议建设。
那疑问来了“为什么有了TCP/IP,还需要RDMA协议呢?”,接下来,我们就通过讨论以下几个章节来把RDMA的概念讲清楚——
- 智算时代网络问题是什么:智算时代对网络的需求
- 为什么会出现这个问题:传统TCP/IP协议特点
- 这个问题怎么解决:RDMA协议特点
二、智算时代对网络的需求
众所周知,现在已经进入了人工智能时代(智算时代),智算时代,一个典型的特点就是“大”——大模型、大数据、大集群,等等。
以GPT-4大模型为例,参数规模是1.8万亿,这意味着什么?
意味着:需要2.5万张A100显卡,训练90天时间。
如此大的数据量会带来两个非常典型的网络需求:
1.大带宽:当前以英伟达(nvidia)为主导的GPU厂商,所生产的高性能算力卡,已经可以支持超大规模的数据计算。为匹配服务器计算性能,单节点/主机需要支持800G/1.6T带宽(是刷抖音所需带宽的数十万倍)。
2.低时延:为提高计算效率,通常需要数万张卡同时开展一项任务,这就叫“分布式计算”,在分布式计算中有很明显的短板效应——只有当所有分布式节点完成各自的计算任务后,整个任务才能集成交付。期间,如果数据传输时延高,可能一个节点任务已经计算完毕,另一个节点还未收到任务,导致调度与计算的严重失衡,影响效率。
简单来说,智算时代对网络能力提出了两点要求:
1.大带宽:最好可以达到800G/1.6T带宽
“带宽”可以理解为网速,比如一个1GByte的文档,如果用1Gbps带宽下载,理论上需要8秒,如果用1Mbps带宽下载,需要8192秒。
2.低时延:最好可以达到us级别(0.000001秒)
“时延”可以理解为延迟,比如我们打王者荣耀,如果只有10-90ms的延迟,我们可能是没有太强感知的;如果有200-400ms的延迟,我们就能很明显感受卡顿了。
经上述分析,可以得到结论——智算时代对网络最核心的诉求就是“大带宽”和“低时延”。
三、传统TCP/IP协议特点
关于TCP/IP,相信具备信息化相关学习、工作经历的人,多少都了解一些。
当下,各场景通信网络普遍采用TCP/IP协议,下面讲一下TCP/IP协议的传输逻辑及特点。
(一)TCP/IP协议传输逻辑
在TCP/IP协议中,传递一条消息,需要经过哪些步骤,以微信消息举例:
(注意:为方便理解,这里以说明逻辑为主,实际处理过程还要更加复杂)
信息发送阶段——
1.信息准备:用户打开APP,编辑消息,点击发送
2.应用缓存:APP将信息转化为数据,放入应用缓存空间(内存 Buffer)
3.内核拷贝:操作系统将数据复制到内核缓存空间
4.内核处理:内核完成多层网络协议的包处理操作(包括TCP、UDP、IP、ICMP等各类协议的封装)
5.网卡拷贝:将数据复制到网卡(简称:NIC)缓存空间
6.数据传输:网卡将数据发送至互联网
信息接收阶段——
7.数据接收:接收端网卡收到互联网数据
8.内核拷贝:将数据从NIC缓存空间拷贝至内核缓存空间
9.内核处理:内核通过多层网络协议对数据包进行解析处理操作
10.应用拷贝:将数据复制到应用侧缓存空间
11.信息转化:APP将数据转化为具体的文字并显示,接收端用户读取消息
以上,就完成了一条TCP/IP数据包的传递,主要涉及到“用户侧、内核侧、网卡侧”三端。
(二)TCP/IP协议特点(缺点)
针对智算网络需求,TCP/IP协议有几个明显的特点(缺点):
1.多层拷贝速度慢:每个数据包都要完成从用户侧到内核侧、网卡侧的数据拷贝,占用内部传输通道,延迟高、带宽受限。
2.传输处理效率低:每个数据包都要进行一系列内核处理操作(封装、解封装等),信息传输效率受内核处理效率的限制。
3.CPU性能降低:每个数据包都要频繁上下文切换、内核处理,占用了大量CPU资源,可能导致CPU性能不足。
进一步,我们得出一个结论——TCP/IP协议的转发逻辑,注定了它难以实现智算对网络的需求。于是,TCP/IP协议被淘汰,RDMA协议被应用。那RDMA协议为什么能满足这个要求呢?
四、RDMA协议特点
对比上面的TCP/IP协议,我们看一下RDMA协议的信息传输逻辑及特点。
(一)RDMA协议传输逻辑
在RDMA协议中,传递一条消息,需要经过哪些步骤,还是以微信消息举例:
(注意:为方便理解,这里以说明逻辑为主,实际处理过程还要更加复杂)
信息发送阶段——
1.信息准备:用户打开微信APP,编辑消息,点击发送
2.应用缓存:APP将信息转化为数据,并放入应用缓存空间(内存 Buffer)
3.网卡拷贝:将数据复制到网卡(英文简称:NIC)缓存空间
4.数据传输:网卡将数据发送至互联网
信息接收阶段——
5.数据接收:接收端网卡收到互联网数据
6.应用拷贝:将数据复制到应用缓存空间
7.信息转化:APP将数据转化为具体的文字并显示,接收端用户读取消息
可以看到,相比于TCP/IP协议,RDAM协议主要省去了内核的拷贝和处理环节。
从而,本端数据通过智能网卡可以直接访问对端应用缓存空间(内存Buffer),这就是“远程直接内存访问”,也就是RDMA这个名字的由来。
(二)RDMA协议特点
对比TCP/IP协议和RDMA协议,可以发现RDMA协议的几个主要特点:
1.释放CPU压力:用户侧内存和网卡直接数据传递,避免了CPU内核一系列封装、解封装工作,极大释放CPU计算资源。
2.避免上下文频繁切换:Bypass内核,避免数据包在用户侧-内核侧的频繁中断、切换处理过程(上下文切换),避免了对CPU时间的大幅占用。
3.避免数据频繁复制:相比TCP/IP,减少了数据拷贝,降低了数据处理延迟,提高了数据转发带宽。
总的来说,通过RDMA协议,可以很好地实现“保护CPU性能、降低传输时延、提高传输带宽”的目标,以满足当下智算的网络性能需求。
五、举个栗子
下面拿我们工作场景举个例子,进一步方便大家理解TCP/IP协议和RDMA的数据传输逻辑。
这个例子名叫“流程改革:直接获取一线数据”
小王在一家大型企业上班,负责市场部的数据统计工作,平时主要向业务部门要数据。
在流程改革实施之前,小王的工作逻辑是这样的。
(一)流程改革前:数据采集过程
1.准备清单:小王列出数据统计清单,发给组长审核
2.组长优化:组长优化清单内容(其实也没调整),发给部门经理审核
3.经理完善:部门经理完善措辞(实际也没细看),发给部门文员转发
4.文员转发:部门文员将文件转发至公司领导审批
(注:上述部门指的都是市场部门)
5.公司领导审核:公司领导对数据采集清单进行审核(例行公事,公司领导也不知道为什么需要他来审批这个),并交系统流转
6.系统流转:由市场部办公系统流转至业务部办公系统
(注:下面部门指的都是业务部门)
7.文员转发:部门文员转发给部门经理审阅
8.经理批示:部门经理批示后(就是写个同意),转发给各组长落实
9.组长安排:各组长细分工作(就是分配个人),转交一线业务员填写
10.一线执行:业务员根据细化要求完成数据填报
以上,只是列举了数据采集通知下发的全过程,在完成数据填报后,还涉及到数据反馈的全过程,同上述流程相同,只不过是由业务部到市场部,这里不再赘述。
在上述过程中,各级领导往往都是每天下班前后点一次审批,这就导致通知过程需要5-7天才能传到到对方,数据填报需要2-3天,数据反馈仍需要5-7天,整个过程大概需要12-17个工作日,所收集的数据要滞后半个月-一个月时间。
这个时期,就可以理解为TCP/IP网络时期。
后来,流程改革,发现这个审批环节存在较多冗余,包括各级领导审批似乎都是例行公事,不但耽搁时间,而且没起到什么作用。于是统一取消了这三个审批环节。
(二)流程改革后:数据采集过程
在流程改革实施之后,小王的工作逻辑是这样的。
1.准备清单:小王列出数据统计清单,发给部门文员
2.文员转发:文员将文档完善,并转发至办公系统
(注:上述部门指的都是市场部门)
3.系统流转:由市场部办公系统流转至业务部办公系统
(注:下面部门指的都是业务部门)
4.文员转发:部门文员接收到统计需求,转发给业务人员
5.一线执行:业务人员根据细化要求完成数据填报
取消了中间审批环节后,现在上午发的统计需求,下午就能到对方手里,整个过程满打满算也就2-3个工作日即可完成。
同时,各级领导也不用天天想着点审批,可以腾出来时间思考更多有价值的事情了。
这个时期,就是RDMA网络时期。
以上,通过介绍智算时代对网络的需求、TCP/IP协议传输逻辑和特点、RDMA协议传输逻辑和特点,主要讲清楚了三个问题
- 问题是什么:智算时代对网络的需求变化
- 为什么有问题:TCP/IP协议为何无法满足需求
- 怎么解决问题:RDMA为什么能解决这个问题
希望能通过本篇文章给大家介绍清楚RDMA,谢谢!
如有不足,还希望批评指正!
2025年5月7日 北京