cpu和cpu,是如何通信的?-电玩城游戏大厅
44
当前位置:电玩城游戏大厅首页 > 快讯 >

cpu和cpu,是如何通信的?-电玩城游戏大厅

来源:证券之星 阅读量:16137 发表时间:2025-09-29 11:16:24   

公众号记得加星标,第一时间看推送不会错过。

由于人工智能的火热,在一个系统中集成cpu和gpu已经成为了常态。那么cpu和gpu之间是如何通信的?我们来看一下以下科普。

  1. 存储系统到gpu显存的数据流动

名词解释:

  • nvme ssd: non-volatile memory express,即非易失性内存主机控制器接口规范 nvme 是一种存储协议,基于该协议的ssd固态硬盘 ,能大幅提升读写性能。

  • host memory:指主机内存,是计算机中用于存储数据和程序,供 cpu 直接访问和处理的硬件组件。

  • system memory:即系统内存,是计算机系统运行时用于临时存储数据和程序指令的硬件。

  • dma:direct memory access 即直接内存访问,是一种让外设直接与内存进行数据传输,而无需 cpu 干预的技术。

  • pcie:peripheral component interconnect express,是一种高速串行计算机扩展总线标准,采用点对点串行连接,数据传输速率高、带宽大且可扩展性强。

  • pcie switch:即 pcie 交换机,用于扩展接口数量,可让多个设备共享 pcie 总线带宽,实现数据传输。

  • bounce buffer:是一种数据缓冲区,用于在不同地址空间或不同设备之间临时存储和传输数据,以解决数据传输不匹配问题。

  • nic:network interface card 是计算机与网络连接的硬件设备,用于实现数据的发送与接收、网络信号的调制解调等。

  • shared pinned memory :共享固定内存,能在不同应用或进程间共享数据,且固定内存地址减少数据拷贝,提高数据访问效率和系统性能。

  • ib:infiniband 是一种高速网络互联技术,用于高性能计算等领域,能提供低延迟、高带宽的数据传输,实现节点间快速通信。

  • hpc:high performance computing 高性能计算,通过集群等技术整合计算资源,快速处理大规模复杂计算任务,特点是计算能力强、并行处理能力高、数据传输速度快。

1.1 gpu与存储系统的通信

经过系统内存中转的gpu数据加载流程,涉及两次数据拷贝。

第一次拷贝:存储系统 系统内存(host memory)

原因:gpu无法直接访问存储设备,必须通过cpu和系统内存中转。

技术实现:使用 dma 技术,通过pcl-e总线,由存储控制器直接将数据从nvme 拷贝到系统内存,无需cpu干预。

第二次拷贝:系统内存 gpu显存

原因:gpu只能访问自己的显存,需通过pcl-e总线从系统内存加载数据。

技术实现:使用 cuda的cudamemcpy拷贝函数,通过pcie总线将系统内存中的数据,拷贝到gpu显存中。

问题:数据经过系统内存中转,明显存在冗余的数据拷贝过程。

1.2 优化版,gpudirect storage

gpudirect storage 是什么?

storage 是gpudirect 系列技术之一,gpudirect 经过多年的发展,如今已经包含四种技术,分别是: 1)gpudirect storage 2)gpudirect rdma 3)gpudirect p2p (peer to peer) 4)gpudirect for video

gpudirect storage 功能和优势?

gpudirect storage 提供本地存储 或者远程存储 (nvme over fabric) 与gpu显存的直接通路,减少不必要的系统拷贝。它可应用网卡nic和存储系统附近的dma引擎,直接向gpu显存写入/读取数据。这种技术减少了cpu和系统内存的瓶颈,显著提升了数据密集型应用的性能。

2. gpu和gpu之间的数据流动

2.1. 有共享内存参与的gpu-gpu间数据流动:

1)gpu0 通过pcle将显存中的数据,拷贝到系统内存中的固定共享内存。

2)从共享内存通过pcie总线,将数据拷贝到gpu1显存中。

利用此方案将数据从gpu0传送到gpu1,整个过程发生多次数据拷贝,直观上有些是冗余拷贝。

2.2. 优化版gpudirect p2p

gpudirect p2p 是什么?

p2p是一种允许gpu 之间直接进行数据传输,绕过 cpu提高数据传输效率,加速大规模数据处理和并行计算的一种技术。使用cuda toolkit 和driver 就可以支持原生支持p2p技术,进而实现gpu之间直接通信。

gpudirect p2p 功能和优势?

p2p支持gpu之间通过memory fabric 直接进行数据拷贝。如果两个gpu连接到同一pcie总线,p2p允许每个gpu直接访问自己与对方的gpu显存,而不用通过cpu辅助。即将数据从源gpu拷贝到目标gpu不需要系统内存缓存中间数据。此方法相比与之前方案,在执行相同任务时数据拷贝动作减少一半。

可优化问题:

p2p技术虽然实现了gpu到gpu之间的直接数据拷贝,但是多个gpu通过pcie总线直接与cpu相连,随着ai对hpc要求越来越高,pcie的通信方式,逐渐成为数据流动的瓶颈。

pcl-e 通信带宽表格:全双工模式下,采用 128b/130b 编码。

pci - e 版本

传输速率

单通道带宽

双通道带宽

四通道带宽

八通道带宽

十六通道

带宽

3.0

8 gt/s

0.98 gb/s

1.97 gb/s

3.94 gb/s

7.88 gb/s

15.75 gb/s

4.0

16 gt/s

1.97 gb/s

3.94 gb/s

7.88 gb/s

15.75 gb/s

31.51 gb/s

5.0

32 gt/s

3.94 gb/s

7.88 gb/s

15.75 gb/s

31.51 gb/s

63.02 gb/s

6.0

64 gt/s

7.88 gb/s

15.75 gb/s

31.51 gb/s

63.02 gb/s

2.3. 高配版nvlink nvswitch

什么是nvlink:

nvlink是一种高速、高带宽的互连技术,用于连接多个gpu 之间或连接 gpu 与其他设备 之间的通信技术。

nvlink 功能和优势:

实现设备间的高速数据传输,支持 gpu 之间点对点直接通信和数据共享,可进行大规模并行计算。优势在于能提供极高的带宽,比如 nvidia a100 tensor core gpu 通过 nvlink 互联可达到 600gb/s 的双向带宽,远高于传统 pcie 总线。同时具有极低的延迟,能让多 gpu 协作更紧密,显著提升计算性能。

nvlink 解决了单节点小规模计算设备之间的高效通信,比如8个gpu之间通过混合立方网格拓扑结构相连,保证了每两两个gpu之间的传输效率是一致的。

nvlink版本和带宽:

问题:当gpu个数大于nvlink最大连接数量时,这种的拓扑结构就cover不住了。大规模多gpu或者多节点之间的互联通信,需要nvswitch上点硬科技。

nvswitch 是什么?

nvswitch 是nvidia 推出的一种高速互联芯片,专为多gpu系统设计,用以简化多gpu间实现全连接的拓扑设计,实现 gpu 之间的高效通信。它是 nvlink技术的扩展,旨在解决大规模多 gpu 系统中的通信瓶颈问题。

nvswitch 功能和优势?

类似于pcie使用pcie switch用于拓扑的扩展,nvidia使用nvswitch实现了nvlink的全连接。nvswitch作为节点交换架构,支持单节点中16个gpu全互联,并且支持8对gpu同时通信。

高带宽:每条 nvlink的带宽可达300 gb/s ,远高于pcie 的带宽(pcie 4. 0 ×16的带宽为32gb/s)。 全互联拓扑:nvswitch 支持全互联拓扑,每个 gpu 都可以直接与其他 gpu通信,避免了通信瓶颈。 可扩展性:nvswitch 可以支持大规模多 gpu系统,并且随着 gpu 数量的增加,通信性能不会显著下降。

nvswitch版本和带宽:

3.gpu之间的跨机通信

3.1 经典的跨机通信

如果涉及gpu的跨机通信,不支持rdma的方法需要借助系统内存,才能完成数据传输,具体有5个步骤:

  1. 在源节点中把数据从源gpu拷贝到host-pinned系统内存中。

  2. 在源节点中把数据从host-pinned系统内存拷贝到网卡驱动缓冲区

  3. 通过网络传输把数据从源节点传送到目标节点的网卡驱动缓冲区

  4. 在目标节点将数据从网卡驱动缓冲区传送到host-pinned系统内存

  5. 在目标节点通过pcie总线将数据从host-pinned系统内存拷贝到目标gpu显存

ps: 直接从主机内存中读取或写入数据,而不需要 cpu的干预。长被用于频繁的 cpu-gpu数据传输)

3.2 gpudirect rdma 优化

gpudirect rdma 是什么?

gpudirect 系列技术之一, 该技术可减少在host-pinned系统内存中的中间数据拷贝,可极大提升通信效率。如果有gpudirect rdma加持,上述5个步骤可简化至一步完成。

gpudirect rdma 功能和优势?

gpudirect rdma 支持gpu间快速跨机通信,可使外围pcie设备直接访问gpu显存。它能减轻cpu负载,同时也能减少不必要的通过系统内存进行的数据拷贝。

实现方式: 1)infiniband 是最早实现的rdma协议,广泛应用于高性能计算中。2)roce (rdma over converged ethernet) 是一种允许通过以太网进行 rdma的网络协议。3)iwarp允许在tcp上执行rdma的网络协议。

4. 总结

通过 gpudirect storage 技术实现了存储设备和gpu显存的直接访问,数据加载效率大大提升。通过gpudirect p2p技术实现了gpu之间互联互通,可以快速访问。nvlink 用于改善pcie带宽瓶颈问题,nvswitch 解决多个gpu设备拓扑扩展问题。gpudirect rdma 解决多节点gpu之间通信问题。

q/a:在gpudirect 技术中 p2p和 rdma都是实现gpu之间的高效通信,两者之间的区别和联系?

在实际系统中,两者可结合使用以最大化性能:

  1. 单节点内:通过 nvlink gpudirect p2p 实现 gpu 间高速通信。

  1. 跨节点间:通过 infiniband gpudirect rdma 实现低延迟数据传输。

例如,在训练千亿参数模型时,节点内8个gpu 使用 nvlink p2p同步梯度;节点间通过 rdma将聚合后的梯度广播到其他服务器。

所以:gpudirect p2p 是单节点多 gpu 通信的基石,依赖高速直连硬件优化本地协作。gpudirect rdma 是跨节点 gpu 通信的核心,依赖rdma网络实现超低延迟的远程数据直达。两者共同支撑了从单机到超大规模集群的gpu高效协同,是ai训练、hpc等领域的关键技术。

今天是《半导体行业观察》为您分享的第4179期内容,欢迎关注。

加星标第一时间看推送,小号防走丢

求推荐

声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多企业信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。投资有风险,需谨慎。

电玩城游戏大厅 copyright @2010- finance.cnszt.com. all rights reserved 商财社 电玩城游戏大厅的版权所有  

本站所有资源来源于互联网网友交流,只供网交流所用、所有权归原权利人,如有关侵犯了你的权益,请联系告之,我们将于第一时间删除!邮箱:bgm1231@sina.com

网站地图