Skip to main content
开放网络的先行者与推动者—星融元
加入我们技术支持(Support)  TEL:(+86)4000989811

标签: 技术实现

Mellanox网卡驱动安装

Mellanox网卡驱动安装

1 目标

本文档以CentOS7.6为例,详细介绍了Mellanox网卡MLNX_OFED的驱动安装和固件升级方法。

2 下载驱动

该方法适用于CentOS、RHEL、SLES、Ubuntu、EulerOS等操作系统,在安装不同操作系统的驱动时,请下载对应操作系统版本的驱动。

首先根据系统发行版本下载对应的驱动,下载地址如下:https://www.mellanox.com/page/products_dyn?product_family=26&mtag=linux_sw_drivers&ssn=q80crdrodvb8ce021n94ep58f1

注意选择download,根据相应的版本选择相应的驱动,点击后要同意协议再下载。

根据不同操作系统,选择相对应的安装驱动
图1
选好安装驱动后,同意协议
图2

本次下载的驱动版本为:MLNX_OFED_LINUX-4.7-3.2.9.0-rhel7.6-x86_64.tgz

3 安装步骤

3.1 把下载好的Mellanox驱动解压缩

[root@localhost ~]# tar –zxvf MLNX_OFED_LINUX-4.7-3.2.9.0-rhel7.6-x86_64.tgz
[root@localhost ~]# cd MLNX_OFED_LINUX-4.7-3.2.9.0-rhel7.6-x86_64

3.2 查看当前系统的内核版本

[root@localhost MLNX_OFED_LINUX-4.7-3.2.9.0-rhel7.6-x86_64]# uname -r
3.10.0-957.el7.x86_64

3.3 查看当前驱动所支持的内核版本

[root@localhost MLNX_OFED_LINUX-4.7-3.2.9.0-rhel7.6-x86_64]# cat .supported_kernels 
3.10.0-957.el7.x86_64 

注:由以上可知下载的默认驱动支持当前的内核版本

3.4 如果当前内核与支持内核不匹配

手动编译适合内核的驱动,在编译之前首先安装gcc编译环境和kernel开发包

[root@localhost MLNX_OFED_LINUX-4.7-3.2.9.0-rhel7.6-x86_64]#yum  install gcc gcc-c++
libstdc++-devel kernel-default-devel 

添加针对当前内核版本的驱动

[root@localhost MLNX_OFED_LINUX-4.7-3.2.9.0-rhel7.6-x86_64]#./mlnx_add_kernel_support.sh -m /root/MLNX_OFED_LINUX-4.7-3.2.9.0-rhel7.6-x86_64  -v

注:完成后生成的驱动文件在/tmp目录下

[root@localhost MLNX_OFED_LINUX-4.7-3.2.9.0-rhel7.6-x86_64]# ls -l /tmp/MLNX_OFED_LINUX-4.7-3.2.9.0-rhel7.6-x86_64-ext.tgz
-rw-r--r-- 1 root root 282193833 Dec 23 09:49 /tmp/MLNX_OFED_LINUX-4.7-3.2.9.0-rhel7.6-x86_64-ext.tgz

3.5 安装驱动

[root@localhost tmp]# tar xzvf MLNX_OFED_LINUX-4.7-3.2.9.0-rhel7.6-x86_64-ext.tgz
[root@localhost tmp]# cd MLNX_OFED_LINUX-4.7-3.2.9.0-rhel7.6-x86_64-ext
[root@localhost tmp]# ./mlnxofedinstall

3.6 最后启动openibd服务

[root@localhost ~]#/etc/init.d/openibd start
[root@localhost ~]#chkconfig openibd on

4 结论

Mellanox网卡驱动安装主要根据内核是否匹配分为下载后直接安装和编译安装两部分。

5 参考资料

  1. Mellanox官网:https://www.mellanox.com

点击了解Asterfusion CX-N数据中心交换机

如有其它问题,请填写右侧需求表单联系我们。

0成本5分钟!利用开源大模型搭建本地专属AI知识库


关注星融元


你一定经历过各种通用大模型一本正经胡说八道的时候吧,AI一通丝滑输出让人真假难辨,防不胜防。这种情况被称为AI幻觉。

大模型产生幻觉不幸“翻车”的原因很大程度上是“先天不足”,例如训练时来自特定领域的训练数据就比较缺失或存在偏差等。对于企业,AI的幻觉已经成为阻碍其落地应用的严重缺陷。

我们自然想让一些企业内部私有数据也进入到大模型推理分析的过程,让其更好服务于日常业务,但出于信息安全等考量,私有数据显然不可随意上传到第三方平台。针对这种情况,将企业内部知识库和大模型连接起来构建一个本地私有化的专属的AI知识库不失为一种简易的解决方案。

构建本地私有知识库的基本步骤

1. 整理出需要模型分析的私有数据,比如文本数据(doc、csv、ppt…),音视频数据,甚至一些网址链接。

2. 通过一个嵌入模型将这些信息转换成模型能够看得懂的向量信息,即信息的向量化。

3. 将向量化的信息存储到专属的向量数据库中,构建本地知识库。

这个时候当用户提问时,我们引入的通用大模型将会结合本地知识库中所存在的信息有针对性的回答,甚至也可以专门分析本地知识库中的信息来输出。

本地私有知识库构建

本地AI知识库的安装和配置

AnythingLLM 是一款构建本地知识库的工具,能够直接读取文档并处理大量信息资源,包括文档上传、自动抓取在线文档,然后进行文本的自动分割、向量化处理,以及实现本地检索增强生成(RAG)等功能。

AnythingLLM支持几乎所有的主流大模型和多种文档类型,可定制化程度高,安装设置简单,适用于MacOS、Linux和Windows平台,也可以使用Docker安装。AnythingLLM默认通过Ollama来使用LLama2 7B、Mistral 7B、Gemma 2B等模型,也可以调用OpenAI、Gemini、Mistral等大模型的API服务。除AnythingLLM以外,近期较为热门的知识库工具还有MaxKB、RAGFlow、FastGPT、Dify 、Open WebUI 等。

01、下载并安装Ollama(用于下载各类通用大模型)

访问 https://ollama.com/download 选择所需版本

下载安装Ollama

02、安装大模型和嵌入模型

我们示例中选择的是通义千问大模型和M3e嵌入模型,大家也可以根据自己的需要选择其他模型下载。Ollama支持的模型列表及资源占用情况可从官网查阅:https://ollama.com/library

安装大模型

嵌入大模型

03、下载并安装AnythingLLM

访问 https://anythingllm.com/download 选择对应版本

下载AnythingLLM

04、配置AnythingLLM

配置参数选择Ollama

配置Ollama

Embedder选择M3e

Embedder选择M3e

向量数据库选择LanceDB(默认)

向量数据库选择LanceDB(默认)

上传私有数据并验证AI问答效果

至此,一个AI驱动的本地私有知识库的基本架构已经搭建完成。接下来我们需要创建工作区,上传各种文档格式的企业私有数据,验证是否能正常工作。

上传

上传

上传

01、csv表格

随意生成一份原始数据如下:

对话结果(对数据进行排序和筛选):

02、docx文档

原始数据是星融元AsterNOS网络操作系统的文档,其中涉及到高可靠特性的部分如下。

文档

对话结果:

结果

03、网址

星融元CX-N超低时延交换机在官网的产品详情页,涉及到产品特性的片段如下。

特性

对话结果:

检验结果

可以看到,这个本地AI知识库已经在利用我们上传的私有文本数据回答问题了,下一步您需要持续不断地丰富私有内容,让其更加智能、可靠;大型企业则更需要对其“悉心调教”,例如充分考虑本地AI推理系统的并发接入性能,在网络基础设施上进行相应调整和升级,也要关注和其他内部工具的集成。

一文读懂:企业园区无线网技术及部署指南


关注星融元


前言:无线网络直接影响整体网络性能,在当今企业网环境中,已有超过一半的数据流量通过无线信道传输,随着物联网技术的普及,无线网将承载更多的关键业务流量。企业/园区场景的无线网络值得考虑的关键因素有很多,例如终端移动性,AP 漫游能力和覆盖范围、带宽和吞吐量、延迟、信道、射频干扰等。当然,还有网络安全配置和用户认证等等。


无论是新建还是升级无线网络,在采取行动之前回顾并更新有关无线网的关键知识是绝对必要的,我们将从以下几个方面入手,希望这篇文章帮助您做出更好的选择。

  • 无线网络基础概念和参数速查
  • 无线标准/协议的演进
  • 不同无线组网模式和适用场景
    ○ 常见的园区无线组网
    ○ 新一代云化网络
  • 无线AP部署要点

无线网基础概念和参数速查

在无线通信系统中,信息可以是图像、文字、声音等。信息需要先经过信源编码转换为便于电路计算和处理的数字信号,再经过信道编码和调制,转换为无线电波发射出去。其中,发送设备和接收设备使用接口和信道连接,对于有线通信很容易理解,设备上的接口是可见的,连接可见的线缆;而对于无线通信,接口是不可见的,连接着不可见的空间,称为空口(空间接口)

无线网络分类

无线网络根据应用范围可分为个人网络、局域网、城域网和广域网。

 个人网络 局域网 城域网 广域网
协议标准 BluetoothIEEE802.11b,IEEE802.11a,IEEE802.11g, IEEE802.11nIEEE 802.16,MMDS,LMDSGSM, GPRS, CDMA, 2.5-3G-4G
传输速度 小于1Mbps1Mbps~600Mbps22+ Mbps1-7Mbps-100Mbps
覆盖范围 10m100~300m十几公里几十到几百公里
应用场景 点对点、设备对设备企业、园区、学校、酒店等网络最后一公里接入移动电话

无线射频

无线电波是由振荡电路的交变电流产生的电磁波(日常使用中也被称为射频或无线电等),它能够通过天线发射和接收,无线电波的频率范围称为频段。所有的射频设备都有灵敏度等级,即无线终端在某个信号强度之上可以正确地解释和接收无线电信号。灵敏度单位是dBm。接收灵敏度值越小,说明接收性能越好。

常见无线频段
手机 GSM:900/1800MHz,CDMA:800MHz
5G方案 移动(2.6G 160MHz)/3.3G 100MHz室内共建,电信、联通3.5G 3400-3600MHz移动:4800-4900MHz,广电4900-5000MHz
调频87.5MHz-108.0MHz(民用广播)
70MHz-87.5MHz(校园广播)
108-160MHz(业余无线电通讯)
160MHz以上是对讲机和电视伴音通信频率,对讲机常集中在400~470MHz和136-174MHz
无绳电话 45~48MHz
无线网络 2.4GHz和5GHz( Wi-Fi 7还有6GHz )
蓝牙 2.4GHz

天线传播覆盖

天线是一种变换器,是在无线设备中用来发射或接受电磁波的部件,它可以将传输线上传播的导行波和在空间中传播的电磁波相互转换。天线一般有全向和定向两种信号覆盖模式(如下图所示)。

天线传播覆盖

空间流和MIMO

无线电在同一时间发送多个信号,每一份信号都是一个空间流。通常情况下一组收发天线间可以建立一个空间流。

MIMO指多输入多输出技术,也称多天线技术,分别使用多个发射天线和接收天线,实现多发多收,成倍地提高信道容量。空间流数是决定最高物理传输速率的参数。我们常用(AxB:C)数据格式表示多天线技术支持的最大发射天线数量(A)、最大接收天线数量(B)和最大空间数据流数量(C)。当前主流的802.11ac和802.11ax协议规定一个射频最大8个空间流;大多数智能终端使用 2×2:2 或 3×3:3 MIMO 无线电。

MIMO

MIMO系统中,发射端的多个天线可以各自独立发送信号(引入发射波束成形技术使多个天线的发射信号在接收机达到相同相位,从而增强信号强度),同时在接收端用多个天线接收信号并重组原始信息。

MIMO技术让1x1的客户端也能间接从中受益

MIMO技术让1×1的客户端也能间接从中受益

传播衰减

⑴ 自由空间路径损耗

自由空间路径损耗(FSPL)是指无线电波因自然扩展导致信号强度下降,这是波传播的自然属性。我们可以通过以下近似公式算出。

FSPL=32.44+(20log 10 (f))+(20log 10 (D))

FSDL=路径损耗(dB) ;f =频率(MHz);D=天线之间的距离(km)

实际部署时我们通常使用6dB法则进行估算,即:传输距离加倍将导致信号衰减6dB。

⑵ 穿透损耗(吸收)

电磁波穿过墙体、车体、树木等障碍物,被不同材质的吸收,导致信号衰减。下表总结了常见障碍物对无线信号的影响

典型障碍物厚度(毫米)2.4G信号衰减(dB) 5G信号衰减(dB)
普通砖墙 120 1020
加厚砖墙2401525
混凝土2402530
石棉834
泡沫板834
空心木2023
普通木门40 34
实木门40 1015
普通玻璃 847
加厚玻璃 12810
防弹玻璃302535
承重柱5002530
卷帘门101520
钢板803035
电梯803035

⑶ 反射损耗

当波撞击到一个比波自身更大的光滑物体时,波可能会往另一个方向传递。当无线发射信号与接收位置需要经过多次反射才可触达,我们可以通过尝试调整信号源位置并辅以定向天线来改善通信。

⑷ 衍射损耗

由于射频信号被局部阻碍,射频信号在物体周边发生的弯曲。位于障碍物正后方的区域称为射频阴影,它可能成为覆盖死角,一般是可以通过另一个AP的无线信号去消除。

无线标准/协议的演进

WiFi与 IEEE 802.11

WiFi 通常是指基于 IEEE 802.11 标准的无线网络。“Wi-Fi”一词由Wi-Fi 联盟(WFA)创造,该联盟是一个全球性联盟,致力于促进和认证无线设备的互操作性。简单来说,Wi-Fi 是描述无线网络技术的流行术语,而 IEEE 802.11 是定义无线通信底层协议和规范的技术标准。

技术标准

WiFi6 的核心技术

根据Wi-Fi联盟的报告,Wi-Fi 6 自2019年推出以来仅用3年就在全球市场份额超过了50%,而Wi-Fi 5用了4年时间。WiFi 6 为每个用户提供更大的总带宽,总频谱和信道,能够在高并发接入的环境下为每个用户较前代技术高 4 倍的吞吐量,其高带宽、高并发、低时延、低耗电的特点为未来的智能基础设施奠定基础。

⑴ 提升吞吐量:1024-QAM调制

802.11ax采用1024-QAM正交幅度调制,每个符号位传输10bit数据(2^(10)=1024);相对于802.11ac(采用256-QAM正交幅度调制,每个符号传输8bit数据)来说,802.11ax的单条空间流数据吞吐量提高了25%。使用1024-QAM调制对信道条件有较高要求。

⑵ 改善多用户并发接入:OFDMA 和上行+下行的MU-MIMO

MU-MIMO 代表多用户的多输入多输出,它允许单个 AP 设备同时通过多个通道与多个用户进行通信,802.11ax(WiFi 6)在原有基础上进行了增强,提高了并发上行用户数量,理论上能够在上行和下行链路上为最多 8 个用户提供服务,并向单个客户端同时提供 4 个流。MU-MIMO生效需要通信双方都支持MU-MIMO。

OFDMA(正交频分多址)将信道进一步细分为可单独分配的“资源单元”,这是实现性能优势的关键。它允许多达 30 个用户同时共享一个信道,从而减少延迟、提高容量并提高效率。

OFDMA

OFDMA 和 MU-MIMO 的技术作为先进无线网络中的互补技术,可以基于所服务的应用类型来改善用户体验。

对于流媒体电影或游戏等高带宽应用,MU-MIMO 允许多个终端并发传输数据,建立高带宽网络以达到每个客户端的的最大速率。此外,MU-MIMO 使访问无线网络的队列从一个变为多个,多个设备可同时访问而无需等待。

对于即时消息、电子邮件或网页浏览等低带宽应用,分配给每个客户端的资源单元数量取决于数据包大小、终端设备限制以及流量服务质量(QoS)配置等因素,而OFDMA使用单个频段可以为多个用户提供这类低流量传输服务,起到类似“拼车”的效果,大大提高了网络资源利用率。

⑶ 降低信道间干扰:空分复用技术(SR) & BSS Coloring

当相同或相邻信道上的AP和终端检测到单个信道资源利用率偏高,噪声强度超过阈值时,则会需要排队等待(CCA功率调节机制)。

WiFi6协议里采用了空间复用和着色机制以提升信道利用率,减少排队。它可以类比为在客户端和AP之间建立起了虚拟的“高架桥”,根据不同目的地在空间上划分为互相独立不干扰的通路。不同的AP会各自给下连的终端着色(例如下图左,同为信道6的3个AP分别着色),只要信道资源没有完全占满,就依然会传输数据。

⑷ 降低能耗调度:目标唤醒时间 TWT

TWT(目标唤醒时间)最早出现在 802.11ah “Wi-Fi HaLow” 标准中,用于支持大规模物联网环境中的能效,并随着 IEEE 802.11ax 的发展而得到扩展。它使用计划机制来告诉客户端何时唤醒和睡眠,而不是让它们一直在某个频道上监听。

在 TWT 中,客户端和 AP 之间会商定一个时间表,该时间表由时间段组成。它通常包含一个或多个信标(例如几分钟、几小时,甚至长达几天)。当时间到了,客户端被唤醒,等待 AP 发送的触发帧并交换数据,然后重新进入休眠状态。AP 和终端设备会独立协商特定时间,或者 AP 可以将终端进行分组,一次连接到多个设备。

Wi-Fi 6E 及其他

在 Wi-Fi 6 标准发布一年后,由于频谱短缺,Wi-Fi 6e 应运而生,将现有技术扩展到 6GHz 频段。Wi-Fi 6E 使用 WPA3 代替传统的 WPA2 来增强安全性,但它仍然使用 802.11ax,因此它算作 WiFi 6 的附加增强功能,而不是下一代标准。

此外,Wi-Fi 的演进还包括几个小众项目。例如,毫米波 Wi-Fi (802.11ad/ay) 以极低的覆盖范围为代价,支持高达 275 Gbps 的标称数据速率。大量用户无线访问的新兴交互式应用和新服务,例如8K 流媒体、AR/VR、游戏、远程办公、工业物联网、云计算等等,正在推动行业支持更高吞吐量的无线网络。

WiFi 7 还有多远?

Wi-Fi 7在Wi-Fi 6的基础上引入了320MHz带宽、4096-QAM、Multi-RU、多链路操作、增强MU-MIMO、多AP协作等技术,使得Wi-Fi 7相较于Wi-Fi 6将提供更高的数据传输速率和更低的时延。

由于国内暂未开放6G频段给Wi-Fi使用,Wi-Fi 7特性未能完整发挥。目前Wi-Fi7实际生效的有以下几项:

  • 4096QAM:每个符号位传输 12bit 数据,相比Wi-Fi 6 提升20%
  • 16x16MIMO:由8×8提升到16×16空间流,增强高并发能力
  • 多链路传输:AP 和 客户端之间同时建立多个链路进行数据通信,可以利用多条链路进行负载分担,提升单用户峰值吞吐量;利用多条链路进行多发选收,提高链路可靠性。
  • Multi-RU:Wi-Fi 6 标准下同一周期单用户只能分配到 1 个 RU ,必然有部分 RU 资源被闲置。Wi-Fi 7 突破了限制,允许单用户同时占用多 RU,且不同大小的 RU 之间可以进行组合,使得业务延时降低25%。

  • 前导码打孔:支持把受干扰的20M信道打孔、屏蔽,然后剩余的140MHz信道继续捆绑在一起传输信息,极大提高了信道利用率;Wi-Fi 6中的做法一般是将工作信道限制在20M内传输,剩余信道受阻。

前导码打孔

常见的无线组网模式

自治AP(胖AP)

此类AP设备是最早进入无线网络市场的类型,因其可以近乎“即插即用”的方式工作且无需额外的控制器,建网成本极低,非常适合例如家庭、小型商户和办公室等小型无线网场景,正如其名,每个自治AP都可独立工作并且内置了基础的网络配置、流量控制、认证等功能的完整逻辑,所以每个 AP 都需要单独手动配置。

自治AP

瘦AP+ AC(无线AP控制器)

这种集中式方法涉及 2 个无线产品,包括 AP 和无线 AP 控制器 (AC)。AC在该解决方案中扮演着最重要的角色,AP 仅提供基本的无线电频率,在物理层传输 802.11 数据包,并通过无线接入点控制和配置协议(CAPWAP)与控制器建立通信。

AC 可处理多种功能,例如访问控制、AP 配置和监控、数据包转发、漫游、安全控制。它的工作原理就像无线网络的大脑一样,允许在一个地方配置和管理整个无线网络。这些使其适用于具有许多接入点的大型企业网络。

⑴ AC部署模式

  • 串联模式:AC 串接进网络,现在比较少见。
  • 旁路模式:AC只管理AP,旁路连接到汇聚交换机,让据包经由AC集中转发再传输到上层网络,适合在不改变现有网络的情况下对无线网络进行改造。

⑵ 数据转发模式:直接转发和隧道转发

并不是所有的数据包都需要经过集中式AC的封装和处理。某些情况下,数据包可以直接转发到网络的上层,但这仅适用于二层网络。隧道转发模式下,数据包被封装在CAPWAP隧道中,然后由AC转发到上层网络。如下图所示,CAPWAP隧道可能是控制数据隧道,也可能是业务数据隧道。

AP+AC

⑶ VLAN 规划和 AC 备份

VLAN规划主要包括两个方面,一是划分管理VLAN和业务VLAN,二是根据需要映射业务VLAN和SSID。由于是集中式部署,需要考虑冗余的设备、链路、交换策略,确保单点故障不影响整个系统功能,所以AP+AC架构中往往还需要多个AC互为备份。如果要为大量无线接入用户实现AP漫游,这对网络工程师来说可能是一个巨大的挑战。

  • 方案一:尽量在二层网络中规划漫游区域,但二层网络越大,安全性越差。
  • 方案二:建立连接两个WAC的隧道,将漫游流量传回原AC,但这会导致网络配置复杂,流量绕行,影响漫游性能。

除了配置相对复杂之外,多家供应商都有自己的专有协议,并在自己的产品中不断更改这些协议以改善通信。一般来说不同供应商的产品无法实现通信和交互。

属性胖AP瘦AP
技术模式 传统 新型,管理加强
安全性 单点安全,无整网统一安全能力统一的安全防护体系,无线入侵检测
网络管理能力 单台管理统一管理
配置管理 每个AP需要单独配置,管理复杂配置统一下发,AP零配置
自动RF调节 没有射频自动调节能力自动优化无线网络配置
漫游能力 支持2层漫游功能,适合小规模组网 支持2层、3层快速安全漫游
可扩展性 无扩展能力方便扩展,对于新增AP无需任何配置管理
高级功能 对于基于WiFi的高级功能,如安全、语音等支持能力很差可针对用户提供安全、语音、位置业务、个性化页面推送、基于用户的业务/完全/服务质量控制等等

无线Mesh网络(WMN)

无线mesh网络最初是为军事应用而开发的,它是一种由无需连接到有线端口的无线电设备组成的架构。无线Mesh网络中的每个设备都像路由器一样工作,其中各个节点不仅可以增强信号,还可以计算网络拓扑并进行路由,将长距离数据传输划分为多个短跳。当配置好主节点信息后,配置将⾃动同步给整个网络中其他的节点。

Mesh组网在难以或无法布线的情况下特别有用,例如临时的室内或室外区域、老旧历史建筑内等。目前已有不少厂商提供了面向企业和家庭的Mesh网络解决方案,不过一般来说无线 Mesh AP 不兼容多供应商。

无线Mech网络

在为较小的区域设计无线Mesh网络时,我们可能只需要将一两个Mesh AP连接到有线网络,如果范围扩大,我们仍然需要将多个Mesh AP 插入有线网络以确保网络可用性。部署Mesh AP 时,应综合考虑数量、传输距离和电源位置,并且应将它们放置得更近以获得更好的信号,因此往往需要更多的 AP 来覆盖给定的区域,成本随之上升(甚至会抵消其他方面节省的费用)。

值得注意的是该种组网方式最大的问题:带宽损耗。因为无线mesh组网会占用一半的带宽(还有无线传输本身的损耗),经过中继后的AP的吞吐量一般会下降约50%。

新一代云化园区无线组网模式

分布式网关转发

云网络很早就开始采用分布式的网关架构,将网关部署到更靠近终端的接入/边缘层。这种架构在转发路径、网络运维、表项空间、安全性等方面都有着显著的优势,也为企业网络的创新提供了一种很好的思路。

在这样的 IP Fabric 中,分布式网关意味着所有子网都存在于每个接入交换机上,它们会自动同步整个网络的端点 IP/MAC 和安全策略。这样,每个接入交换机都得到充分利用,所有跨子网流量的转发/漫游都由最近的交换机处理,而无需经过很长的路径到达集中式 AC。

更多信息请参阅:下一代园区网络,“分布式网关”实现更高效的无线漫游!

 集中式网关(隧道转发)分布式网关
转发路径业务报文经过隧道封装,经由集中式网关统一转发业务报文在本地接入交换机上转发
运维部署部署时需要大量手动配置(例如AP分组规划,单独的SSID/VLAN等)较为复杂,日后维护起来难度大开局一次性配置分布式网关信息即可,无需其他额外操作
可靠性过于集中的网关功能有压垮设备的风险,一旦出现故障,影响面大网关功能分散到所有接入交换机上;但设备发生故障对业务影响小
扩展性承载着关键性的网关业务,需要高性能大容量的设备,也容易成为限制网络规模迅速扩展的瓶颈接入层交换机仅需存储本地表项,对设备容量要求不高,更容易扩展接入规模

去CAPWAP的集中式转发

这种新型WLAN的设计同样基于云网络技术,相比上文的“分布式网关”其最大的优势在于无需改变现有的有线网络架构,只需部署一台可编程交换机接入核心交换机作为集中式网关,然后将旧AP替换为新AP即可完成无线网络的升级。

VXLAN

每台网关交换机拥有 3.2Tbps 吞吐量,轻松支持 10K+ 接入点 100K+ 无线终端。接入点通过 VXLAN 隧道与网关通信,接入点上运行多个 VTEP 以实现网络隔离。此外,接入点可以是完全基于开源技术的白盒硬件,而且相对于CAPWAP,VXLAN 技术也更加开放和标准化。

至于惯常思路里的无线AC,在新一代云化园区的无线网络中已经不存在了,取而代之的是使用云原生控制器(Cloud SDK)来统一管理园区内的有线和无线网络设备并下发配置——它既可以融合部署在网关交换机或其他本地设备上,也可以灵活部署在云端,从手机、电脑随时随地通过加密域名访问。

更多信息请参阅:园区无线网新架构:无CAPWAP的集中式转发

无线接入点(AP)部署要点

影响AP覆盖范围的因素

  • 无线电发射功率:室内AP不超过100mW/20dBm,室外AP不超过500mW/27dBm
  • 天线增益:室内天线增益一般在3-5dBi,室外天线增益一般大于10dBi
  • 部署环境:周围环境是否有强电磁场、障碍物遮挡、同类型Wi-Fi干扰、相似类型无线干扰,金属或者电子设备等干扰,相同信道频谱干扰
  • 天线和终端接收灵敏度:与终端设备有关

影响AP接入量的因素

芯片性能:同等无线速率下,如果是不同的芯片等级,能同时并发的用户数也不一样

射频:

  • 单射频AP最大接入128/512
  • 双射频AP最大接入256/1024
  • 三射频AP最大接入384/1536

用户流量模型:不同的用户流量也直接影响了能同时并发多少用户。

比如办公场景每人4M,推荐人数在30人;公共上网场景每人1M,推荐人数在60-100人

所需无线带宽估算

估算带宽时可以根据人数模糊概论(尤其适用高密场景),假如要求有1000人同时接入,实际使用时同时接入的人数在600人;接入的600人并非所有终端同时并发,算下来约会在200左右。

并发用户数=估算接入人数 * 并发比率

根据用户数与单用户速率需求分析可以得到总带宽需求:

总带宽=并发用户数 * 单用户速率

下表仅供参考(单用户速率参考)

场景 终端类型 并发比率(按100人算) 最低标准 推荐标准 良好体验标准
办公室 笔记本 20%—50% 100KB/S下行
20KB/S上行
200KB/S下行
40KB/S 上行
300KB/S下行
100KB/S 上行
酒店
会议室
商超 手机 5%—30% 20KB/S下行
20KB/S 上行
50KB/S 下行
20KB/S 上行
80KB/S 下行
40KB/S 上行
室外

应用速率要求时延要求
网页浏览 160-512Kbps 200KB 的页面需要3~10s
P2P 流媒体1Mbps 实时
IM(如微信等)32-64Kbps 2KB/Session,0.5s
Email400Kbps 100KB/Session,2s
SNS(如微博等)200Kbps 50KB/Session,2s
VoIP512Kbps 实时
游戏 1Mbps 125KB,100ms
视频服务(标清) 2Mbps实时
视频服务(高清) 4Mbps 实时

AP通用部署原则

  • 尽量保证 AP 与终端之间可视无障碍物;
  • 优先考虑 AP 面积覆盖与间距合理,后考虑接入人数要求。
  • AP 以正六边形方式呈蜂窝状部署(同楼层平面,上下楼层同样)

AP通用部署原则

AP的覆盖部署

  1. 尽量减少信号穿过障碍物数量,一般建议最多穿透单层墙体(典型120mm砖墙)设计,部分特殊场景(如石膏墙、玻璃墙体等) 可考虑穿过2层墙体
  2. 240mm厚砖墙、混凝土墙体和金属材质墙体不建议穿透覆盖,如在不满足约束条件时仍采用AP穿透覆盖方案,则会导致穿墙后 弱信号和漫游不连续问题,针对此种情况,如需保障良好覆盖和漫游,网络规划时需要基于客户墙体结构新增部署AP点位
  3. 重点区域、VIP区域尽量保证单独部署AP以保障用户体验。
  4. 路口或拐角单独部署AP,保证信号覆盖连续性(大于-65dBm ),相邻AP可建立邻居关系表,保障良好漫游体验。
  5. AP安装位置远离承重柱3米以上

几条重要规则

  1. 不要采取在走廊部署吸顶AP去覆盖房间,除非拿设备验证过。像学校宿舍这种场景,如果有运营收费更不能放走廊。
  2. 任何场景 AP 间距不少于 8 米。同信道 AP 间距不少于 15 米。
  3. AP 吸顶安装时,需考虑吊顶材质,若为无机复合板、石膏板,衰减较小,可安装于吊顶内,若为铝制板,衰减较大,建议安装在吸顶安装于天花上,或用美化天线。
  4. 空旷的空间工勘时,一定要考虑后期放什么东西。比如宿舍,前期是空的,但之后可能放了金属桌子;空旷的仓库,之后可能放了很多金属货架。这些都会导致信号覆盖风险。
  5. 部署前务必先去现场工勘测试。不要“看图说话”。
  6. 室外项目中,为了保证使用效果,需使用定向天线,少用全向天线。不确定的情况找当地客服咨询。
  7. 室外项目务必要求施工方做好防水防雷,否则容易造成故障。

本文部分内容摘录整理自互联网公开知识,仅供各位读者参考,如有错漏和理解不当之处,敬请谅解、指正。

一文揭秘AI智算中心网络流量 – 数据存储篇


关注星融元


本篇为“揭秘AI智算中心网络流量“系列的第三篇,前篇请参阅:


01、生成式AI对数据存储有哪些需求?

对于较小规模的AI模型,本地连接的磁盘存储可能就足够;进入大模型时代,则通常需要基于对象存储或并行文件系统的共享存储。一个完整的生成式AI的工作流的各阶段对存储有不同需求,具体可拆解如下:

  • 数据挖掘:需要从多个来源收集非结构化的数据,一般与混合云集成,用数据湖作为存储平台;
  • 数据准备:进行数据汇总、标准化和版本控制,关注存储的效率和灵活的数据管理能力,多采用统一存储平台;
  • 模型训练和微调:在智算中心内部,结合GPU服务器本地内存和远端的并行/分布式存储系统。因为GPU的投入巨大,需要高性能存储来高效地提供数据,并在整个过程中保持高利用率;
  • 推理阶段:该阶段旨在利用已训练好的模型实时生成输出,需要将输入模型和推理生成的文字/图片/视频流存储下来作为备份。

02、智算中心的存储网络

我们大致可将AI智算中心内部的数据存储系统进行简单的层次分类,主要包括GPU内存、存储网和存储设备。

| 图片引自 NVIDIA技术博客

| 图片引自 NVIDIA技术博客

一般来说,在存储层次结构中位置越高,其存储性能(尤其是延迟)就越快。因为本文的定位在分析网络流量,我们将聚焦于存储网络(data fabric)层次,即智算中心内部GPU服务器内存与远端存储服务器之间传输的数据

在一个计算和存储分离的部署场景中,一般推荐部署2张Spine-Leaf架构的物理网:前端网和后端网。其中,存储前端网和业务网共用一张物理网。

存储后端网则单独使用一张物理网,以保证分布式存储集群能够快速无阻塞地完成多副本同步、故障后数据重建等任务。存储节点对网络接入侧的可靠性要求相对较高,因此推荐使用双归(MC-LAG)或者多归(EVPN-Multihoming)接入。

存储网络流量主要发生在模型训练的场景,它是一种单播流量,逻辑上仅需要以存储服务器为中心的星型连接。

  • 一是从存储服务器中分批加载训练数据集到GPU内存。
  • 二是训练的中间结果(定期保存的参数和优化器状态,即Check Point)要在存储服务器共享,并通过网络读写。

⑴ 数据集加载流量分析

在一个epoch中,整个训练集被遍历一次,如果进行评估,验证集也将被遍历一次。以下假设在每个epoch中进行评估,整个数据集的存储大小为D。

  • 数据并行时,整个数据集从网络存储读取,通过scatter操作分别加载到不同的GPU上,总网络流量为D。
  • 张量并行时,整个数据集从网络存储读取,通过broadcast操作发送给所有GPU,总的网络流量为 D x G。
  • 流水线并行时,整个数据集从网络存储读取,喂给流水线上第一个GPU,总网络流量为D。
  • 3D并行时,整个数据集从网络存储读取,在数据并行维度上分配,在张量并行维度上广播,总网络流量为D x G(tp) 。

以C4数据集为例,数据集的大小约38.5 TB,假设张量并行GPU数量为8,3D并行时每个epoch中加载数据集产生的网络流量为308TB

⑵ Checkpoint存储流量分析

Checkpoint中存储了模型参数、优化器状态和其它训练状态(包括模型配置、训练的超参数、日志信息等)。优化器包含了梯度、动量和二阶矩估计等,每一种数据大小都等于模型参数。其它训练状态的大小可以忽略不计。假设模型参数为P,数据格式为BFLOAT16,优化器为Adam/AdamW,则checkpoint总大小为:

2 x P + 2 x P x 3 = 8 x P

这个checkpoint要保存在存储服务器中,虽然在张量并行、流水线并行和3D并行时,这些数据从多个GPU上通过gather操作汇聚到存储服务器,但无论如何,数据总量是一个checkpoint大小。假设每个epoch存储一次。这样,每个epoch产生的流量为:

8 x P

以Llama3-70B模型为例,假设每个epoch均存储,则产生的网络存储流量为560GB

03、存储网设备选型:RoCE还是InfiniBand

相比训练场景,在智算中心存储网传输的流量与并行计算完全不在一个量级——虽然对链路带宽要求不那么高,但仍需满足高速分布式存储业务中所需的高吞吐、低时延、无损传输特性,并灵活满足存储集群规模调整所需的高可扩展性。

NVIDIA DGX SuperPOD™ 的方案在存储网采用的是200G的InfiniBand交换机。而事实上,随着近年来AI以太网技术的进步,RoCE与IB在转发时延上的细微差异,对分布式存储业务性能几乎没有影响。结合科学的网络参数调优,我们已在多个客户现场稳定测得了运行RoCEv2协议的交换机端到端性能全面优于IB交换机的结果。RoCE交换机作为IB平替已是不争的事实。

星融元 CX664P-N 是一款专为智算/超算中心设计的超低时延RoCE交换机,凭借以下特性在存储场景中脱颖而出。

型号为CX564P-664D-N数据中心交换机产品图

CX664D-N— 业务接口:64 x 200GE QSFP56, 2 x 10GE SFP+

  • CX-N系列一贯的超低延迟特性,端到端性能可媲美IB*(*测试数据详见方案手册)
  • 12.8Tbps 的线速 L2/L3 交换性能,提供高密度 200G/100G 以太网接口,满足主流存储网络需求并兼顾未来升级空间;另有两个 10G 端口用于管理网接入
  • 支持基于 RDMA 的 NVMe-oF (全端口标配RoCEv2)和EVPN-Multihoming → 什么是EVPN多归属,和MC-LAG的区别?
  • 搭载持续进化的企业级SONiC——AsterNOS网络操作系统,其开放的软件架构通过REST API开放全部网络功能给AI智算中心管理系统,实现无损以太网的自动化极简部署 → Easy RoCE:一键启用无损以太网

除存储网之外,基于通用、解耦、高性能的以太网硬件和开放软件框架,星融元可为大模型算力中心提供10G-800G的全场景互联能力。

一文揭秘AI智算中心网络流量 – AI推理篇


关注星融元


本篇为“揭秘AI智算中心网络流量“系列的第二篇,前篇请参阅:一文揭秘AI智算中心网络流量 – 大模型训练篇 。有关数据存储流量的分析将于下篇呈现,敬请关注。

AI推理是指从经过训练的大模型中获取用户查询或提示的响应的过程。

为了生成对用户查询的完整响应,AI推理服务器从一次推理迭代中获取输出token,将其连接到用户输入序列,并将其作为新的输入序列反馈到模型中以预测下一个token。这个过程被称为“自回归”计算,此过程重复进行,直到达到预定义的停止标准。

自回归

AI推理系统如何生成一次完整的响应?

⑴ 预填充/提示(Prefill):模型从用户那里获得输入序列。基于此输入,模型预测第一个输出token。

⑵ 解码(Decode):将生成的输出token连接到输入序列。更新后的输入序列被反馈到经过训练的模型中,然后生成下一个token。

⑶ 循环:解码继续进行,每个新token都是基于所有先前token的累积序列生成的。这种将输出token自回归地馈送到输入的过程确保模型在每个步骤的输出都受到所有先前token的影响,从而使其能够保持上下文和连贯性。

⑷ 终止:当模型达到停止标准时,它会终止该过程。停止标准可以是以下之一。

  • 最大序列长度:一旦达到总token(输入和输出)数量的定义限制
  • 序列结束 (EOS) :模型生成一个特殊token,表示文本生成的结束。
  • 上下文完成:当模型确定生成的文本已根据提供的上下文得出自然且合乎逻辑的结论

AI并行推理网络流量分析

由于在预填充阶段已知整个token输入序列,因此推理加速器可以并行计算所有输入token的信息,并执行模型来预测下一个输出token。

在大模型推理时,虽然模型经过了压缩(比如4bit量化),但模型尺寸仍可能超过单个GPU的内存,这时候就需要张量并行,即使单个GPU可以容纳整个模型,张量并行可以加速推理过程。如果并发用户数较大,单个GPU来不及及时响应,就需要数据并行

让我们再次回顾AI推理的两个关键阶段:

  1. 预填充(Prefill)阶段根据用户输入的prompt,生成输入token序列,并进行批处理,计算KV(Key, Value)缓存,并生成第一个输出token。这个阶段可以认为是大模型在理解用户输入,KV缓存存储了输入序列的上下文信息(为下面的Decode阶段缓存),其特点是需要大量的计算。
  2. 解码(Decode)阶段是一个循环过程,根据之前生成的token序列和KV缓存,计算下一个token,直到生成完整的输出。这个阶段可以认为是大模型在一个字一个字的说话。由于KV缓存的密集型计算已在 Prefill 阶段完成,因此此阶段仅处理上一阶段新生成的 token。因此,计算密集程度较低;但这一步需要从 KV缓存中读取前面所有token的Key,Value,所以需要高速的内存访问。

由于以上两个阶段对GPU的需求不同,我们可以采用Prefill-Decode解耦的方式,由2个不同类型的GPU分别承担Prefill和Decode阶段的计算任务,顺序执行。这时候就需要在两个阶段间传输KV缓存。

在生产部署时,通常结合上述几种方式。相比AI训练,AI推理只有前向传播过程,计算量相对较低,但需要快速的生成下一个token。流量产生有两个来源:

  1. 每次推理在Prefill GPU和Decode GPU之间传递KV缓存;
  2. Prefill GPU集群和Decode GPU集群分别实施张量并行,产生的中间激活的传递。不会有巨量的梯度同步流量。

假设并发用户数为U,数据并行维度为G(dp),张量并行维度为G(tp),用户输入序列的平均长度为S(in)个token,模型产生输出的平均长度为S(out)个token。

在张量并行时,前向传播产生了GPU间的网络流量,各个GPU计算出的中间激活值需要合并,由all-reduce操作进行求和。

假设模型有L层,在一次推理过程中,S(in)个输入token在模型的每一layer进行2次批量合并,共2L次,而对于每个输出Token,在模型的每个layer的中均进行2次合并,共 2xS(out) x L 次。此外,在Prefill阶段和Decode阶段之间有一次KV缓存的传递。AI并行推理网络流量如下图所示:

假设模型的隐藏状态大小为H,GPU数量为G,计算激活使用的数据格式为FLOAT16(2个字节表示一个数),每次all-reduce操作的通信量为

2 x H x (Gtp-1)x Gtp

在Prefill阶段,所有输入Token,在模型的每个layer的中均进行2次批量合并,共2xS(in)xL次。在Decode阶段,对于每个Token,在模型的每个layer的中均进行2次合并,共2xS(out)xL次。因此,U个用户的并发推理,中间激活值的总网络流量为

4 x U x(Sin+Sout)x L x H x (Gtp-1)x Gtp

另外,在一次推理中,KV缓存的大小为

4 x Sin x L x H

因此,U个用户的并发推理,KV缓存传递的网络流量为

4 x U x Sin x L x H

以Llama3-120B模型为例,模型层数140, 隐藏状态大小8192,张量并行度为4,用户prompt的平均长度S(in)为256个token,产生的输出的平均长度S(out)为4096个token。则要支持100个并发用户请求所需要的推理流量为:

4 x 100 x (256 + 4096)x 140 x 8192 x (4-1)x 4 + 4 x 100 x 256 x 140 x 8192 = 21.896TB

其中,KV缓存传递的流量虽然不大,每个用户约1.17GB,但需要在10ms左右的时间内一次传递完成。如果用1个800G端口传递,最快需要11.7ms。

AI推理对网络的需求

超高频率

AI推理流量虽然远小于训练时的网络流量,但值得注意的是,推理需要在很短的时间内完成,每个token在每一层产生2次流量,并要求在极短时间内传输完毕。假设至少要达到100token/s的推理速度,并行加速比为90%,那么每个token的推理速度要小于1ms,KV缓存需要在10ms左右完成。整个网络吞吐量应大于

4 x 100 x 140 x 8192 x (4-1)x 4/0.001 + 4 x 100 x 140 x 8192/0.01 = 5551GB/s 44.4Tbps

严格时间同步

无论是训练还是推理流量,都具有非常严格的周期性规律。基于木桶原理,如果GPU的时钟不同步,将造成同样的计算量花费不同的时间,计算快的GPU不得不等待计算慢的GPU。

开放与兼容性

AI推理进程涉及应用已训练好的AI模型进行决策或识别。对比AI训练,AI推理芯片门槛相对更低,我们的确也看到推理领域萌生出了开放生态的雏形,不少新兴初创企业加入竞争,涌现出基于不同算力架构的技术方案。

另一方面,在实际生产部署中的AI推理业务往往会与前端的业务/应用网络形成紧密配合,经由现有数据中心和云网络基础设施对外提供服务。

这便要求基础设施具备相当的开放性——网络不但要连接底层的异构算力(GPU、CPU、NPU)系统,还需要实现与上层管理系统的对接集成,例如与基于K8s的算力调度平台、已有的云管平台等等。

随着大模型的应用不断深化,AI算力部署将从训练场景逐步转向推理,推理需求也逐渐从云端迁移至边缘/终端,并呈现出垂直行业定制化的趋势。在云-边-端之间,我们需要构建一个更为均衡、通用化的网络基础设施体系。

在已被用户场景充分验证的数据中心开放云网能力之上(BGP、VXLAN、Calico容器路由、RoCE、NVMe-oF等),星融元推出的 星智AI 网络解决方案基于通用、解耦、高性能的以太网硬件和开放的SONiC软件框架,为AI智算中心提供10G-800G速率的以太网交换机,灵活支持单一速率或混合速率交换机组网,在保持极致性能的同时可编程、可升级,帮助客户构建高性能的AI智算中心网络,提供用于AI训练、推理、分布式存储、带内外管理等场景的互联能力。

  • 最大支持64个800G以太网接口,共51.2T交换容量
  • 超低时延,在800G端口上实现业界最强的560ns cut-through时延
  • 全端口标配支持RoCEv2
    200+MB大容量高速片上包缓存,显著减小集体通信时RoCE流量的存储转发时延
  • Intel至强CPU + 大容量可扩展内存,运行持续进化的企业级SONiC——AsterNOS网络操作系统,并通过DMA直接访问包缓存,对网络流量进行实时加工
  • INNOFLEX可编程转发引擎:可以根据业务需求和网络状态实时调整转发流程,最大程度避免网络拥塞和故障而造成的丢包
  • FLASHLIGHT精细化流量分析引擎:实时测量每个包的延迟和往返时间等,经过CPU的智能分析,实现自适应路由和拥塞控制
  • 10纳秒级别的PTP/SyncE时间同步,保证所有GPU同步计算
  • 开放的软件架构(生产就绪的SONiC,AsterNOS)通过REST API开放全部网络功能给AI智算中心管理系统,与计算设备相互协同,实现AI算力集群的自动化部署

AI Open Ecology

一文揭秘AI智算中心网络流量 – 大模型训练篇


关注星融元


前言:自2017年起,AI模型的规模每半年翻一番,从初代Transformer的6500万增长到GPT-4的1.76万亿,预计下一代大语言模型将达到10万亿规模。另一方面,用于模型训练的数据量持续增长,如C4数据集,原始数据量累计超过9.5PB,每月新增200-300TB,目前经过清洗加工后的数据集大小约38.5 TB,训练样本数364.6M。进一步,随着多模态大模型的兴起,训练数据从单一的文本过渡到图像和视频乃至3D点云,数据规模将是文本数据的1万倍以上。

AI模型的规模巨大并持续快速增长,不仅将带来数据中心流量的指数型增长,独特的流量特征也将为数据中心网络带来崭新的需求。

深入分析AI大模型在训练、推理和数据存储流量将帮助数据中心建设者有的放矢,用更低的成本,更快的速度、更健壮的网络为用户提供更好的服务。

本篇我们将聚焦于介绍AI大模型训练场景下的网络流量,AI推理和数据存储场景会在接下来的文章中呈现,敬请关注。

AI model

AI训练程序首先将模型参数加载到GPU内存中,之后将经历多个epoch(即使用所有训练集对模型进行一次完整训练),每个epoch的处理过程可以简单描述为4步:

  1. 加载训练数据,在每个epoch中,根据batch size将整个数据集分为若干个mini-batch,分批次加载训练数据,直到遍历整个训练数据集。
  2. 训练,包括前向传播、计算损失、反向传播和参数/梯度更新,每个mini-batch都进行上述步骤。
  3. 评估,使用评估数据集对模型的指标进行评估。这一步是可选的,可以在整个训练完成后单独进行,也可以间隔若干个epoch进行一次。
  4. 保存checkpoint,包括模型状态、优化器状态和训练指标等。为了减少存储需求,通常经过多个epoch后保存一次。

在大模型出现之前,整个过程在可在一台AI服务器内部完成,训练程序从服务器本地磁盘读取AI模型和训练集,加载到内存中,完成训练、评估,然后将结果存储回本地磁盘。虽然为了加速训练,也会采用多块GPU同时训练,但所有的I/O均发生在一台AI服务器内部,并不需要网络I/O。

AI大模型训练的网络流量有哪些?

进入大模型时代,AI训练的流量路径和其网络需求发生了巨大变革。

首先是模型的参数规模超出了单个GPU的内存,采用GPU集群协同计算,则需要相互之间通信以交换信息,这类信息包括参数/梯度、中间激活值等。

庞大的数据集被所有GPU共享,需要集中存放到远端的存储服务器中通过网络调用,分批加载到GPU服务器上。此外,定期保存的参数和优化器状态也需要通过存储服务器共享,在每个训练epoch中,都要通过网络读写数据。

由此,AI大模型训练的网络流量可分为以下两类:

  • 第一类是GPU之间同步梯度和中间激活的网络流量,它发生在所有GPU之间,是一种广播式流量,逻辑上需要所有GPU全连接。
  • 第二类是GPU和存储服务器之间的流量,它仅仅发生在GPU和存储服务器之间,是一种单播流量,逻辑上仅需要以存储服务器为中心的星型连接。

并行训练技术

其中,GPU之间的网络流量与传统数据中心内部流量迥然不同,这与AI大模型的训练方法息息相关——并行训练技术。

并行训练:AI智算中心的主要流量来源

当前广泛应用于AI训练并行计算模式主要有以下三类:

数据并行将不同的样本数据分配给不同的GPU,以加快训练速度;用在主机之间
张量并行将模型的参数矩阵划分为子矩阵,并分配到不同的GPU上,以解决内存限制并加速计算。一般用在主机内部。
流水线并行将模型分为多个阶段,每个阶段分配给不同的GPU,以改善内存利用率和资源效率。一般用在主机之间

并行训练

常见的集合通信流量模式(如下图)

Collective communication

1.数据并行(Data Parallelism)

在数据并行时,主要的网络流量来源于梯度同步,它发生在每次mini-batch处理之后,由一个all-reduce操作计算平均值。理想情况下,所有GPU全连接,每个GPU给其它G-1个GPU单独发送数据,共需发送G x(G-1)份数据。

FSDP(完全分片数据并行)是一种改进的数据并行技术,旨在优化内存使用和通信效率。它通过将模型参数和梯度在多个GPU之间分片(shard)存储,实现更高效的内存利用和通信。

在FSDP时,网络流量来自前向传播的参数收集以及反向传播中的梯度同步。

前向传播的参数收集由all-gather操作完成,all-gather的通信复杂度与all-reduce相同。

后向传播的梯度同步由all-reduce操作完成,由于每个GPU的参数只有原来的1/G,一个epoch中总的网络流量只有普通数据并行的1/G。

2.张量并行(Tensor Parallelism)

在张量并行时,模型参数分布到G个GPU上,每个GPU只存储1/G参数。网络流量主要来自前向传播过程的中间激活值的传递以及反向传播过程中的梯度同步。

前向传播中,各个GPU计算出的中间激活值需要合并,由一次all-reduce操作进行求和。对于每个Token,在模型的每个layer的中均进行2次合并,共2xTxL次通信。

反向传播中,梯度需要在GPU之间同步,这种在每一层的处理中发生2次,由all-reduce操作将各个GPU上梯度求和。这种同步发生在每个mini-batch的每个layer的处理过程中。共2×N×L次通信。

3.流水线并行(Pipeline Parallelism)

在流水线并行时,网络流量主要来自前向和反向传播过程的中间激活值的传递。与张量并行不同,这些流量的传递发生在模型的前后两个阶段之间,使用Point-to-point通信而非all-reduce操作,并且频率也大大减小了。

综上,在三种并行方式中,张量并行的网络流量最大、频率最高,流水线并行的流量最低,数据并行的通信频率最低。如下表所示,P为模型参数,T为token数,L为模型层数,H为隐藏状态大小,G为GPU数量,N为mini-batch的数量,采用BFLOAT16数据格式,每个参数占2个字节。在每个epoch过程中:

 流量模式后向传播总网络流量反向传播同步次数前向过程总网络流量前向过程传递次数
数据并行all-reduce2 × N × P × G × (G-1)100
FSDPall-gather + all-reduce2 × N × P × (G-1)L2 × N × P × (G-1)L
张量并行all-reduce4 × N × P × L × (G-1)2 × L4 × L × T × H × (G-1) × G2 × L × T
流水线并行Point-to-point2 × T × H × (G-1)G-12 × T × H × (G-1)G-1

以具有80层(L)的Llama3 70B(P)模型和C4数据集为示例计算:采用BFLOAT16数据格式,每个参数占2个字节,隐藏层维度设为8192(H),使用8个GPU(G)进行数据并行。C4数据集token(T)总数约156B,样本数364.6 millions;batch size为2048,则每个epoch包含约178,000个mini-batch(N)

计算可得每个epoch过程中:

 反向传播总网络流量(PB)反向传播同步次数前向过程总网络流量(PB)前向过程总网络流量
数据并行1396 PB100
FSDP1758017580
张量并行2662216021840160*156*10^9
流水线并行17.9717.97

3D并行技术下的网络流量

数据并行、张量并行和流水线并行三个技术通常会组合起来使用,可进一步提高训练大模型时的效率和可扩展性。这时候,GPU也就按照这三个维度组成了GPU集群。

3D并行技术

假设共有G(tp)×G(pp)×G(dp) 个GPU组成的3D并行阵列,全部P个参数将分割为G(tp)×G(pp)份,每一份大小为P/G(tp)/G(pp)。在模型并行、流水线并行和数据并行三个维度上都存在网络流量。接下来我们将深入到每个epoch的训练过程,分别计算不同阶段的网络流量组成和规模。

3D并行技术

1.反向传播中的网络流量

在每个mini-batch中,反向传播时的梯度同步分为:

  1. 张量维度上的梯度同步,在模型的每一层和数据维度的每一组中进行,总共 LxG(dp) 次,每次包含2个all-reduce操作。
  2. 数据维度上的梯度同步,在流水线维度的每个阶段和张量维度的每一组中进行,总共 G(tp)xG(pp) 次,每次包含1个all-reduce操作。

如下图所示:

反向传播中的网络流量

这样,在一个epoch中,梯度同步的总网络流量为:

4xNxP/Gtp/GppxGtpx(Gtp-1)xLxGdp+2xNxP/Gtp/GppxGdpx(Gdp-1)xGtpxGpp=2xNxPxGdpx[2xLx(Gtp-1)/Gpp+(Gdp-1)]

3.流水线并行维度的中间激活梯度传播,流量为:

2xTxHx(Gpp-1)

因此,在一个epoch中,整个反向传播的总流量为:

2xNxPxGdpx[2xLx(Gtp-1)/Gpp+(Gdp-1)]+2xTxHx(Gpp-1)

2.前向传播中的网络流量

前向传播时,中间激活的传递依次在张量并行、流水线并行维度上交替进行,其中张量并行的激活传递每次包含2个all-reduce操作。

如下图,以一个Token的前向传播所示:

Token的前向传播

因此,在一个epoch中,前向传播总网络流量为:

4xTxHxLxPxGtpx(Gtp-1)+2xTxHx(Gpp-1)

即:

2xTxHx(2xLxGtpx(Gtp-1)+(Gpp-1)

由此,我们以Llama3-70B模型为例,采用8路张量并行 x 8路流水线并行 x 16路数据并行的模式,在共1024个GPU上进行训练,一个epoch产生的总流量约为85EB。如此庞大的流量规模,如果用1个交换容量为51.2T的交换机,24小时满负荷运行,需要约20天才能传输完毕。

考虑到一次预训练通常包含100个左右epoch,如果需要在100天完成训练,至少需要20台51.2T交换机来传输训练过程产生的数据。

AI训练对智算中心网络的要求

通过以上分析和计算,我们可以得出一个典型的AI智算中心对计算网的核心需求。

  • 超高带宽:一个epoch就会产生85EB的数据量,相当于整个互联网2.5天的流量。
  • 超低时延:一个训练样本的处理,就会产生100GB以上的数据,并需要在小于1毫秒的时间传输完毕。相当于1000个800G接口的传输速度。
  • 集合通信:GPU服务器之间的All-reduce, All-gather操作带来广播式流量,在上万个GPU之间,也就是上亿个GPU-GPU对之间同步。
  • 零容忍丢包:基于木桶原理,在集体通信过程中,仅仅是一对GPU之间流量的丢包和重传,也会造成整个集体通信的延迟,进而造成大量GPU进入空闲等待时间。
  • 严格时间同步:同样基于木桶原理,如果GPU的时钟不同步,将造成同样的计算量花费不同的时间,计算快的GPU不得不等待计算慢的GPU。

星融元CX-N系列交换机正是为智算中心AI训练场景而生的超低时延以太网交换机——在保持极致性能的同时,实现可编程、可升级的能力,与计算设备形成协同,共同打造10万级别的计算节点互联,将数据中心重构为可与超级计算机媲美的AI超级工厂。

  • 最大支持64个800G以太网接口,共51.2T交换容量。
    超低时延,在800G端口上实现业界最强的560ns cut-through时延。
  • 全端口标配支持RoCEv2,支持Rail-only,全连接Clos以及200G/400G混合组网,灵活适应不同的算力中心建设方案
  • 200+ MB大容量高速片上包缓存,显著减小集体通信时RoCE流量的存储转发时延。
  • Intel至强CPU + 大容量可扩展内存,运行持续进化的企业级SONiC——AsterNOS网络操作系统,并通过DMA直接访问包缓存,对网络流量进行实时加工。
  • INNOFLEX可编程转发引擎,可以根据业务需求和网络状态实时调整转发流程,最大程度避免网络拥塞和故障而造成的丢包。
  • FLASHLIGHT精细化流量分析引擎,实时测量每个包的延迟和往返时间等,经过CPU的智能分析,实现自适应路由和拥塞控制。
  • 10纳秒级别的PTP/SyncE时间同步,保证所有GPU同步计算。
  • 开放API,通过REST API开放全部功能给AI数据中心管理系统,与计算设备相互协同,实现GPU集群的自动化部署。

Easy RoCE:在SONiC交换机上一键启用无损以太网


关注星融元


RDMA(远程直接内存访问)技术是一种绕过 CPU 或操作系统,在计算机之间直接传输内存数据的技术。它释放了内存带宽和 CPU,使节点之间的通信具有更低的延迟和更高的吞吐量。目前,RDMA 技术已广泛应用于高性能计算、人工智能工作负载、存储和许多其他场景。

1、RoCEv2对网络的需求和挑战

RoCEv1 基于以太网链路层实现,通过交换机上的流量控制技术确保物理层的可靠传输。RoCEv2 在 UDP 层之上实现,弥补了 InfiniBand 的一些局限性,支持更广泛的 RDMA 应用。

与 TCP 协议相比,UDP 速度更快,消耗的资源更少,但没有TCP的滑动窗口和确认响应等机制来确保可靠传输。在 RoCEv2 网络中,如果出现数据包丢失,网卡将丢弃所有收到的数据包,而发送方需要重新传输所有后续数据包,导致网络传输性能大幅下降。因此,我们通常使用 PFC(优先级流量控制)和 ECN(显式拥塞通知)等功能来保证可靠性。

在以太网交换机上配置上述功能需要熟悉 QoS 机制、配置逻辑和相关命令行。对于长期为客户配置 RoCEv2 网络的工程师来说,这可能并不困难。但对于大部分从事高性能计算和存储领域的技术人员,他们通常专注于服务器侧的相关技术,这种相对复杂的,但又必须调通的网络配置给他们带来了很多麻烦,甚至以往运维过IB网络的工程师也需要花时间学习相关知识。

2、在SONiC交换机上用常规步骤配置无损以太网

现在让我们快速回顾一下如何在SONiC交换机上按常规方法配置 RoCEv2 无损以太网。这里使用的是星融元CX-N系列超低时延交换机,搭载SONiC企业级发行版AsterNOS3.1 R0405P01版本,但没有使用其上的 EasyRoCE 功能。

在部署 RoCEv2 网络时,务必首先确认网络硬件条件:低延迟网络交换机需要能支持 PFC 和 ECN 等功能,服务器侧的网卡也需要支持 RoCEv2 。常规步骤下:

  1. 启用和取消需要分别配置 PFC 和 ECN。
  2. 故障排除或状态检查通常需要进入不同的命令行视图并多次执行 “show “命令,以确定当前队列映射、缓冲区、启用的队列、阈值、队列吞吐量、暂停和 CNP 触发器。

第一步,确保服务器网卡工作在 RoCEv2 模式下,为业务流量配置 PCP 或 DSCP,并启用 ECN。


#设置网卡RDMA CM的工作模式
[root@server ~]# cma_roce_mode -d mlx5_0 -p 1 -m

#设置网卡的优先级类型为DSCP
[root@server ~]# mlnx_qos -i enp1s0f0 –trust=dscp
DCBX mode: OS controlled
Priority trust state: dscp

#在队列3上开启PFC
[root@server ~]# mlnx_qos -i enp1s0f0 -f 0,0,0,1,0,0,0,0

#在队列3上开启DCQCN
[root@server ~]# echo 1 > /sys/class/net/enp1s0f0/ecn/roce_np/enable/3
[root@server ~]# echo 1 > /sys/class/net/enp1s0f0/ecn/roce_rp/enable/3

#设置CNP DSCP
[root@server ~]# echo 48 >


然后,在交换机端口配置以启用 PFC 和 ECN 功能并指定队列。您需要在以太网交换机的指定队列(需与服务器上的队列匹配)上启用 PFC 和 ECN,并调整缓冲区和阈值。


# 设置PFC门限值
sonic(config)# buffer-profile pg_lossless_100000_100m_profile
sonic(config-buffer-profile-pg_lossless_100000_100m_profile)# mode lossless dynamic -2 size 1518 xon 0 xoff 46496 xon-offset 13440
sonic(config-buffer-profile-pg_lossless_100000_100m_profile)# exit

# 在3、4队列开启PFC功能(AsterNOS的PFC功能默认使能3、4队列,无需配置)
sonic(config)# priority-flow-control enable 3
sonic(config)# priority-flow-control enable 4
sonic(config)# exit

# 设置ECN门限值
sonic(config)# wred roce-ecn
sonic(config-wred-roce-ecn)# mode ecn gmin 15360 gmax 750000 gprobability 10
sonic(config-wred-roce-ecn)# exit

# 配置Diffserv map
sonic(config)# diffserv-map type ip-dscp roce-dmap
sonic(config-diffservmap-roce-dmap)# ip-dscp 48 cos 6

# 配置Class map
sonic(config)# class-map roce-cmap
sonic(config-cmap-roce-cmap)# match cos 3 4
sonic(config-cmap-roce-cmap)# exit

# 配置Policy map
sonic(config)# policy-map roce-pmap
sonic(config-pmap-roce-pmap )# class roce-cmap
sonic(config-pmap-c)# wred roce-ecn
sonic(config-pmap-c)# priority-group-buffer pg_lossless_100000_100m_profile
sonic(config-pmap-c)# exit
sonic(config-pmap-roce-pmap )# set cos dscp diffserv roce-dmap
sonic(config-pmap-roce-pmap )# exit

# 进入以太网接口视图,绑定策略,将RoCE网络配置在接口上使能
sonic(config)# interface ethernet 0/0
sonic(config-if-0/120)# service-policy roce-pmap


3、使用AsterNOS上的Easy RoCE快捷配置无损以太网

星融元在 AsterNOS 上推出了 “EasyRoCE” 功能,该功能将无损以太网相关的配置命令行进行了封装和模板化,大大简化了RoCEv2网络配置和部署流程。请注意,以下命令行仅简单展示交换机上与该功能相关的部分关键配置,完整的验证演示流程请参考文末视频

一键启用无损以太网

一键RoCE

故障排除或状态检查

AsterNOS 的 Easy RoCE 功能支持 show roce 命令行,用于一站式查看全局或接口视图的RoCE 配置和计数,以及清除所有配置和计数。

# 检查RoCE配置
sonic# show qos roce

故障排除

# 查看特定接口的计数
sonic# show counters qos roce interface 0/0 queue 3
# 清除全部计数
sonic# clear counters qos roce

状态检查

自动化配置和网络可见性

上述命令可帮助您快速配置无损以太网,如果您需要微调参数,Easy RoCE也支持自定义更改设备提供的默认模板,该模板也可通过上层管理平台向设备下发。

基于 AsterNOS 的开放式架构,我们还开发了一个容器化部署的 roce_exporter,用于提取设备 RoCE 相关信息,并与 Prometheus 无缝对接以提高网络可见性。

自动化配置

相关文章

实战演练:一文教你将交换机纳入K8s,对容器进行纳管


关注星融元


随着云计算的发展和云原生应用的兴起,容器技术成为一种流行的应用部署和管理方式。容器化应用程序具有轻量、可移植和可扩展的特点,能够快速部署和运行在不同的环境中。Kubernetes作为一个容器编排平台,为云原生应用的部署、管理和自动化提供了强大的支持,因此得到了广泛的关注和采用。

AsterNOS由于其系统的开放性,能够提供计算资源给用户以部署容器化服务。在客户拥有K8s管理集群的条件下,可以通过K8s纳管AsterNOS设备,将第三方应用部署在AsterNOS上,从而简化应用程序的管理和运维过程。通过使用K8s进行容器编排和自动化管理,便能实现应用的自动伸缩、自动恢复和自动升级,减少了人工干预和操作的工作量。可以提高运维效率,降低运维成本,并提供更好的应用程序可用性和稳定性。

流程图

配置K8s之前,先给读者们讲个故事:

在K8s诞生时,CNCF(云原生计算基金会——主导了K8s项目)便致力于推行一个标准的容器对接方案CRI,符合该容器标准的容器技术能够被K8s纳管,但是docker当时已经作为市场主流方案被接受,因此不符合该标准。出于市场原因K8s最开始在内部运行了名为docker-shim的垫片程序作为与docker的临时对接方案,在1.24版本后,K8s便放弃了与docker的兼容工作,将该垫片剥离出去。这方面工作就由Mirantis公司(docker母公司)接手,开发出名为cri-dockerd的垫片程序进行兼容工作。自此,如果想使用K8s管理docker,便需要使用一个名为cri-dockerd的容器运行时作为中间垫片。


因此,方案整体采用docker + cri-dockerd + K8s 的架构进行部署验证。

方案主体

可以通过两种方式将CX-N作为K8s集群中的工作节点:

  • CX-N作为普通node节点纳入集群,在此方案中K8s中的kube-proxy以及kubelet作为必要组件会运行在工作节点中。该方案所占资源更多但是更加通用,能够实现K8s所有的功能。
  • 将CX-N作为边缘设备纳入集群,该方案使用kubeedge组件,在主节点启用cloudcore,边缘节点启动edgecore加入主节点。此方案所占用性能更低,但是如果将该节点当作普通node来使用可能会出现兼容性以及功能方面的缺失问题。

组网拓扑

1、IP规划

名称IP
K8s-master10.230.1.26/24
CX532P-N10.230.1.10/24
CX308P-N10.230.1.21/24
Pod-cidr10.244.0.0/16
Service-cidr10.96.0.0/12

2、kubeedge方式部署

kubeedge方式部署

(1)软件环境

机器名称版本
K8s-masterLinuxUbuntu 20.04.6 LTS
dockerdocker ce:26.0.0
containerd:1.6.28
cri-dockerv0.3.11
keadmv1.16.1
kubeedgev1.16.1
kubeadm、kubelet、kubecliv.1.27.6
flannelv0.24.4
CX532P-Ndockerdocker ce:26.0.0
containerd:1.6.28
cri-dockerv0.3.11
keadmv1.16.1
kubeedgev1.16.1
cni-pluginv1.4.1

(2)最终效果

在主节点上显示节点信息:

节点信息
节点信息

显示容器信息:

master节点容器信息
master节点容器信息

在CX-N设备上显示容器信息:

node节点容器信息
node节点容器信息

3、node方式部署

(1)软件环境

机器名称版本
K8s-masterLinuxUbuntu 20.04.6 LTS
dockerdocker ce:26.0.0
containerd:1.6.28
cri-dockerv0.3.11
kubeadm、kubelet、kubecliv.1.27.6
flannelv0.24.4
CX532P-Ndocker
docker ce:26.0.0
containerd:1.6.28
cri-dockerv0.3.11
kubeadm、kubelet、kubecliv.1.27.6
flannelv0.24.4

(2)最终效果

master节点容器信息
master节点容器信息

node节点容器信息
node节点容器信息

4、结论

两种方案对比:

 kubeedge节点普通K8s node节点
功能边缘计算能力,能在边缘设备上运行容器化应用和进行边缘计算完整的容器编排和管理能力,适用于云端和数据中心环境
生态支持生态对比普通Kubernetes有所不足成熟的生态系统和广泛的社区支持
设备边缘设备和边缘计算基础设施的支持普通计算节点
网络要求离线工作支持,能在无网络连接的情况下继续工作需要高速稳定的网络连接和可靠的云端基础设施
性能占用边缘设备的资源限制可能影响应用程序的性能和可扩展性性能占用略高,不适合特定于边缘计算场景的要求
部署管理部署和管理边缘节点更复杂部署管理较为简单
资源控制node资源控制能力不足完善的pod,namespace以及node资源控制管理能力

总的来说,kubeedge是专属于为边缘计算场景设计:

  1. 边缘计算环境:能够在边缘设备上运行容器化应用和进行边缘计算。因此,KubeEdge 特别适用于需要在边缘设备上进行实时数据处理、低延迟计算或离线工作的场景。
  2. 边缘数据处理:要求边缘设备具有本地数据处理能力,可以减少数据传输到云端的延迟和带宽消耗。这使得 KubeEdge 适用于需要实时数据处理、减少云端数据传输、保护数据隐私等场景,如物联网应用、视频监控、智能交通等。
  3. 离线工作支持:即使在边缘设备失去网络连接的情况下,仍然能够继续工作,适用于偏远地区或断网环境下的场景。

而普通的K8s节点更适用于如下场景:

  1. 云端和数据中心环境:节点具备完整的容器编排和管理能力,适用于在云端和数据中心部署和管理大规模的容器化应用。
  2. 易于扩展和管理的场景:普通 Kubernetes 节点在扩展性和管理性方面具有优势,可以轻松地扩展和管理大规模的集群,适用于需要高度可扩展性和灵活性的场景。
  3. 依赖云端资源的场景:普通 Kubernetes 节点通常依赖于云端的弹性和资源来处理工作负载,适用于需要利用云端资源来处理应用程序的场景。
  4. 广泛的生态系统和社区支持:普通 Kubernetes 在生态系统和社区支持方面非常强大,有着广泛的工具、插件和文档资源,适用于需要成熟的生态系统和广泛的社区支持的场景。

通过以上两种方式,星融元AsterNOS设备上能够运行K8s容器,想要自行配置体验?方案获取:解决方案-基于Kubernetes的AsterNOS资源管理方案

相关文章

对星融元产品感兴趣?

立即联系!

返回顶部

© 星融元数据技术(苏州)有限公司 苏ICP备17070048号-2