计算集群及计算集群配置方法
技术领域
本发明涉及计算机领域,特别涉及计算集群及计算集群配置方法。
背景技术
深度神经网络是近几年机器学习领域的流行话题,在许多任务上取得了先进的成果。
深度神经网络在正式投入使用前需要进行训练。训练神经网络模型需要大量的内存和计算资源。因此,单一计算机所能提供的内存和计算资源是远远不够的。
发明内容
有鉴于此,本发明提供用于训练深度神经网络的计算集群及计算集群配置方法。
为了实现上述发明目的,本发明提供以下技术方案:
一种计算集群,应用于训练深度神经网络;
待训练的深度神经网络所包含的单层网络数量为N,N为自然数;其中,每一所述单层网络包含多个功能节点;任一单层网络表示为第i层网络;i小于等于N;
所述计算集群包括:
与N层单层网络一一对应的子计算集群;其中,与所述第i层单层网络相对应的子计算集群为第i子计算集群;
所述第i子计算集群中的计算节点与所述第i层单层网络中的功能节点一一对应;
所述计算节点包括至少一个基本计算模块;每一基本计算模块包括点对点全互联的m个加速卡,每一所述加速卡包括芯片级点对点全互联的n个人工智能芯片;m为不小于2的自然数;n为自然数;
任一基本计算模块与相邻的基本计算模块间通过芯片级点对点连接实现互联。
可选的,还包括:调度器,用于将所述计算集群中的所有人工智能芯片划分至多个虚拟分片中,以支持多租户。
可选的,所述调度器还用于:在大规模计算过程中,调度负载至虚拟分片上。
可选的,所述计算节点包括一个或多个机柜,每一机柜中安置至少一个机箱;每一机箱中安置至少一个所述基本计算模块;或者,所述计算节点包括一个或多个机箱,每一机箱中安置至少一个所述基本计算模块。
可选的,相邻机柜间通过芯片级点对点连接实现互联;相邻机箱间通过芯片级点对点连接实现互联;同一机箱内的相邻基本计算模块间,通过芯片级点对点连接实现互联。
一种计算集群配置方法,应用于训练深度神经网络;
待训练的深度神经网络所包含的单层网络数量为N,N为自然数;其中,每一所述单层网络包含多个功能节点;任一单层网络表示为第i层网络;i小于等于N;
所述方法包括:
配置与N层单层网络一一对应的子计算集群;其中,与所述第i层单层网络相对应的子计算集群为第i子计算集群;
配置所述第i子计算集群中的计算节点与所述第i层单层网络中的功能节点一一对应;其中,所述计算节点包括至少一个基本计算模块;每一基本计算模块包括点对点全互联的m个加速卡,每一所述加速卡包括芯片级点对点全互联的n个人工智能芯片;m为不小于2的自然数;
将任一基本计算模块与相邻的基本计算模块间配置为芯片级点对点连接以实现互联。
可选的,还包括:使用所述计算集群中的调度器,将所述计算集群中的所有人工智能芯片划分至多个虚拟分片中,以支持多租户。
可选的,还包括:在大规模计算过程中,使用所述调度器调度负载至虚拟分片上。
可选的,所述计算节点包括一个或多个机柜,每一机柜中安置至少一个机箱;每一机箱中安置至少一个所述基本计算模块;或者,所述计算节点包括一个或多个机箱,每一机箱中安置至少一个所述基本计算模块。
可选的,相邻机柜间通过芯片级点对点连接实现互联;相邻机箱间通过芯片级点对点连接实现互联;同一机箱内的相邻基本计算模块间,通过芯片级点对点连接实现互联。
可见,在本发明实施例中,子计算集群与待训练的深度神经网络中的单层网络相对应,子计算集群中的计算节点与相应单层网络中的功能节点一一对应,因此,本发明实施例中的计算集群可根据深度学习的应用需求组成相应的拓扑结构,可为训练深度网络提供解决方案。
同时,每一计算节点中又进一步包括基本计算模块,在基本计算模块中的加速卡可在训练过程中提供内存和计算能力。在基本计算模块内部,加速卡间为点对点全互联,加速卡内部的人工智能芯片也为点对点全互联,适合具有数据交换特征的应用。在相邻基本计算模块之间,同样通过芯片级的直接点对点互联,无中间层传输,为基本计算模块间的高速、低时延的数据交换提供了硬件支持。
因此,本发明实施例所提供的计算集群,除可提供远超单一计算机的内存和计算资源外,还可根据深度学习的应用需求组成相应的拓扑结构,并支持高速、低时延的数据交换。
附图说明
图1为本发明实施例提供的计算集群与深度神经网络的拓扑对应关系示意图;
图2a和图2b为本发明实施例提供的基本计算模块内个人工智能芯片点对点全互联的示意图;
图3为本发明实施例提供的相邻基本计算模块间芯片级点对点互联的示意图;
图4为本发明实施例提供的机箱内芯片点对点互联的示意图;
图5为本发明实施例提供的芯片连接示意图;
图6为本发明实施例提供的多机柜间芯片连接示意图;
图7a-7d为本发明实施例提供的现有计算集群的结构示意图。
具体实施方式
本发明实施例公开了计算集群, 以为训练深度神经网络提供解决方案。
上述计算集群的拓扑结构与待训练的深度神经网络的拓扑结构相对应,以根据深度学习的应用需求组成不同的拓扑结构。
图1示出了计算集群与深度神经网络的拓扑对应关系。
待训练的深度神经网络所包含的单层网络A数量为N(N为自然数)。其中,每一单层网络A包含多个功能节点a。
而计算集群则包括:与上述N层单层网络一一对应的子计算集群C。
为称呼方便,可将任一单层网络A表示为第i层网络(Ai),i小于等于N,将与第i层单层网络相对应的子计算集群为第i子计算集群(Ci)。
Ci中的计算节点cn与Ai的功能节点a一一对应。
进一步的,每一计算节点cn包括至少一个基本计算模块。而每一基本计算模块包括芯片级点对点全互联的m个加速卡,每一加速卡包括芯片级点对点全互联的n个人工智能芯片。
具体的,人工智能芯片包括但不限于:CPU(Central Processing Unit,中央处理器)GPU(Graphics Processing Unit,图形处理器)、FPGA(Field-Programmable GateArray,现场可编程门阵列)、ASIC(Application Specific Integrated Circuits,专用集成电路)以及类脑芯片。
上述m为不小于2的自然数,n为自然数,本领域技术人员可根据需要灵活设计m、n的取值,在此不作赘述。
m=4时,加速卡0-3间的点对点全互联请参见图2a或2b。
并且,在本实施例中,请参见图3,任一基本计算模块与相邻的基本计算模块间也是通过芯片级点对点连接实现互联(图3以带三角的示意线表示相邻基本计算模块间的芯片级点对点连接)。
芯片级点对点连接的具体实现方式包括但不限于:芯片间通过高速连接器和高速数据线以电信号的方式传输数据。
可见,在本发明实施例中,子计算集群与待训练的深度神经网络中的单层网络相对应,子计算集群中的计算节点与相应单层网络中的功能节点一一对应,因此,本发明实施例中的计算集群可根据深度学习的应用需求组成相应的拓扑结构,可为训练深度网络提供解决方案。
同时,每一计算节点中又进一步包括至少一个基本计算模块,在基本计算模块中的加速卡可在训练过程中提供内存和计算能力。在基本计算模块内部,加速卡间为芯片级点对点全互联,加速卡内部的人工智能芯片也为点对点全互联,适合具有数据交换特征的应用。在相邻基本计算模块之间,同样通过芯片级的直接点对点互联,无中间层传输,为基本计算模块间的高速、低时延的数据交换提供了硬件支持。
因此,本发明实施例所提供的计算集群,除可提供远超单一计算机的内存和计算资源外,还可根据深度学习的应用需求组成相应的拓扑结构,并支持高速、低时延的数据交换。
在实际应用中,可将至少一个基本计算模块安装在机箱中,机箱内安装的基本计算模块可以是以下数量的任意一种:4,8,16…2M卡,其中M表示倍数,M为不小于2的正整数。
以一个机箱中包括两基本计算模块,每一基本计算模块包括芯片级点对点全互联的4个加速卡为例,则一个机箱中包括8个加速卡(以0-7表示)。
在一个示例中,每一基本计算模块上的4个加速卡中,可有2个加速卡用于机箱内部的芯片级点对点互联。
例如,请参见图4,加速卡2、3、4、5中的人工智能芯片可用于同一机箱内相邻基本计算模块间的芯片级点对点互联。
前述提及计算节点包括至少一个基本计算模块,则在本实施例中,一个计算节点可包括一个或多个机箱,或者,一个计算节点可包括一个机箱内的部分基本计算模块。
为进一步节省空间,在本发明其他实施例中,上述一个或一个以上的机箱可安装在同一个机柜中。
并且,在本实施例中,相邻机箱间通过芯片级点对点连接实现互联。当需要使用多个机柜时,相邻机柜间亦可通过芯片级点对点连接实现互联。
以一个机箱中包括两个基本计算模块,一基本计算模块包括芯片级点对点全互联的4个加速卡为例,上述4个加速卡中,除2个加速卡用于机箱内部的点对点互联外,其余2个加速卡中的人工智能芯片可用于机箱间或机柜间的芯片级点对点连接。
以0-7表示一个机箱中的8个加速卡,请参见图5,加速卡2、3、4、5中的人工智能芯片可用于同一机箱内相邻基本计算模块间的芯片级点对点互联; 加速卡0、1、2、6、7中的人工智能芯片可用于通过带矩形的示意线连接到相邻机箱或者机柜对应的端口。
在多机柜情况下,加速卡间的点对点连接可参见图6。
前述提及计算节点包括至少一个基本计算模块,则在本实施例中,一个计算节点可包括一个或多个机箱,或者,一个计算节点可包括一个或多个机柜,或者,一个计算节点可包括一个机箱内的部分基本计算模块。
深度神经网络在实际应用中,可能需要支持多租户。为满足上述需求,在本发明其他实施例中,上述计算集群可包括调度器。
调度器可用于将计算集群中的所有加速卡划分至多个虚拟分片中,以支持多租户。
调度器可以灵活支持不同大小的虚拟分片,一个虚拟分片可包括4、8、16,以及32整数倍(例如32、64等)个节点,这里的节点可指加速卡或基本计算模块。
虚拟分片内部的加速卡之间因为存在局部的全连接拓扑结构,适合具有数据交换特征的应用。
在大规模计算时,调度器还可以将相应的负载调度到这些全连接的虚拟分片上。
可见,本实施例可实现:
高效、可扩展的多节点(单机柜,多机柜)集群组网;
支持节点内点对点高速IO连接;
支持节点间点对点高速IO连接;
支持大规模计算时高效负载分配和协同。
与之相比,现有的计算集群在实现多系统(包含多机箱,多个机柜)互联时,主要是通过连接到PCIE Switch 上的EDR InfiniBand卡或者其他类型的高速网卡,来实现人工智能芯片间的数据交换。
图7a示出了一种现有的计算集群,该计算集群包括多个系统,系统内所有加速卡没有互联,仅可通过系统内的服务器主板中的PCIE Switch实现同一PCIE switch下多卡互联;而系统间则使用EDR InfiniBand卡或者其他类型的高速网卡互联。
图7b示出了另一种现有的计算集群,该计算集群同样包括多个系统,系统内4芯片点对点互联,系统间使用EDR InfiniBand卡或者其他类型的高速网卡互联。
图7c示出了第三种现有的计算集群,该计算集群同样可包括多个系统,系统内8卡或者16卡通过高速Switch实现点对点互联;系统间使用EDR InfiniBand卡或者其他类型的高速网卡互联。
图7d示出了第四种现有的计算集群,该计算集群同样可包括多个系统,系统间通过BlueLink进行大规模加速卡连接,并构成计算池。
现有的计算集群在以下方面存在技术缺点:
一,在板卡系统内部互联方面:
板卡间无点对点互联,最多支持4卡内互联,甚至不支持4卡内互联。
二,在系统间互联方面:
系统间数据交换需要经过PCIE Switch到EDR InfiniBand卡,再经InfiniBan交换机,然后再经过另一个系统的InfiniBand卡和PCIE Switch。这造成了:
1,数据链路长,数据交换延迟大;
2,互联的效率和带宽低,因为系统间互联速度低于系统内芯片互联速度;
3,成本高,一个系统需要4张EDR InfiniBand卡、光Cable和交换机;
4,整体方案功耗高,因为需要EDR InfiniBand的全套设备;
三,在大规模连接方面:
邻近加速卡之间只有单线连接方式,除直接相连,加速卡之间需要通过寻径和多跳传输数据;
加速卡外部连接接口少,限制了加速卡组网的拓扑结构,较难根据实际应用的计算需求调整连接方式。
而本发明实施例则具有如下优势:
1,基本计算模块内的人工智能芯片间的点对点互联;
2,在多系统(包含机箱、机柜)间实现芯片级的点对点互联,无需通过PCIE switch和EDR InfiniBand卡;
3,高带宽,比特率>=25Gbps,带宽>=50GBps/Channel,突破了现有方案中PCIE Gen的比特率(8Gbps),以及 PCIE Gen4的比特率(16Gbps);
4,低延迟:通过芯片级的点对点互联,无需通过PCIE switch,EDR InfiniBand卡和交换机的数据传输,减少了中间层传输;
5,低成本:无需EDR InfiniBand等相关设备;
6,高效、可扩展:以基本计算模块为基础,在一个系统中任意组合4加速卡,8加速卡,16加速卡,甚至更多;
7,支持大规模计算时高效负载分配和协同。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。