一种桥接器、加速设备互连系统及数据加速处理方法

文档序号:1904476 发布日期:2021-11-30 浏览:21次 >En<

阅读说明:本技术 一种桥接器、加速设备互连系统及数据加速处理方法 (Bridge, acceleration equipment interconnection system and data acceleration processing method ) 是由 王赟 张官兴 郭蔚 黄康莹 张铁亮 于 2021-11-02 设计创作,主要内容包括:本发明提供一种桥接器、加速设备互连系统及数据加速处理方法,应用于人工智能技术领域,其中桥接器包括第一多路复用器、第二多路复用器、多级开关互连网络、输入端口和输出端口,输入端口和输出端口成对与加速设备连接,第一多路复用器设置于输入端口与多级开关互连网络之间,用于在输入控制信号的控制下,将输入端口与多级开关互连网络连通;第二多路复用器设置于多级开关互连网络与输出端口之间,用于在输出控制信号的控制下,将多级开关互连网络与输出端口连通。通过所述桥接器,不仅可实现桥接器的端口互连,也可实现成对加速设备之间点对点的无阻塞数据交换通信,可灵活支持神经网络部署应用到基于加速芯片、加速芯片组等加速设备中。(The invention provides a bridge, an accelerating equipment interconnection system and a data accelerating processing method, which are applied to the technical field of artificial intelligence, wherein the bridge comprises a first multiplexer, a second multiplexer, a multilevel switch interconnection network, an input port and an output port, the input port and the output port are connected with accelerating equipment in pairs, and the first multiplexer is arranged between the input port and the multilevel switch interconnection network and is used for communicating the input port with the multilevel switch interconnection network under the control of an input control signal; the second multiplexer is arranged between the multilevel switch interconnection network and the output port and used for communicating the multilevel switch interconnection network with the output port under the control of the output control signal. Through the bridge, not only can the port interconnection of the bridge be realized, but also the point-to-point non-blocking data exchange communication between the pair of accelerating devices can be realized, and the neural network deployment can be flexibly supported and applied to accelerating devices based on accelerating chips, accelerating chip sets and the like.)

一种桥接器、加速设备互连系统及数据加速处理方法

技术领域

本发明涉及人工智能技术领域,具体涉及一种桥接器、加速设备互连系统及数据加速处理方法。

背景技术

随着AI(Artificial Intelligence,人工智能)技术在各领域(如算法、加速硬件等)的发展,卷积神经网络模型已逐步被应用到各行各业中,如人脸识别、安防监控、自动驾驶、语音识别等领域。

目前,将神经网络模型部署应用于多芯片互连系统时,多芯片之间需要进行数据通信,比如在将神经网络模型的输入层部署于芯片A,隐藏层部署于芯片B,此时芯片B需要从芯片A中获取数据,即芯片A与芯片B之间存在互连以进行数据通信。而且,在实际部署应用中,当部署方案不同时,需要各个芯片之间互连关系亦不同,而现有方案受到桥接器方案约束,使得在神经网络模型部署于多芯片互连系统中时,不能灵活地支持实际部署。

发明内容

有鉴于此,本说明书实施例提供一种用于神经网络模型部署中进行互连的桥接器,以及基于该桥接器进行互连应用的加速设备互连系统及数据加速处理方法,通过桥接器可实现加速设备之间互连,可提高神经网络模型部署应用灵活性,便于将神经网络推广应用于终端、边缘计算等设备中。

本说明书实施例提供以下技术方案:

本说明书实施例提供一种桥接器,可包括:第一多路复用器、第二多路复用器、多级开关互连网络、输入端口和输出端口;

所述输入端口和所述输出端口成对作为收发端口,以与具有收发通信端口的加速设备连接;

所述第一多路复用器为单输入、多输出的复用器,设置于所述输入端口与所述多级开关互连网络之间,所述第一多路复用器的各个输出各自与不同所述多级开关互连网络连接,其中所述第一多路复用器用于在输入控制信号的控制下,将所述输入端口与所述输入控制信号对应的所述多级开关互连网络连通;

所述第二多路复用器为多输入、单输出的复用器,设置于所述多级开关互连网络与所述输出端口之间,所述第二多路复用器的各个输入各自与不同所述多级开关互连网络连接,其中所述第二多路复用器用于在输出控制信号的控制下,将所述输出控制信号对应的所述多级开关互连网络与所述输出端口连通。

在其中一个实施例中,所述多级开关互连网络采用以下任意一种控制策略:级控制策略、单元控制策略、部分级控制策略。

在其中一个实施例中,所述输入控制信号包括第一时分复用信号;和/或,所述输出控制信号包括第二时分复用信号。

在其中一个实施例中,所述桥接器还包括:第一输出缓冲队列,所述第一输出缓冲队列设置于所述多级开关互连网络与所述第二多路复用器之间,其中所述第一输出缓冲队列用于对多个输入端口与所述输出端口进行互连传输的数据缓存。

在其中一个实施例中,所述桥接器还包括:第一输入缓冲队列,所述第一输入缓冲队列设置于所述第一多路复用器与所述多级开关互连网络之间,其中所述第一输入缓冲队列用于对所述输入端口与多个输出端口进行互连传输的数据缓存。

在其中一个实施例中,所述桥接器还包括:路由控制单元,所述路由控制单元用于接收所述输入端口的数据,以从接收数据中解析获得目的地址,并根据源地址和目的地址生成所述多级开关互连网络的配置指令信息,所述配置指令信息用于对所述多级开关互连网络进行配置。

在其中一个实施例中,所述路由控制单元包括路由表,所述路由表用于存储若干路由表项,以通过所述路由表项生成所述配置指令信息。

在其中一个实施例中,所述收发端口为按预设编号策略进行标识编排后的收发端口,以按编排后的标识与对应的所述加速设备互连。

本说明书实施例还提供一种加速设备互连系统,可包括多个加速设备和如前述任意一项所述的桥接器,所述加速设备的数据发送端与所述桥接器中对应的输入端口连接,所述加速设备的数据接收端与所述桥接器中对应的输出端口连接,其中所述加速设备为神经网络模型部署应用的设备。

本说明书实施例还提供一种数据加速处理方法,可应用于如前述任意一项所述加速设备互连系统,所述数据加速处理方法可包括:

根据待加速处理的神经网络模型生成所述神经网络对应的计算图,按预设的分拆策略对所述计算图进行分割以形成若干网络单元;

按预设的部署策略将分割后的网络单元加载到所述加速设备互连系统中的各个加速设备中,以对所述神经网络模型进行加速推理运算。

与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:

通过桥接器实现多各加速设备(如加速芯片、芯片组等)互连,即通过桥接器所包括的多路复用器和多级开关互连网络,按数据通信需要通过控制信号的控制,实现加速设备之间任意互连,实现成对设备之间可做到点对点的无阻塞数据交换通信。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是多芯片基于总线互连的两种网络拓扑的结构示意图;

图2是本说明书实施例提供的一种基于桥接器互连方案的结构示意图;

图3是本说明书实施例提供的一种桥接器的结构示意图;

图4是本说明书实施例提供的一种桥接器中两级开关互连的示意图;

图5是本说明书实施例提供的一种桥接器中开关互连网络的内部连接状态的示意图;

图6是本说明书实施例提供的一种桥接器的结构示意图;

图7是本说明书实施例提供的一种桥接器的结构示意图;

图8是本说明书实施例提供的一种加速设备互连系统的结构示意图;

图9是本说明书实施例提供的一种数据加速处理方法的流程图。

具体实施方式

下面结合附图对本申请实施例进行详细描述。

以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。

还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等描述的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

目前,人工智能应用场景中所使用的卷积神经网络,其结构是一种多层网络拓扑结构,每层通过若干个卷积核(权重参数)实现层间数据连接,且每个卷积核可共享上一层多个输出通道的输出数据(即每个卷积核均需要与输入通道的特征数据进行卷积求和运算),经过卷积、求和、池化、激活后作为下一层卷积运算的输入数据,卷积核数量与输出特征数据通道可相同。以此循环进行上述运算,直至输出特征向量数据或分类结果等数据,完成整个神经网络的推理运算过程。

例如,现有基于GPU、TPU等设计的卷积神经网络,其网络规模可为超大规模(如上百兆)、大模型(如数十兆)等,这时模型内部的数据通信更庞大(比如千兆以上)。

如图1所示,虽然可通过总线将多个小算力加速处理器互连后构成芯片组方案或者多核架构方案,比如图中通过互联结构1和/或互联结构2由CPU(center processingunits,中央处理器)与总线上的NPU(Neural-network Processing Unit,神经网络处理器)构成用于神经网络加速处理的芯片组或者多核架构单芯片,通信互连的总线可为PCI/PCIe/SRIO/SPI/I2C/UART/GPIO等总线。

但是,实际应用中常常受限于总线协议、互连拓扑结构(如图中示出的2种拓扑互联结构)的一些限制条件(如传输速度、加速芯片之间连接关系等),不仅实现成本高,加速处理器(即加速芯片)间的通信带宽也受到限制,很难满足神经网络模型部署应用到小算力加速处理器的应用需求。

因此,现有应用方案不仅未能低成本地部署应用大规模甚至是超大规模的卷积神经网络模型,而且这些模型甚至无法部署到基于小算力加速处理器的终端、边缘计算等设备中,或者即使部署成功亦无法满足神经网络实时加速推理运算要求。

另外,在一些场景中,如对安全性要求极高场景(如自动驾驶),还需要进行多冗余设计,进一步限制了大规模甚至是超大规模的神经网络模型的部署应用。

有鉴于此,在对神经网络模型和互连技术进行深入研究及改进后,提出了一种用于多个加速芯片互连的桥接器方案:如图2所示,桥接器包含2k个(k为正整数,图中示出的结构中k可取值4)通信链路端口,用于与k个加速设备(如加速芯片、加速芯片组等)进行互连,其中桥接器的输入端口和输出端口各k个,桥接器的一个输入端口和一个输出端口可组对形成一组收发端口,负责与具有收发通信端口的加速设备进行互连,即桥接器的每一组收发端口负责一个加速设备(或者时加速设备的一组收发通信端口)对接,实现桥接器中的输入端口和输出端口之间互连,以及实现加速设备之间互连。

例如,桥接器的第一组收发端口(如图中桥接器中编号为1的输入端和输出端构成的第一组端口)与加速设备A的端口a(如图中加速设备A的通信链路端口编号为1的输入和输出构成的端口a)互连,桥接器的第二组收发端口(如图中桥接器中编号为2的输入端和输出端构成的第二组端口)与加速设备B的端口b(如图中加速设备B的通信链路端口编号为2的输入和输出构成的端口b)互连,桥接器的第三组收发端口(如图中桥接器中编号为3的输入端和输出端构成的第三组端口)与加速设备C的端口c(如图中加速设备C的通信链路端口编号为3的输入和输出构成的端口c)互连,桥接器的第四组收发端口(如图中桥接器中编号为4的输入端和输出端构成的第四组端口)与加速设备D的端口d(如图中加速设备D的通信链路端口编号为4的输入和输出构成的端口d)互连。

实施中,如图3所示,桥接器可包括多路复用器和多级开关互连网络,其中输入端的多路复用器通过多级开关互连网络与输出端的多路复用器实现互连,从而可在复杂数据交换需要时,通过预设算法对各个开关状态实现动态控制,即通过输入控制信号和输出控制信号进行控制,实现多个加速设备之间任意互连来交换数据。

需要说明的是,多路复用器和多级开关互连网络的数量可根据需要互连的加速设备进行确定,这里不作限定。

实施中,桥接器输入端口的多路复用器可为单输入、多输出的复用器,设置于所述输入端口与所述多级开关互连网络之间,用于在输入控制信号的控制下,将所述输入端口与所述输入控制信号对应的所述多级开关互连网络连通,即接收同一加速设备(或者说加速设备的一组收发通信端口)输出的输出数据(即桥接器的某个输入端的输入数据),并在输入控制信号的控制下,将输入数据传输到对应的多级开关互连网络,进而在输出控制信号的控制下,传输至桥接器输出端口的多路复用器,最终传输至对应加速设备。其中,输出端口处的多路复用器可为多输入、单输出的复用器,设置于所述多级开关互连网络与所述输出端口之间,所述第二多路复用器的各个输入各自与不同所述多级开关互连网络连接,其中所述第二多路复用器用于在输出控制信号的控制下,将所述输出控制信号对应的所述多级开关互连网络与所述输出端口连通。

例如,前述示例中4个加速设备(即加速设备A至加速设备D),通过如图3所示的桥接器进行互连后交换数据时,比如加速设备A的输出端口连接至桥接器输入端口1,这时鉴于桥接器输入端口1的多路复用器均与桥接器内部的三个多级开关互连网络连接,如输入端口1的多路复用器分别连接到三个多路开关互连网络的输入端,因而在输入控制信号的控制下,可将加速设备A的数据向桥接器内部的三个多级开关互连网络中的任意一个网络进行传输,以及鉴于桥接器内部位于输出端口的多路复用器也与桥接器内部的三个多级开关互连网络连接,因而在输出控制信号的控制下,可将加速设备A的输出向其他三个加速设备(假设)进行传输。

实施中,在多级开关互连网络中,每个开关互连网络可为N维(N为正整数)的开关互连网络,进而每个开关互连网络可在控制策略提供的控制信号控制下,实现内部开关状态连通。

实施中,多级开关互连网络可采用如图4所示的两级开关互连网络,该两级开关互连网络是基于两级正四面体互连网络的桥接器,多级开关互连网络在控制信号的控制下,可实现4个输入端口各自与输出端口之间的互连,比如输入端口1通过第一开关和第二开关后与输出端口1连通,输入端口2通过第一开关和第四开关后与输出端口2连通,输入端口3通过第三开关和第二开关后与输出端口3连通,输入端口4通过第三开关和第四开关后与输出端口4连通。

需要说明的是,多级开关互连网络的形式可根据实际互连需要进行选取,这里不作限定;还有,多级开关互连网络的数量以及每个多级开关互连网络的级数等,可根据应用需要进行确定,这里不作限定。

实施中,可采用如图5所示的开关互连网络作为多级开关互连网络的基本单元,其中该开关互连网络具有2个输入端口和2个输出端口,在控制信号的控制下,该开关互连网络的内部状态可分别为以下4中中的一种状态:(a)直送,即输入端口与对应的输出端口连通,比如输入端口0与输出端口0连通,输入端口1与输出端口1连通;(b)交叉,即输入端口与非对应的输出端口连通,比如输入端口0与输出端口1连通,输入端口1与输出端口0连通;(c)上播,即输入端口与多个输出端口连通,比如输入端口0与输出端口0和输出端口1连通;(d)下播,即输入端口与多个输出端口连通,比如输入端口0与输出端口0和输出端口1连通。共四种状态,虚线代表连接、无虚线则代表悬空或不连接。

需要说明的是,本说明实施例中通常以直送进行示例描述,但这样的示例性说明不应构成具体限定。

通过多路复用器和多级开关互连网络,可在控制信号的控制下,各开关互连网络的内部连接状态可实现桥接器的输入端口和输出端口之间互连,因而多级开关互连网络可在预设控制策略所提供的控制信号控制下,不仅实现了桥接器输入端口和输出端口之间互连,还可实现连接于输入端口和输出端口的加速设备之间互连,即加速设备之间可基于互连进行数据通信。

因此,各级开关互连网络可在控制信号的控制下实现内部状态连通,可为成对设备之间点对点的无阻塞数据通信提供桥接路径,而且可基于实际应用需要,即根据设备之间的互连需要以及前述桥接器内部连接状态关系,通过桥接器可实现加速设备之间任意互连,以满足神经网络模型灵活部署于加速设备时的数据通信需要。

实施中,所述多级开关互连网络采用以下任意一种控制策略:级控制策略、单元控制策略、部分级控制策略。

一些实施方式中,可对每级开关互连网络进行信号控制,即采用级控制策略,实现多级开关网络内部状态互连。

以前述图4所示的交叉状态为例,第一开关和第二开关为第一级,第三开关和第四开关为第二级,构成4路输入、4路输出的基本互连网络电路,这时采用级控制信号后,各个输入端口与输出端口之间的关系可以如下表1所示。

表1互连信号控制表示列图

上表1为级控制信号下的开关的输入、输出端口互连情况。

其中,每个开关可接受至少四种状态控制信号,为了简单理解,这里只以交叉控制信号为例,使用“1”信号表示数据交换,“0”信号表示数据直输,构成根据上表1中的级控制信号,比如当第一级为“1”、第二级为“0”时,则输入端口1的信号由输出端口2输出,即数据从设备1发送至设备2,同时设备2的信号被发送到设备1,这里不再一一展开。

一些实施方式中,可针对同级、不同行之间进行单独控制,即采用单元控制策略,针对不同开关单元采用单独控制信号加以控制,可灵活地实现其他模式的互连需求。

一些实施方式中,不同级以及同级中的不同单元分别加以控制,即采用部分级控制策略,实现各个开关互连网络的内部状态互连,进一步提高互连的灵活性。

一些实施方式中,针对各个开关互连网络,可通过使用上播、下播对应的控制信号,实现单设备与多个设备之间同步互连,即实现数据广播功能,比如设备A同步向设备B至设备D进行广播数据。

一些实施方式中,可采用时分复用方式实现多个设备之间的数据通信互连交换,比如设备A向设备B发送数据,同时设备A接收设备C的数据,从而可不限于点对点间数据交换。

一些实施方式中,可通过时分复用的控制信号进行时分复用互连,其中所述输入控制信号包括第一时分复用信号;和/或,所述输出控制信号包括第二时分复用信号。

通过时分复用的控制,实现输入端口、输出端口的时分复用下的互连。

一些实施方式中,可通过在输出端口处的多路复用器前,设置输出数据缓存队列单元,可对自于多个输入端口的数据信息进行队列缓冲后向该输出端口传输,可提高无阻塞的高效数据转发性能。

如图6所示,可在多级开关互连网络与输出端口前的多路复用器之间设置缓存队列单元,这时输出缓冲队列设置于多级开关互连网络与输出端口处的多路复用器之间,可用于对多个输入端口与所述输出端口进行互连传输的数据缓存。

例如,前述实施例的4个加速设备A至加速设备D示例中,在加速设备B至加速设备D通过组合开关互连网络将数据转发至加速设备A时,各设备转发数据可分别被缓存于对应分组的缓存队列单元中,然后分别被设备A读取,从而避免了信息阻塞和因变换控制信号造成的通信延迟。

需要说明的是,这里不对缓存队列的结构及控制作具体限定,本领域的技术人员可根据实际需要设定缓存队列、读写缓存队列的数据等。

需要说明的是,为图示简洁,图中未示出输入端口处的多路复用器、多级开关互连网络等,以及途中虚线可表示开关互连网络的内部互连通路。

一些实施方式中,可通过在输入端口处的多路复用器后,设置输入数据缓存队列单元,可将输入端口的数据信息进行队列缓冲后向多个输出端口传输,可提高无阻塞的高效数据转发性能。

如图7所示,可在输入端口处的多路复用器后,设置有数据缓存队列单元,这时输入缓冲队列设置于输入端口处的多路复用器与多级开关互连网络之间,可用于输入端口与多个输出端口进行互连传输的数据缓存,从而可对同一个输入端口的数据在向多个输出端口进行传输的信息进行队列缓冲,可避免因输入带宽大于互连网络通信带宽而带来的数据拥堵,且进一步可提高输入端口链路使用率(如输入设备A的输出端口1的带宽为1Gbps,而开关互连网络内各输入端口的带宽为0.5Gbps,则开关互连网络需要两倍于设备A通信时间进行信息转发,将要求设备A等待,或者降低设备A的传输带宽)。

因此,通过在输入端的多路复用器后设置输入缓冲单元,在组合开关互连网络完成当前输入缓冲数据的转发周期内,设备A可与其他设备之间进行数据转发,大大提高了设备端口通信利用率。

一些实施方式中,桥接器还可包括路由控制单元,可通过路由控制单元进行开关状态互连控制。

实施中,路由控制单元可接收输入端(即发送端,或者称作源端)数据,解析后获得目的地址,并根据源地址和目的地址信息生成开关互连配置指令信息,经译码后生成互连电路控制信号,从而在开关互连网络中建立直连通信路径。

在一些实施方式中,路由控制单元可包括路由表,比如一个动态可维护的路由表,可通过路由表中各表项存储对应的路由控制信息,可更灵活支持神经网络模型的部署应用。

实施中,路由表是指用于保存各种传输路径的相关数据,以供路由选择时使用,其中路由表中保存着桥接器内部互连的以下若干项信息:输入端口、输出端口、多级开关互连网络的控制信号与互连状态关系信息等内容,进而通过这些表项内容快速生成配置指令信息,以对桥接器内部的输入端口、输出端口及多级开关互连网络进行互连。

需要说明的是,路由表中各表项可以是根据神经网络模型实际部署而预先设置,也可以是在部署应用后根据部署变动需要而动态调整,这里不作限定。

一些实施方式中,可将多项路由信息加入到路由表中,便于通过这些信息快速生成开关互连配置指令信息,从而生产互连控制信号。

实施中,桥接器可根据预设通信协议和当前指令令牌信息(如发送设备端标识ID+接收设备端标识ID+数据),确定源地址和目的地地址。这时,路由信息可可包括以下若干信息:桥接器ID+桥接器端口ID可作为桥接器唯一标识;芯片ID+链路端口ID作为唯一设备标识;通信指令令牌,可包括以下若干信息:指令格式类型,事务类型(如读、写等),发NUP1+端口1:3,收NUP2:3+端口1:3,数据等。

例如,互连配置指令信息定义了发送设备NPU1利用发射链路端口1:3,将数据通过桥接器1:3的端口1经过路由转发至目的地设备端NPU2的接收链路端口1:3。

一些实施方式中,可对桥接器的每组收发端口按预设编号策略进行标识编排,从而可按编排后的标识与对应的所述加速设备互连,其中加速设备(或者说加速设备的收发通信端口)也进行相应编号。

实施中,每个加速设备都有至少一个数据发送端和数据接收端,这时可将发送端和接收端组对构成收发通信端口,进而进行编号标识,从而可按编排后的标识与桥接器中对应标识的端口(输入端口和输出端口)互连。

例如,前述示例中的4个加速设备(即加速设备A至加速设备D),各加速设备的输入端口和输出端口分别编号,以及桥接器的输入端口和输出端口也分别编号,比如加速设备A的端口编号为“1”,加速设备B编号为“2”等等,而桥接器的输入端口分别编号为“1”至“4”,输出端口分别编号为“1”至“4”,这时桥接器的输入端口“1”和输出端口“1”可构成第一组端口,用于与加速设备A连接等,不再一一列举。

因此,通过对应编号后,可方便设备连接、使用管理等等。

一些实施方式中,可将设备的端口与桥接器的端口进行等价互连,通过编码可简化互连开关网络的结构。

实施中,采用多级n方体互连网络的结构作为桥接器内部的多级开关互连网络的核心单元。

实施中,可将单级立方体的网络每个顶点代表一个设备,用二进制进行编码,则可采用各顶点的编码中某一位取反后,对应的顶点可与之互连,采用多级结构可实现各顶点之间两两互连,不受对角线的顶点限制,可便捷地进行对加速设备之间的互联进行扩展。

例如,0维空间只有一点;1维空间为一条边,它有两个顶点0和1;2维空间为一平面,它有4个顶点(00,01,10,11)和4条边;3维空间为一个立方体,共有8个顶点(000,001,010,011,100,101,110,111)、12条边和6个面;4维空间共有16个顶点(0,1,2,4,…,15)、32条边、24个面、8个立方体和1个4维超方体。推而广之,N维空间的顶点可以用N位不同的0和1的系列编码来表示,其顶点的总数为2N。

例如,前述示例(如图5所示的三角体网络,三角体有四个顶点)中,可以标号(即编码)为基本工具,在由顶点Qn-1推出Qn时,每次顶点数增长一倍,把一个新的Qn-1嵌套在原Qn-1外面,再将角上的点连接即可实现扩展。

基于相同发明构思,本说明书实施例还提供一种加速设备互连系统,以支持神经网络模型部署应用。

如图8所示,加速设备互连系统可包括多个加速设备和前述任意一个实施例所述的桥接器,其中加速设备的收发端口可与桥接器的成对收发端口互连,即加速设备的数据发送端与桥接器中对应的输入端口连接,加速设备的数据接收端与桥接器中对应的输出端口连接,通过桥接器实现加速设备之间互连,从而在将神经网络模型部署于互连系统后,基于这些互连可满足神经网络加速推理运算中的数据传输需要。

实施中,加速设备可为基于小算力的处理芯片、终端、边缘计算等设备,进而通过本说明书实施例提供的加速设备互连系统,可灵活地在这些设备中部署应用神经网络模型进行推理运算加速,可支持神经网络模型推广应用。

需要说明的是,加速设备可为用于部署神经网络模型的设备,比如加速设备可为加速芯片(如NPU),也可为加速芯片组(如有多个NPU构成的芯片组),这里不作限定。还有,加速设备互连系统中还可包括有中央控制器、存储器等处理部件,这里不作限定。

基于相同发明构思,本说明书实施例还提供一种数据加速处理方法,以基于前述任意一个实施例所述的加速设备互连系统,对神经网络进行加速推理运算。

如图9所示,所述数据加速处理方法包括:

步骤S902、根据待加速处理的神经网络模型生成所述神经网络对应的计算图,按预设的分拆策略对所述计算图进行分割以形成若干网络单元;

实施中,分拆策略可包括以下任意一种策略:

(a)不同芯片运行不同层网络,即沿模型深度方向纵向拆分;

(b)不同芯片运行同一层至少一个卷积核对应的部分网络(若为多个则构成卷积核组,则该加速芯片负责当前卷积核组对应的卷积运算),即沿模型深度方向横向拆分;

(c)不同芯片运行不同层组不同卷积核部分网络,即沿模型深度方向纵向和横向拆分。

需要说明的是,计算图可为将神经网络模型的计算过程用图形表示出来的图,这里不作限定;计算图的分割可采用现有成熟的图分割方式,这里不作限定。

需要说明的是,待加速处理的神经网络模型可为一个,也可为多个(即两个及以上),因而分拆策略为针对一个或多个神经网络模型进行分拆的策略。

步骤S904、按预设的部署策略将分割后的网络单元加载到所述加速设备互连系统中的各个加速设备中,以对所述神经网络模型进行加速推理运算。

实施中,板上芯片组可为前述所述多芯片互连系统中所提供的任意一个实施例中由加速芯片互连而构成的芯片组,芯片组可为一个或者多个,这里不作限定。

实施中,加速设备的数量可以与分拆得到的网络单元的数量相同,也可以不同,这时部署策略可根据实际的部署需要进行预设、调整,比如一个加速设备(如加速芯片)只部署一个网络单元,比如一个加速设备(如加速芯片组)可部署两个及以上的网络单元,这里不作限定。

实施中,可通过向加速设备发出配置指令,以使加速设备加载对应的网络单元完成部署。

需要说明的是,加速处理方法还可根据实际应用需要而包括其他步骤,比如获取输入数据的步骤,比如加载输入数据的步骤,比如对加速处理后的数据输出的步骤等等,这里不再赘述。

通过上述步骤S902~S904,在将神经网络部署应用到基于桥接器的加速设备互连系统后,不仅可支持大规模甚至是超大规模的神经网络进行加速处理(即加速推理运算),而且可以不局限一个或多个神经网络的加速处理,从而即使加速设备为基于小算力加速处理器的设备,仍可为大规模神经网络模型的推理运算提供良好的技术基础,很好地支持加速处理中设备之间互连及数据通信,提高了目前处理器、终端、边缘计算等设备部署应用神经网络模型的能力。

需要说明的是,对于其他复杂神经网络模型,可通过配置桥接器实现多种NPU拓扑连接关系及芯片间通信方式,这里不再赘述。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例侧重说明的都是与其他实施例的不同之处。尤其,对于后面说明的实施例而言,由于其与前面的实施例是对应的,描述比较简单,相关之处参见在前实施例的部分说明即可。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种芯片配置方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!