基于CPU-NPU协同的高扩展节点系统及训练方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于CPU-NPU协同的高扩展节点系统及AI训练方法。
背景技术
随着人工智能(artificial intelligence,AI)技术的迅速发展以及广泛应用,AI算力需求也在快速增长。在2012-2021年基于算力需求的AI发展趋势显示,每3.5个月AI算力需求即上升1倍,远超过摩尔定律的增长要求,近年来先进的AI模型以预训练大模型为核心。AI大模型基于大量数据,利用深度学习技术将数据的分布和特征整合在一个具有巨大参数量的神经网络之中,打造一个超大规模参数、超高精度的预训练大模型。通过与行业知识进行结合,大模型能快速实现不同场景的适配,加速AI行业应用。作为近年来AI研究的前沿,AI大模型由于其巨大的参数量提出了对E级AI算力(即每秒百亿亿次AI数学运算)系统的需求。为实现E级AI算力,CPU-NPU节点架构的设计至关重要,需要通过CPU-NPU协同设计,实现节点的高扩展性,实现节点内CPU-CPU之间、CPU-NPU之间及NPU-NPU之间的高速通讯,以及支持节点-节点之间的高速通讯,以满足超大规模AI模型训练的算力性能要求和数据传输速率要求。
国际上先进的E级智能计算系统采用的是CPU-GPU节点架构,采用了IBM Power9的CPU处理器和NVIDIA Volta架构的GPU处理器,GPU之间都采用NVLINK互连,兼顾了常规科学计算、人工智能以及新的混合精度计算的需求。由于这些系统均采用GPU处理器提供的AI算力,并在NVIDIA GPU架构上建立软件栈和AI应用框架,这一技术体系无法满足AI关键技术软硬件的国产化需求。因此,如何实现AI算力-层次访存-片间互连均衡设计,以满足AI大模型训练需求是当前大环境下亟需解决的问题。
因此,现有技术还有待于改进和发展。
发明内容
本发明的主要目的在于提供一种基于CPU-NPU协同的高扩展节点系统及AI训练方法,旨在解决现有技术中AI算力-层次访存-片间互连设计的不均衡,导致无法满足AI大模型训练需求的问题。
为实现上述目的,本发明提供基于CPU-NPU协同的高扩展节点系统,所述基于CPU-NPU协同的高扩展节点系统包括:通用算力模块、AI算力模块、层次访存模块、数据缓存模块和网络接口模块;
所述通用算力模块分别与所述AI算力模块、所述层次访存模块、所述数据缓存模块和所述网络接口模块连接,所述层次访存模块与所述AI算力模块连接,所述网络接口模块与所述AI算力模块连接;
所述通用算力模块和所述AI算力模块进行分组互连,用于AI节点内片间互连的扩展;
所述层次访存模块用于在所述通用算力模块与所述AI算力模块处理数据时提供通用计算的大内存和AI计算的高带宽;
所述数据缓存模块用于处理所述通用算力模块在计算时的数据IO吞吐;
所述网络接口模块用于将所述通用算力模块和所述AI算力模块在计算时进行分离通信。
可选地,所述的基于CPU-NPU协同的高扩展节点系统,其中,所述通用算力模块包括四个CPU处理器,其中,每个CPU处理器通过HCCS高速互联通道与另外三个CPU处理器形成全互联模式连接。
可选地,所述的基于CPU-NPU协同的高扩展节点系统,其中,所述AI算力模块包括八个NPU处理器,其中,每个NPU处理器通过PCIe接口连接一个CPU处理器。
可选地,所述的基于CPU-NPU协同的高扩展节点系统,其中,所述基于CPU-NPU协同的高扩展节点系统,还包括:
将八个所述NPU处理器平均分为两组,并将每组中的四个所述NPU处理器组成一个对称多处理器系统,其中,所述对称多处理器系统中的每个NPU处理器通过HCCS高速互联通道与另外三个NPU处理器形成全互联模式连接。
可选地,所述的基于CPU-NPU协同的高扩展节点系统,其中,所述层次访存模块包括DDR4内存和HBM内存,其中,所述DDR4内存通过内存访问通道与CPU处理器连接,所述HBM内存通过内存访问通道与NPU处理器连接。
可选地,所述的基于CPU-NPU协同的高扩展节点系统,其中,所述数据缓存模块包括六个NVMe SSD固态硬盘,其中,基于六个所述NVMe SSD固态硬盘构建预定容量的BurstBuffer高性能数据缓冲层。
可选地,所述的基于CPU-NPU协同的高扩展节点系统,其中,所述网络接口模块包括八个100GE网口,其中,每个所述100GE网口通过RoCEv2协议连接一个所述NPU处理器。
可选地,所述的基于CPU-NPU协同的高扩展节点系统,其中,所述预定容量为19.2TB。
可选地,所述的基于CPU-NPU协同的高扩展节点系统,其中,所述Burst Buffer高性能数据缓冲层支持两种使用模式;其中,第一种使用模式为通过单个节点的NVMe SSD固态硬盘作为缓冲区;第二种使用模式为联合多个节点的NVMe SSD固态硬盘建立临时并行文件系统。
可选地,所述的基于CPU-NPU协同的高扩展节点系统方法方法,其中,所述HCCS高速互联通道的单向数据传输带宽为30GB/s。
此外,为实现上述目的,本发明还提供一种基于CPU-NPU协同的高扩展节点系统的AI训练方法,其中,所述的AI训练方法包括:
获取AI训练数据,将所述通用算力模块和所述AI算力模块进行分组互连得到高扩展节点系统,并对所述高扩展节点系统配置所述网络接口模块;
所述高扩展节点系统基于所述层次访存模块对所述AI训练数据进行运算得到目标数据,并将所述目标数据存储至所述数据缓存模块,其中,所述层次访存模块的使用模式包括第一模式和第二模式。
可选地,所述的AI训练方法,其中,所述第一模式为通过单个节点的NVMe SSD固态硬盘作为缓冲区。
可选地,所述的AI训练方法,其中,所述第二模式为联合多个节点的NVMe SSD固态硬盘建立临时并行文件系统。
本发明中的基于CPU-NPU协同的高扩展节点系统包括通用算力模块、AI算力模块、层次访存模块、数据缓存模块和网络接口模块;通用算力模块分别与AI算力模块、层次访存模块、数据缓存模块和网络接口模块连接,层次访存模块与AI算力模块连接,网络接口模块与AI算力模块连接;通用算力模块和AI算力模块进行分组互连,用于AI节点内片间互连的扩展;层次访存模块用于在通用算力模块与AI算力模块处理数据时提供通用计算的大内存和AI计算的高带宽;数据缓存模块用于处理通用算力模块在计算时的数据IO吞吐;网络接口模块用于将通用算力模块和AI算力模块在计算时进行分离通信。本发明从AI节点的互连、访存、存储、网络接口出发提出高扩展节点架构,实现AI算力-层次访存-片间互连均衡设计,以满足AI大模型训练需求。
附图说明
图1是本发明中基于CPU-NPU协同的高扩展节点系统的较佳实施例的原理示意图;
图2是本发明中基于CPU-NPU协同的高扩展节点架构的整体示意图;
图3是本发明中的AI训练方法的较佳实施例的流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
需要说明,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
本发明较佳实施例所述的基于CPU-NPU协同的高扩展节点系统,如图1所示,所述基于CPU-NPU协同的高扩展节点系统包括:通用算力模块10、AI算力模块20、层次访存模块30、数据缓存模块40和网络接口模块50;所述通用算力模块10分别与所述AI算力模块20、所述层次访存模块30、所述数据缓存模块40和所述网络接口模块50连接,所述层次访存模块30与所述AI算力模块20连接,所述网络接口模块50与所述AI算力模块20连接;所述通用算力模块10和所述AI算力模块20进行分组互连,用于AI节点内片间互连的扩展;所述层次访存模块30用于在所述通用算力模块10与所述AI算力模块20处理数据时提供通用计算的大内存和AI计算的高带宽;所述数据缓存模块40用于处理所述通用算力模块10在计算时的数据IO吞吐;所述网络接口模块50用于将所述通用算力模块10和所述AI算力模块20在计算时进行分离通信。
具体地,现有AI节点的节点设计中,每个节点包含2个CPU(Central ProcessingUnit,中央处理器)加上6个GPU(Graphics Processing Unit,图形处理器),其中这6个GPU之间通过15条双向通道实现全互连,然而,这种全互连设计缺乏扩展性,在包含更多AI芯片的节点上需要的片间通信通道数量随芯片数量平方增长,带来更大的成本;在本发明中的基于CPU-NPU协同的高扩展节点系统通过对CPU和NPU(Neural-network ProcessingUnits,嵌入式神经网络处理器)进行分组互连,解决了AI节点内片间互连的扩展性问题;如图2中的通用算力(通用算力模块10)和AI算力(AI算力模块20),所述通用算力包含4个CPU处理器(例如,CPU1、CPU2、CPU3和CPU4),所述AI算力包括8个NPU处理器(即AI处理器,例如,AI处理器1、AI处理器2、AI处理器3、AI处理器4、AI处理器5、AI处理器6、AI处理器7和AI处理器8);将这12个处理器共分为3组:4个CPU处理器构成一组;8个AI处理器平均分为两组(例如,第一组:AI处理器1、AI处理器2、AI处理器3和AI处理器4;第二组:AI处理器5、AI处理器6、AI处理器7和AI处理器8)。
其中,构成一组的4个CPU处理器之间同样通过HCCS实现互联,每个CPU处理器通过HCCS专用高速互联通道和其它3个CPU形成full mesh(全互联模式,即所有结点之间都直接连接的形式)连接,每个HCCS专用高速互联链路提供单向30GB/s的理论带宽,合计有90GB/s的单向带宽连接到其他CPU处理器;将一组的4个AI处理器组成1个对称多处理器(SMP)系统,共2个SMP系统;SMP系统内每个AI处理器通过3条HCCS专用高速互联通道和其它3个AI处理器形成full mesh连接,每条HCCS专用高速互联通路提供30GB/s的单向数据传输带宽,每个AI处理器合计有90GB/s的单向带宽连接到其他AI处理器;这种对8个AI处理器的分组设计可以实现高扩展性;若按传统方案将8个AI处理器之间组成全互连,将需要28个双向通信通道,带来巨大的成本;因此,通过本发明的架构可节省大量成本;另外,AI处理器和CPU处理器间使用PCIe(peripheral component interconnect express,外部设备互连总线接口,PCI-Express是一种高速串行计算机扩展总线标准)连接,每个AI处理器通过1条PCIe4.0 x16和1个CPU连接,每条PCIe 4.0 x16提供32GB/s的单向数据传输理论带宽,合计CPU组和一个NPU组之间能够实现128GB/s的通信带宽。
进一步地,现有的访存一般使用的是DDR4内存和HBM内存(High BandwidthMemory,高带宽存储器)两种类型;其中DDR4内存具有大容量,可满足通用计算的访存需求,但其带宽较小,无法满足AI计算的需求;HBM内存则具有比DDR4更大的带宽,可以满足AI计算的需求,但其较小的容量无法满足CPU通用计算的需求,故存在带宽与容量的矛盾的问题;本发明如图2中的基于CPU-NPU协同的高扩展节点系统通过采用层次访存架构(即层次访存模块30),结合使用DDR4内存和HBM内存,避免了单一访存架构下导致的带宽和容量之间的矛盾;在CPU通用算力对应使用DDR4通用内存,每颗CPU都通过内存访问通道与DDR4通用内存相连,4颗CPU共享使用2TB大小的DDR4通用内存;每个CPU最多支持8个DDR4 DIMM,一个节点最多支持32个DDR4内存插槽,单根内存条容量支持32GB/64GB,支持RDIMM,DDR4内存设计速率最大可达2933MT/s;而NPU处理器使用HBM内存,以支持AI计算的高带宽内存需求;每个NPU处理器带有32GB的HBM内存,HBM内存访存速率达到1228GB/s;层次访存架构通过有效结合DDR4和HBM两种内存的优点,可实现在满足通用计算大量内存需求的同时高效支持AI计算的高带宽需求。
进一步地,AI训练的特点是需要对大量训练数据进行计算,造成大量的数据吞吐,其中往往涉及到大量文件系统元数据的访问,IOPS(Input/Output Operations PerSecond,用于计算机存储设备)性能要求高,常规存储系统无法满足大规模训练的要求,造成IO等待时间过长,降低训练计算效率,影响到资源利用率;本发明中的基于CPU-NPU协同的高扩展节点系统中数据缓存模块40,所述数据缓存模块40包括六个NVMe SSD固态硬盘(Non-Volatile Memory Express Solid State Drives,非易失性内存主机控制器接口规范的固态硬盘),并由6块NVMe SSD构成Burst Buffer高性能数据缓冲层以解决AI计算中的大量数据IO吞吐造成的瓶颈;如图2所示,通过配置由6块NVMe SSD构成19.2TB的BurstBuffer高性能数据缓冲层,还可以在常规存储系统之上添加一层贴近计算节点的智能缓冲;相比于传统的HDD机械硬盘(Hard Disk Drive机械硬盘),使用支持PCIe接口协议的NVMe SSD固态硬盘作为高性能缓存,可以缓解HDD硬盘较低的读写速度问题造成的数据吞吐瓶颈;其中,所述Burst Buffer高性能数据缓冲层支持多种使用模式:一种模式是直接用单个节点上的盘作为缓冲区;另一种是联合多个节点上的盘建立临时并行文件系统,从而提供更大的容量和更高性能。针对不同应用场景对数据吞吐速度的需求,可以在两种模式中进行选择。
进一步地,传统的服务器上仅提供单一类型的网络接口,不能满足多样化的业务需求,特别是不能同时满足CPU通用计算以及AI模型训练之间差异化的通信需求;本发明中的基于CPU-NPU协同的高扩展节点系统中网络接口模块50,所述网络接口模块50包括八个用于AI计算的100GE网口,实现多样化需求;如图2所示,每个计算节点可提供板载8个用于AI计算的100GE网口,可支持100G光纤或铜缆,通过RoCEv2(网络层协议)协议实现AI处理器跨网络级别的直接访问,单个连接达到24GB/s的双向通信带宽,整个节点实现800 Gb/s的AI计算聚合带宽,满足AI大模型训练中所需的高带宽通信能力;同时,每个计算节点也提供了2个CPU通用计算的网络接口,实现CPU处理器的通用计算聚合带宽达到200 Gb/s,满足应用运行中AI参数交换以外的其余通信需求。通过AI计算和通用计算分离通信的设计可以实现让硬件设计针对性地提升AI参数交换带宽,用优先硬件资源实现最大化的AI计算性能提升。
进一步地,本发明中的基于CPU-NPU协同的高扩展节点系统可以实现具有高扩展性的AI计算节点,其单节点指标如下表所示。
基于CPU-NPU协同设计的高扩展节点架构通过AI算力-层次访存-片间互连均衡设计,基于NPU实现单节点可有效扩展到2P级AI算力,并同时通过CPU提供较强通用处理和数据吞吐能力,可以有效支持大模型所需海量参数和计算高效扩展,提高全训练流程的IO和处理效率,并实现硬件高密度和高能效;还基于CPU-NPU协同设计的高扩展节点架构建造出自主可控的E级智能算力系统,该系统以NPU和CPU芯片为核心算力,计算节点、网络设备、集群软件全面实现国产化;此系统共拥有512个计算节点,包括4096块人工智能计算昇腾910NPU和2048个鲲鹏920 CPU处理器。集群FP16峰值算力1153.146P ops,FP64算力1.0224Pflops,总内存容量1024TB,总存储容量169.983PB,网络参数单向带宽365.131Tb/s。
进一步地,基于图1所示的基于CPU-NPU协同的高扩展节点系统,本发明较佳实施例所述的基于CPU-NPU协同的高扩展节点系统的AI训练方法,如图3所示,所述AI训练方法方法包括以下步骤:
步骤S10、获取AI训练数据,将所述通用算力模块和所述AI算力模块进行分组互连得到高扩展节点系统,并对所述高扩展节点系统配置所述网络接口模块;
步骤S20、所述高扩展节点系统基于所述层次访存模块对所述AI训练数据进行运算得到目标数据,并将所述目标数据存储至所述数据缓存模块,其中,所述层次访存模块的使用模式包括第一模式和第二模式。
具体地,将需要训练的AI训练数据输入至基于CPU-NPU协同的高扩展节点系统中,所述高扩展节点系统基于所述层次访存模块对所述AI训练数据进行运算得到目标数据,并将所述目标数据存储至所述数据缓存模块;其中,所述层次访存模块的使用模式包括第一模式和第二模式,针对不同应用场景对数据吞吐速度的需求,可以在两种模式中进行选择;所述第一模式为通过单个节点的NVMe SSD固态硬盘作为缓冲区;所述第二模式为联合多个节点的NVMe SSD固态硬盘建立临时并行文件系统。
综上所述,基于CPU-NPU协同的高扩展节点系统及训练方法,所述系统包括:通用算力模块、AI算力模块、层次访存模块、数据缓存模块和网络接口模块;通用算力模块分别与AI算力模块、层次访存模块、数据缓存模块和网络接口模块连接,层次访存模块与AI算力模块连接,网络接口模块与AI算力模块连接;通用算力模块和AI算力模块进行分组互连,用于AI节点内片间互连的扩展;层次访存模块用于在通用算力模块与AI算力模块处理数据时提供通用计算的大内存和AI计算的高带宽;数据缓存模块用于处理通用算力模块在计算时的数据IO吞吐;网络接口模块用于将通用算力模块和AI算力模块在计算时进行分离通信。本发明从AI节点的互连、访存、存储、网络接口出发提出高扩展节点架构,实现AI算力-层次访存-片间互连均衡设计,以满足AI大模型训练需求。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的计算机可读存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的计算机可读存储介质可为存储器、磁碟、光盘等。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。