搭建模型训练RDMA网络(上)

📅 2026/8/20 14:55:03
搭建模型训练RDMA网络(上)
26.8.19更新RDMA网卡工作时会产生很高热量如果像文中一样装在普通台式机上一定要加装风散散热RDMA网络介绍RDMA网络是在大模型分布式训练中最常使用的一种网络。RDMA全称是Remote Direct Memroy Access即远程内存直接访问。RDMA网络技术详细介绍见这里。RDMA网络常用协议是InfiniBand简称IB下同协议和RoCE协议这两种协议的详细介绍见这里。RDMA网络搭建相关组件RDMA网络物理上是基于QSFP口的高速网络设备实现的很多商家会把这类设备叫作“光口”、“光交换机”、“光网络”这其实只对了一半。因为QSFP口也可以基于铜缆实现高速传输后面讲到DAC跳线的时候会详细讲到。网卡刚刚说了RDMA网络需要使用QSFP接口的网卡下面是它的照片我使用的是二手Mellanox迈络思CX555A-ECAT单口100G网卡某宝上不到900元就可以买到。选择它是因为带宽高、价格便宜、既支持RoCE也支持IB且操作简便。需要注意的是在电商平台上有些商家会用基于Mellanox芯片的卡当作迈络思网卡来卖但Mellanox芯片例如ConnnectX-3或5卡和Mellanox官方制造的卡是有区别的一是外观上Mellanox官方制造的卡在模块上有“Mellanox”的logo二是Mellanox官方卡设置方便使用mstflint这个工具就可以直接切换IB/以太网模式但非官方卡很可能不支持这在验证网卡好坏的时候非常重要交换机交换机我选择的是Mellanox SX6012。下面是它的照片选择这个交换机是因为它能支持RoCE和IB两种协议并且价钱便宜某宝上不到1900元就可以买到。虽然速度只有40G但对于像我这样预算有限又想学习RDMA技术的人来说是入门的首选。跳线跳线即以太网中的网线在高速网络中使用的跳线一般有两种直连铜缆 (DAC)特点适用短距离通常1-3米成本最低。内部是铜芯两端接头固定不可更换模块有源光缆 (AOC)特点适用中等距离通常5-100米两端光模块和跳线可以分开。使用多模光纤和850nm激光器比DAC传输更远、更柔软价格也相应更贵。跳线模块完整结构图初学者上手建议购买DAC跳线某宝上二手价格很便宜40G 100元左右100G 200元左右3米线的长度足够你组建一个最简单的局域网。AOC跳线可传播距离更远但价格更贵我购买了2个40G模块一根跳线加起来要425左右是DAC的4倍初学者没必要使用。RDMA网络搭建方法网络组装方法首先是将网线接入网卡如果你用的是AOC跳线按下图所示将跳线和模块连接再将模块插入网卡口中如果你用的是DAC线直接把模块插入网口中即可。注意模块是有方向的需要将模块上的芯片和网口底部的芯片连接上才可以。这个做起来其实很简单看一下网口底部就知道了因为插反了插不到底只有插对方向才能完全把模块插入网口此时一般会听到一声轻微的“咔嗒”声说明你的模块插好了。交换机端的网口插法相同。高速网络的向下兼容性高速网络的向下兼容性和普通以太网有点不一样根据我查到的资料高级别的网口可以兼容低级别的模块但反之不行。举个例子如果你把40G的模块接入到100G的网口里网络可以以40G的速度连通但如果你把100G的模块接入到40G的网口里网络不通。。因为100G的模块用的QSFP28协议和40G的QSFP不同。这点请大家务必不要搞错。跳线和交换机好坏的验证方法跳线插上网卡和交换机后最理想的情况是网卡和交换机端口都亮灯说明三者都工作正常。如图但实际情况譬如我遇到的中由于网卡、跳线和交换机是从不同的卖家处采购组装起来网卡和交换机端口灯都不亮。。。此时就需要验证。首先应当参考上节确认网络兼容性有没有问题如果没有问题那就要验证网卡、跳线和交换机好坏我在和卖家的沟通中学会了几招验证网卡、跳线和交换机好坏的方法在此分享给大家验证网卡如果网卡不亮灯、系统里看不到网络除了网卡损坏以外还有可能是网卡工作在IB模式因为二手卡大多是从服务器上拆下来的如果这个服务器之前参与过IB组网那就会被设置在IB模式我买的两块卡都是这种情况。验证迈络思网卡工作模式的方法如下:Ubuntu下执行sudolspci-tv我的主板是华南H12D-8D输出如下不同主板输出差异可能会比较大需要你耐心查找看到上面的输出说明系统识别到了这张迈络思网卡。插曲开始我认为迈络思网卡要安装驱动才能使用去网上搜驱动才发现迈络思已被英伟达收购官网直接跳转到了英伟达页面上。。费了半天劲下载的驱动安装时候报错后来发现Ubuntu20和25都可以直接使用迈络思网卡不需要安装驱动避免了好多坑啊。。接下来安装mstflint一个可以操作迈络思网卡的工具:sudoaptupdatesudoaptinstallmstflintsudomst start如果遇到问题请自行Deepseek。接下来用mstconfig命令来查看网卡端口的工作模式mstconfig-dXX:00.0 query这里的XX:00.0是你的网卡插的那根PCIE插槽的地址。这个地址的获取和上面那张图有关系但又不完全相同。。我获得这个地址是通过在那个槽位上插上显卡然后使用lspci-vv|grepVGA这个命令得到的地址。以上图为例地址为81:00.0即mstconfig-d81:00.0 query如果你的PCIE插槽地址配置正确你会看到类似下面的输出…… LINK_TYPE_P11 (IB) ……看到这条就说明你的网络不通是因为网卡工作在IB模式而不是网卡损坏。修改网卡端口的工作模式mstconfig-d81:00.0setLINK_TYPE_P12执行命令后系统会询问是否应用新配置输入y并回车。修改完成后需要重启服务器才能使配置生效。重启后在系统的网络设置里就能看到的网卡端口了验证跳线做完了上一步如果你的网卡口灯还不亮那就是跳线和交换机的问题。我们先从跳线的验证开始。验证跳线的方法是将两张网卡装在两台电脑上如果两台机器的系统里都能看到网卡端口用跳线连接两张网卡如果网卡灯亮就说明跳线是好的。我当时的验证方法和上面有一点区别我多买了一块双网口国产网卡就是网络组装图里的那款。将功能正常的跳线两端的模块插入这两个网口两个口都会亮灯。。虽然现在组网没有用到这块网卡但当时这块网卡在单机上帮我验证了跳线和它自己这么看这钱也没白花。。如果你的跳线是跳线模块分离的AOC跳线还有一个方法能协助你判断网卡和模块的好坏把光模块不带跳线插入到工作中的网口里然后看模块接口里有没有红光如果模块接口里能看到红光就说明网口和模块在物理上可以工作。根据我的总结只要你的跳线模块是从靠谱的卖家那里买的一般不太容易坏就像因网线坏导致网络不通的概率并不高嘛。。如果跳线ok那网络再不通就是交换机的问题了。验证交换机验证交换机首先要确认交换机工作在以太网模式这个在购买时专业的卖家会让你选是以太网还是IB靠谱的卖家一般不会搞错的。然后准备一根好跳线将交换机通电再将模块跳线接入交换机任意两个端口如果端口灯注意不是电源灯亮说明端口物理连通性正常。如下图此时可以尝试用跳线连接网卡交换机如果前面的设置都正确网络信号应该就通了。如果端口灯不亮说明交换机有问题联系卖家更换我刚开始就是这个情况而且机器两个电源还有一个有故障最后找卖家更换了一台好的才弄好。系统设置此时进入Ubuntu系统的网络设置如果系统显示40G或100G取决于你的模块和网卡规格说明系统里已经侦测到了这个网络如果系统提示“网络激活失败”那就给这个网口配上IP地址我配上192.168.0.1之后就好了。完整组网如图写在最后此时网络的搭建初步完成但连通了一个高速网络并不代表RDMA网络真正在40G或100G跑通如何测试这个网络在RDMA模式下尽可能跑满40GE或100GE的带宽我会在下期文章中详细介绍。最后为了感谢看到这里的你再给你分享一个心得如果只是2台机器互联可以不用交换机跳线连通后给两张两张网卡设好IP地址就可以。都怪我自己的网络技术不精这项网络技术是我在交换机买回来以后才想起来的搞清楚这个可以少花小两千块先把网络搭起来很值吧 *本文部分图片来源于网络仅仅为解释技术原理用如您认为侵权请联系我删除。