掌桥专利:专业的专利平台
掌桥专利
首页

一种NPU集群网络结构和网络互连方法

文献发布时间:2023-06-19 18:53:06


一种NPU集群网络结构和网络互连方法

技术领域

本发明涉及通信技术领域,具体是涉及一种NPU集群网络结构和网络互连方法。

背景技术

人工智能技术AI用于模型的训练,模型复杂度越大对AI算力的要求越高,如图2所示,AI算力需求逐年递增。最新的AI模型已经提出了对E级AI算力的需求,即在单一模型训练中使用的FP16算力超过1E OPS(

E级AI算力对计算效率以及通信效率均带来严苛的要求。神经网络处理器(neural-network processing unit, NPU)能够满足E级AI算力对计算效率的要求,比如昇腾910芯片由于在其内部集成了多块NPU而形成NPU集群从而满足了E级AI算力对计算效率的需求。但是NPU数量的增加也意味着需要并行地使用更多的AI芯片(多个NPU和CPU组成了AI芯片,一个AI芯片又称为节点)。如图3所示,随着AI并行度(节点数)的提高,网络通信量(需要网络传输的用以作为通信信息的数据量)也呈现出接近线性的增长趋势,当网络通信量达到一定数量时,通信效率(数据交互效率)就会阻碍NPU集群的算力。

综上所述,现有技术中的数据交互效率限制了NPU集群的算力。

因此,现有技术还有待改进和提高。

发明内容

为解决上述技术问题,本发明提供了一种NPU集群网络结构和网络互连方法,解决了现有技术中的数据交互效率限制了NPU集群算力的问题。

为实现上述目的,本发明采用了以下技术方案:

第一方面,本发明提供一种NPU集群网络结构,其中,包括:

节点,用于作为训练神经网络模型的硬件结构,包括第一组处理器和第二组处理器,所述第一组处理器的NPU与所述第二组处理器的NPU电连接;

第一网络平面,与所述第一组处理器电连接;

第二网络平面,与所述第二组处理器电连接。

在一种实现方式中,所述节点还包括若干个CPU,每个所述CPU与所述第一组处理器的NPU和所述第二组处理器的NPU之间分别连接有高速串行计算机扩展总线;若干个所述CPU之间连接有HCCS总线。

在一种实现方式中,所述第一组处理器的若干个所述NPU之间连接有HCCS总线,所述第二组处理器的若干个所述NPU之间连接有HCCS总线,所述第一组处理器的所述NPU与所述第二组处理器的所述NPU之间连接有HCCS总线。

在一种实现方式中,相异所述节点的所述NPU之间通过所述第一网络平面或所述第二网络平面以RoCE网络协议通信。

在一种实现方式中,所述第一组处理器和所述第二组处理器所包含的所述NPU的数量均为四组。

第二方面,本发明实施例提供一种网络互连方法,包括:

从构成各个节点的若干个NPU中选择一个NPU,记为桥接NPU;

控制各个所述节点内部的若干个所述NPU通过所述桥接NPU互连,所述互连为若干个所述NPU彼此之间相互数据传输;

控制内部互连之后的各个所述节点之间进行数据传输。

在一种实现方式中,所述控制各个所述节点内部的若干个所述NPU通过所述桥接NPU互连,所述互连为若干个所述NPU彼此之间相互数据传输,包括:

依据所述桥接NPU,得到所述桥接NPU中的第一桥接NPU和第二桥接NPU,所述第一桥接NPU位于所述第一组处理器内,所述第二桥接NPU位于所述第二组处理器内;

控制所述第一组处理器内的若干个所述NPU通过所述第一桥接NPU互连;

控制所述第二组处理器内的若干个所述NPU通过所述第二桥接NPU互连;

控制所述第一桥接NPU与所述第二桥接NPU互连。

在一种实现方式中,所述控制各个所述节点内部的若干个所述NPU通过所述桥接NPU互连,所述互连为若干个所述NPU彼此之间相互数据传输,还包括:

控制所述第一桥接NPU与所述节点内的CPU互连;

控制所述第二桥接NPU与所述节点内的CPU互连。

在一种实现方式中,所述控制内部互连之后的各个所述节点之间进行数据传输,包括:

控制互连之后的各个所述节点的所述桥接NPU接收目标数据;

控制各个所述节点的所述桥接NPU将接收的目标数据通过RoCE网络协议发送至目标计算节点。

在一种实现方式中,所述控制各个所述节点的所述桥接NPU将接收的数据通过RoCE网络协议发送至目标计算节点,之后还包括:

控制所述目标计算节点的所述桥接NPU接收所述目标数据;

控制所述目标计算节点的所述桥接NPU将接收的所述目标数据分发至所述目标计算节点内的各个NPU。

第三方面,本发明实施例还提供一种网络互连装置,其中,所述装置包括如下组成部分:

桥接NPU筛选模块,用于从构成各个节点的若干个NPU中选择一个NPU,记为桥接NPU;

互连控制模块,用于控制各个所述节点内部的若干个所述NPU通过所述桥接NPU互连,所述互连为若干个所述NPU彼此之间相互数据传输;

数据传输模块,用于控制内部互连之后的各个所述节点之间进行数据传输。

第四方面,本发明实施例还提供一种终端设备,其中,所述终端设备包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的网络互连程序,所述处理器执行所述网络互连程序时,实现上述所述的网络互连方法的步骤。

第五方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有网络互连程序,所述网络互连程序被处理器执行时,实现上述所述的网络互连方法的步骤。

有益效果:本发明将用于神经网络模型训练的节点划分为两组,分别是第一组处理器和第二组处理器,而且将网络平面也划分为两个平面,一个网络平面只负责一组处理器在训练神经网络模型过程中产生数据的传输,从而提升了由各个NPU处理器构成的NPU集群传输数据的效率,一旦传输数据的效率提升,那么数据传输的效率提升,则数据传输的效率就不会制约NPU集群的算力,从而提升了NPU集群的算力。

附图说明

图1为本发明的整体流程图;

图2为背景技术中的AI算力增长示意图;

图3为背景技术中的AI并行度与数据交互效率关系示意图;

图4本发明实施例中的双平面网络结构图;

图5为本发明实施例中的将Spine和Leaf交换机层划分为两个网络平面的示意图;

图6为本发明实施例中的节点内部互连示意图;

图7为本发明实施例中的节点的结构图;

图8为本发明实施例中的4个集群组成的4096个NPU的组网示意图;

图9为本发明实施例中的TPU-v3 Pod互连架构图;

图10为本发明实施例提供的终端设备的内部结构原理框图。

具体实施方式

以下结合实施例和说明书附图,对本发明中的技术方案进行清楚、完整地描述。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

经研究发现,人工智能技术AI用于模型的训练,模型复杂度越大对AI算力的要求越高,如图2所示,AI算力需求逐年递增。最新的AI模型已经提出了对E级AI算力的需求,即在单一模型训练中使用的FP16算力超过1E OPS(

E级AI算力对计算效率以及通信效率均带来严苛的要求。神经网络处理器(neural-network processing unit, NPU)能够满足E级AI算力对计算效率的要求,比如昇腾910芯片由于在其内部集成了多块NPU而形成NPU集群从而满足了E级AI算力对计算效率的需求。但是NPU数量的增加也意味着需要并行地使用更多的AI芯片(多个NPU和CPU组成了AI芯片,一个AI芯片又称为节点)。如图3所示,随着AI并行度(节点数)的提高,网络通信量(需要网络传输的用以作为通信信息的数据量)也呈现出接近线性的增长趋势,当网络通信量达到一定数量时,通信效率(数据交互效率)就会阻碍NPU集群的算力。

为解决上述技术问题,本发明提供了一种NPU集群网络结构和网络互连方法,解决了现有技术中的数据交互效率限制了NPU集群算力的问题。具体实施时,首先将节点划分为第一组处理器和第二组处理器,将网络平面也划分为第一网络平面和第二网络平面,第一网络平面只负责第一处理器的数据交互,第二网络平面只负责第二处理器的数据交互。本发明能够提升处理器的数据交互效率,从而提升了由处理器组成的NPU集群的算力。

举例说明,如图4所示,节点以及交换机组成两个完全相同的网络平面(分别标记为第一网络平面及第二网络平面)。如图5所示,一个机柜包含8个节点。每一个节点内部结构如图6所示(节点内部除了NPU还有CPU,图6中没有画出CPU,只画出了作为核心处理器的NPU),即每个节点内部都包含了NPU0、NPU1、NPU2、NPU3、NPU4、NPU5、NPU6、NPU7。将NPU0、NPU1、NPU4、NPU5划分为第一组处理器,NPU2、NPU3、NPU6、NPU7划分为第二组处理器。如图5所示,将Spine和Leaf交换机层划分为两个网络平面:两者分别由独立的Spine交换机SW0、SW1...SW31,以及Leaf交换机SW0列0号…SW0列63号组成。每个网络平面只负责每个节点的其中一组处理器所产生的参数的数据传输。以图5中的节点#1为例,实线为第一网络平面,第一网络平面只负责神经网络模型在NPU0、NPU1、NPU4、NPU5上训练产生的参数,即第一网络平面只负责将在节点#1中的NPU0、NPU1、NPU4、NPU5上训练模型产生的参数传输至同一网络平面的其它节点上,即第一网络平面只负责NPU0、NPU1、NPU4、NPU5上的参数数据与同一网络平面的其它节点的交互。同样对于第二网络而言,其只负责NPU2、NPU3、NPU6、NPU7上的参数数据与同一网络平面的其它节点的交互。

本实施例的应用场景:将用于图像识别、目标检测、自然语言处理的神经网络模型的架构以及模型参数传输至图5中的八个节点中,同时将训练数据集也植入到这八个节点中,八个节点中的NPU利用训练集对模型进行并行训练,每完成一轮训练之后,各个节点中的NPU将该轮训练得到的模型参数通过网络平面传输至其它节点中的NPU,以实现每轮训练得到的模型参数在各个节点之间的交互。

示例性结构

本实施例提供一种NPU集群网络结构,包括节点、第一网络平面、第二网络平面。

在一个实施例中,如图7所示,每个节点包括八个NPU和四个CPU。端口分别为网口-0、-1、-2、-3的NPU1、NPU2、NPU3、NPU4为第一组处理器(NPU1、NPU2、NPU3、NPU4这四个NPU也组成了NPU集群),端口分别为网口-4、-5、-6、-7的NPU1、NPU2、NPU3、NPU4为第二组处理器。

该实施例中,第一网络平面、第二网络平面构成了双平面组网方式,即将网络划分为两个对称的网络平面。实线和虚线两个网络平面分别包含2048个NPU,独立组成Spine-Leaf网络通信结构(胖树结构)。每个网络平面的对分带宽高达2048/2*100Gb/s=12.8TB/s。其中每个计算节点内部的8个端口分属不同网络平面(如端口0、1、4、5归属实线所在的网络平面,端口2、3、6、7归属虚线所在的网络平面)。本实施例的优点:(1)带宽利用率高,(2)网络延迟可预测,(3)拓展性好,(4)降低对交换机的要求,(5)安全性和可用性高。此外,通过实线网络平面和虚线网络平面进行各自组网,相比融合实线网络平面和虚线网络平面的单一组网,前者降低了每个节点所需的端口数量以及交换机数量,进一步优化了硬件资源使用率。

从计算节点外部看,实线和虚线两个网络平面是不互通的。为了实现全机互连,本实施例进一步构建节点内部的跨网络平面NPU互连架构。如图6所示,通过大带宽缓存一致性系统(Huawei Cache Coherent System, HCCS)高速互联技术,可实现同一计算节点内部、位于不同网络平面的NPU间的高速通信。此外,同一平面内的多个NPU也可通过HCCS实现组内互连或通过PCI-Express(PCIe)实现组间互连,进而实现全机NPU互连。因此,采用双平面组网方式,结合节点内跨平面及同平面NPU互连,在集合通信优化模式的下可实现全部NPU互连,进而完成全机大规模AI任务训练的目标。

在一个实施例中,第一组处理器内部的八个NPU之间连接有HCCS总线,第二组处理器内部的八个NPU之间也连接有HCCS总线(Huawei Cache Coherent System),第一组处理器的NPU与所述第二组处理器的所述NPU之间也连接有HCCS总线,第一组处理器的NPU与第一组的CPU之间连接有高速串行计算机扩展总线PCIe(PCI-Express),第二组处理器的NPU与第二组的CPU之间也连接有高速串行计算机扩展总线PCIe。不同节点之间的NPU之间采用RoCE网络协议通信(融合以太网上的远程直接数据存取,RDMA over Converged Ethenet,RoCE)。

该实施例中,每个节点内部的NPU(第一组处理器NPU和第二组处理器NPU构成了节点内部的NPU)之间的连接以及每个节点内部的CPU之间的连接都属于节点内同构计算单元互连。节点内同构计算单元互连即同一计算节点内部的CPU之间的互连或NPU之间的互连。采用Cache一致性总线协议HCCS进行通信,使CPU/NPU之间可以进行片上直接内存访问,实现高速数据交互。具体地,每个节点包含4个CPU,这4个CPU通过3个HCCS进行全互连;每个节点包含8个NPU,组成2个NPU组(第一组处理器NPU和第二组处理器NPU),每个NPU通过3个HCCS与组内其他NPU进行全互连。NPU组间无直接的HCCS互连。HCCS的单链路单向带宽为30GB/s,因此可得每个CPU/NPU的单向聚合带宽为90GB/s。

该实施例中,每个节点内部的NPU与CPU之间的连接属于节点内异构计算单元互连,节点内异构计算单元互连即同一计算节点内部的异构计算单元之间的通信,即CPU与NPU之间的通信。通过高速串行总线PCIe实现,每个NPU通过1条PCIe 4.0 x16和1个CPU连接。每个计算节点包含4个CPU以及8个NPU,因此每个CPU通过PCIe协议分别与两个NPU进行点对点互连,进而可实现同一节点内部两个平面间NPU的全互连。每条PCIe 4.0 x16提供32GB/s的单向数据传输理论带宽。系统整体的PCIe可提供的对分带宽可达512*4*32GB/s=64TB/s。512为512个互联区域,E级NPU集群中包含2个胖树结构组成的平面,每个平面含有512个互联作用域,每个互联作用域定义为由4个NPU组成的全互连结构。

该实施例中,不同节点的NPU之间的连接属于节点间互连:每个计算节点提供板载8个100GE以太网口与高速交换机互联,结合RoCE (RDMA over Converged Ethenet)v2技术,实现计算节点跨网络级别的直接访问。RoCE是一种网络协议,允许通过以太网络使用远程数据直接存取(remote memory direct access, RDMA)。RoCE v2可以实现路由功能,节点间互连充分利用了RoCE v2网络的无缩比胖树网络,单个连接能够达到24GB/s的双向通信带宽。通过RoCE v2网络协议实现双平面网络,每个平面包含2048个NPU。

该实施例中,PCIe、HCCS共同构成了多种通信协议,使系统整体能达到全胖树网络相同的性能,为全机高效通信提供了基础。除了全机规模训练外,也能有效支持各种不同规模的模型训练。多协议桥接组网技术通过有效组合片间互连和节点间互连,可以提高通信的维度、灵活度和性能。

示例性方法

本实施例的网络互连方法可应用于终端设备中。在本实施例中,如图1中所示,所述网络互连方法具体包括如下步骤:

S100,从构成各个节点的若干个NPU中选择一个NPU,记为桥接NPU。

选择计算节点中的一个NPU(表示为NPU 0)作为一级中转的“桥接”临时缓冲区,通过节点内部的PCIe和HCCS通道,分别实现与节点内的CPU及另一个平面的NPU的数据交互(即第一组处理器中的CPU与第二组处理器中的NPU数据交互)。

S200,控制各个所述节点内部的若干个所述NPU通过所述桥接NPU互连,所述互连为若干个所述NPU彼此之间相互数据传输。

在一个实施例中,步骤S200包括如下的步骤S201至S206:

S201,依据所述桥接NPU,得到所述桥接NPU中的第一桥接NPU和第二桥接NPU,所述第一桥接NPU位于所述第一组处理器内,所述第二桥接NPU位于所述第二组处理器内。

S202,控制所述第一组处理器内的若干个所述NPU通过所述第一桥接NPU互连。

S203,控制所述第二组处理器内的若干个所述NPU通过所述第二桥接NPU互连。

从每一组处理器各个NPU中都选择一个NPU作为桥接NPU,每一组处理器的其它NPU先与该桥接NPU进行数据交互。

S204,控制所述第一桥接NPU与所述第二桥接NPU互连。

各组处理器通过桥接NPU进行数据交互。

S205,控制所述第一桥接NPU与所述节点内的CPU互连。

S206,控制所述第二桥接NPU与所述节点内的CPU互连。

S300,控制内部互连之后的各个所述节点之间进行数据传输。

在一个实施例中,步骤S300具体过程如下:控制互连之后的各个所述节点的所述桥接NPU接收目标数据;控制各个所述节点的所述桥接NPU将接收的目标数据通过RoCE网络协议发送至目标计算节点。

该“桥接”NPU通过RoCE网络,将目标数据(训练神经网络模型的过程中产生的模型参数)发送到目的计算节点的内存中以保存目标数据。

在另一个实施例中,控制所述目标计算节点的所述桥接NPU接收所述目标数据;控制所述目标计算节点的所述桥接NPU将接收的所述目标数据分发至所述目标计算节点内的各个NPU。该实施例中,由目的计算节点的“桥接”NPU通过PCIe和HCCS完成数据分发。通过节点内部不同平面的NPU之间的HCCS,以及CPU-NPU之间的PCIe实现了从外部看来“网络不相连”的NPU通信,从而实现全机参数面的通信。

下面以4096张NPU卡为例,说明本发明的网络互连方法的性能:

理论上的2个网络面胖树结构的对分带宽可达12.8TB/s, PCIe对分带宽可达64TB/s。经实测,本发明的网络关键指标如表1所示:

表1

本发明提出的E级算力智能组网方式成功支持千亿参数超大规模AI模型训练,此外,平台还支持城市治理、智能交通等近二十个场景的实际应用。

在一个实施例中,如图8所示,由4个AI子集群组成,每个集群包含16个机柜,每个机柜含有8个节点,每个节点由8个NPU组成。在网络互连方面,沿用经典的Spine-Leaf两层交换网络架构: Leaf层由接入交换机组成,每个机柜连接2个Leaf交换机,汇聚来自NPU计算节点的流量,并直接连接到Spine层的交换机;Spine交换机在两层胖树拓扑中互连所有Leaf交换机。每个AI子集群共采用32个Leaf交换机以及16个Spine交换机。本实施例中的组网方式优点是网络的规模不会过分膨胀。

在另一个实施例中,如图9所示,谷歌张量处理单元(tensor processing unit,TPU)构成的TPU Pod,通常采用Mesh或3D Torus。

示例性装置

本实施例还提供一种网络互连装置,所述装置包括如下组成部分:

桥接NPU筛选模块,用于从构成各个节点的若干个NPU中选择一个NPU,记为桥接NPU;

互连控制模块,用于控制各个所述节点内部的若干个所述NPU通过所述桥接NPU互连,所述互连为若干个所述NPU彼此之间相互数据传输;

数据传输模块,用于控制内部互连之后的各个所述节点之间进行数据传输。

基于上述实施例,本发明还提供了一种终端设备,其原理框图可以如图10所示。该终端设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该终端设备的处理器用于提供计算和控制能力。该终端设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种网络互连方法。该终端设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该终端设备的温度传感器是预先在终端设备内部设置,用于检测内部设备的运行温度。

本领域技术人员可以理解,图10中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端设备的限定,具体的终端设备以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种终端设备,终端设备包括存储器、处理器及存储在存储器中并可在处理器上运行的网络互连程序,处理器执行网络互连程序时,实现如下操作指令:

从构成各个节点的若干个NPU中选择一个NPU,记为桥接NPU;

控制各个所述节点内部的若干个所述NPU通过所述桥接NPU互连,所述互连为若干个所述NPU彼此之间相互数据传输;

控制内部互连之后的各个所述节点之间进行数据传输。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 一种服务器集群的子服务器集群及其自启动加载方法
  • 一种基于神经网络结构的NPU功耗优化系统和方法
  • 一种基于NPU的家用摄像机实时人形检测方法及装置
技术分类

06120115723015