网算一体的芯粒间路由器及数据包聚合方法技术

技术编号:36705415 阅读:16 留言:0更新日期:2023-03-01 09:26
本发明专利技术公开了一种网算一体的芯粒间路由器,包括输入缓存、仲裁器、解析器、网内运算单元、路由计算单元、交叉开关和输出缓存。本发明专利技术通过在芯粒间路由器中增加解析器和网内运算单元,使其能够对正在转发的数据包进行聚合操作。本发明专利技术还定义了新的数据包格式,以配合解析器和网内运算单元工作。本发明专利技术还提出了归约树路由算法以配合芯粒间路由器工作,使得更多的数据包能够在同一个芯粒间路由器中相遇,尽可能多的执行聚合操作。可能多的执行聚合操作。可能多的执行聚合操作。

【技术实现步骤摘要】
网算一体的芯粒间路由器及数据包聚合方法


[0001]本专利技术涉及多芯粒集成电路
,具体涉及一种网算一体的芯粒间路由器及数据包聚合方法。

技术介绍

[0002]多芯粒集成系统是把一些实现特定功能的芯粒(裸片)通过先进的封装技术整合为特定功能的系统芯片,与传统的单芯片集成方式相比,多芯粒集成技术在芯片性能功耗优化、成本以及商业模式多方面具有优势和潜力。深度神经网络(DNN)通过分割训练数据集/模型的方式部署到多芯粒集成系统上运行。每个芯粒并行处理训练数据中的不同子集来训练模型的本地副本,各芯粒处理完成后汇总训练结果,对参数进行汇总,再广播给各个节点更新本地模型,然后进行下一轮迭代。
[0003]在上述过程中,各芯粒向同一个芯粒传输数据的过程称为归约,一个芯粒向其它所有芯粒传输数据的过程称为广播。在一个归约过程和一个广播过程共同组成一次all reduce。all reduce其实是一种通信过程,将不同芯粒中的数据归约之后再把结果分发给各个芯粒。
[0004]现有技术中,即使是对于计算密集型应用,如神经网络训练任务,all reduce也可能成为性能瓶颈。由于多芯粒集成系统中芯粒与芯粒之间的通信带宽受限,跨芯粒的网络通信相较于芯粒内部通信耗时更长,深度神经网络在参数汇总阶段,如果网络传输速率慢,更易造成网络拥塞,增大网络延迟,从而导致整体性能下降,因此网络的通信性能成为了训练时的性能瓶颈。
[0005]目前针对all reduce的过程优化方法主要分为软件方法与硬件方法两种。软件算法有如文献J.PjeSivac

Grbovic.T.Angskun.G.Bosilca.G.E.Fagg.E.Gabriel.and J.J.Dongarra,

Performance analysis of mpi collective operations;'Cluster Computing.vol.10.no.2.pp.127

143.2007和文献R.Rabenseifner."Optimization of collective reduction operations."In International Conference on Computational Science.Springer.2004.pp.I

9等,但这些算法增加了系统中的通讯量,导致了高延迟。硬件方法主要针对多台计算机组成的大规模并行系统,通过在交换机中集成运算单元以实现数据传输前先汇总数据以减少数据的传输量,但是此种设计针对的网络流量粒度较大,对运算单元功能要求复杂,因此并不能直接移植到芯片面积受限的多芯粒集成系统中。

技术实现思路

[0006]本专利技术的目的是为了解决现有技术中的上述缺陷,提供一种网算一体的芯粒间路由器及数据包聚合方法。
[0007]本专利技术的第一个目的可以通过采取如下技术方案达到:
[0008]一种网算一体的芯粒间路由器,所述路由器包括N个输入缓存、1个仲裁器、N个解析器、1个网内运算单元、N+1个路由计算单元、1个交叉开关和N个输出缓存,其中,
[0009]所述输入缓存连接芯粒或另一个芯粒间路由器的输出缓存,接收另一个芯粒间路由器的输出缓存传出的数据包或芯粒传出的数据包,并将数据包缓存,等待仲裁器仲裁;其中,数据包包括源地址、目标地址、网算标志位和数据部分;
[0010]所述仲裁器读取输入缓存中数据包的内容,对输入缓存中的数据包进行仲裁,决定哪个输入缓存中的数据包传输给解析器进行解析;
[0011]所述解析器接收输入缓存传输的数据包,并将数据包传输给路由计算单元或网内运算单元,解析器根据数据包的网算标志位判断该数据包是否需要进行网内运算,如果数据包的网算标志位的值等于0,则表明数据包不需要进行网内运算,解析器将数据包传输给路由计算单元;如果数据包的网算标志位的值不为0,则表明数据包需要进行网内运算,则解析器将本数据包传输给网内运算单元;
[0012]所述网内运算单元接收解析器传输的数据包,经过网内运算后将数据包传输给路由计算单元;
[0013]所述路由计算单元从解析器或网内运算单元接收数据包,并将数据包和路由运算结果传输给交叉开关,路由计算单元根据数据包中的目的地址,使用路由算法计算数据包对应的输出端口地址;对于由解析器传入的数据包,路由计算单元采用XY路由算法,即先对数据包按列转发,再对数据包按行转发;对于网内运算单元传入的数据包,路由计算单元采用归约树路由算法,其中,路由运算结果作为控制交叉开关状态的电信号,指示交叉开关应该将传入的数据包传输给哪一个输出缓存;
[0014]所述交叉开关从路由计算单元接收数据包和路由运算结果,交叉开关包括N个多路复用器,每一个多路复用器与一个输出缓存相连,根据路由运算结果,交叉开关通过多路复用器选择一个路由计算单元传出的数据包并将该数据包传输给对应的输出缓存;
[0015]所述输出缓存接收交叉开关传输的数据包,根据先来先服务原则向另一个芯粒间路由器的输入缓存或与本芯粒间路由器相连的芯粒传输数据包。
[0016]上述公开的芯粒间路由器首次增加解析器和网内运算单元,使芯粒间路由器能够对正在转发的数据包进行聚合操作。并且定义新的数据包格式,以配合解析器和网内运算单元工作。为了使得改进后的路由器能够更好的发挥聚合功能,还提出配套的归约树路由算法,使得更多的数据包能够在同一个路由器中相遇,尽可能多的执行聚合操作。
[0017]进一步地,所述数据包中源地址指示该数据包由网络中哪一颗芯粒产生,目标地址指示该数据包由网络中哪一颗芯粒接收,网算标志位用于区分该数据包是否需要进行网内运算,数据部分是该数据包要传输的具体通信内容。源地址帮助芯粒识别数据包的来源,保证芯粒对收到的数据包能够根据来源不同正确处理;目标地址用于在数据包转发阶段作为路由算法的输入;网算标志位用于为数据包分类,将不需要网内运算的数据包的网算标志位设为0,防止数据包被传输至网内运算单元,加快数据包的转发速度,同时,网算标志位将需要网内运算的数据包分为多组,网算标志位作为分组标识,只有同组的数据包会进行聚合,使得芯粒间路由器能够同时处理多组需要进行聚合的数据包;数据部分是芯粒要传输的具体数据。
[0018]进一步地,所述网内运算单元包括多路复用器、网算缓存、网算控制器、比较器和逻辑计算单元;网内运算单元的工作过程称为网内运算,具体过程如下:比较器对比解析器传入的数据包的网算标志位与网算缓存中数据包的网算标志位,如果两者不等,则网算控
表示从Node集合v中的x坐标,符号“v

y”表示从Node集合v中的y坐标;
[0035]T7、将集合R作为路由算法的结果,存入芯粒间路由器的路由计算单元中。
[0036]进一步地,所述仲裁器使用循环仲裁,轮询每个输入缓存中的数据包并将其作为解析器的输入。循环仲裁保证仲裁器对于每个输入缓存中的数据包能本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网算一体的芯粒间路由器,其特征在于,所述路由器包括N个输入缓存、1个仲裁器、N个解析器、1个网内运算单元、N+1个路由计算单元、1个交叉开关和N个输出缓存,其中,所述输入缓存连接芯粒或另一个芯粒间路由器的输出缓存,接收另一个芯粒间路由器的输出缓存传出的数据包或芯粒传出的数据包,并将数据包缓存,等待仲裁器仲裁;其中,数据包包括源地址、目标地址、网算标志位和数据部分;所述仲裁器读取输入缓存中数据包的内容,对输入缓存中的数据包进行仲裁,决定哪个输入缓存中的数据包传输给解析器进行解析;所述解析器接收输入缓存传输的数据包,并将数据包传输给路由计算单元或网内运算单元,解析器根据数据包的网算标志位判断该数据包是否需要进行网内运算,如果数据包的网算标志位的值等于0,则表明数据包不需要进行网内运算,解析器将数据包传输给路由计算单元;如果数据包的网算标志位的值不为0,则表明数据包需要进行网内运算,则解析器将本数据包传输给网内运算单元;所述网内运算单元接收解析器传输的数据包,经过网内运算后将数据包传输给路由计算单元;所述路由计算单元从解析器或网内运算单元接收数据包,并将数据包和路由运算结果传输给交叉开关,路由计算单元根据数据包中的目的地址,使用路由算法计算数据包对应的输出端口地址;对于由解析器传入的数据包,路由计算单元采用XY路由算法,即先对数据包按列转发,再对数据包按行转发;对于网内运算单元传入的数据包,路由计算单元采用归约树路由算法,其中,路由运算结果作为控制交叉开关状态的电信号,指示交叉开关应该将传入的数据包传输给哪一个输出缓存;所述交叉开关从路由计算单元接收数据包和路由运算结果,该交叉开关包括N个多路复用器,每一个多路复用器与一个输出缓存相连,根据路由运算结果,交叉开关通过多路复用器选择一个路由计算单元传出的数据包并将该数据包传输给对应的输出缓存;所述输出缓存接收交叉开关传输的数据包,根据先来先服务原则向另一个芯粒间路由器的输入缓存或与本芯粒间路由器相连的传输数据包。2.根据权利要求1所述的网算一体的芯粒间路由器,其特征在于,所述数据包中源地址指示该数据包由网络中哪一颗芯粒产生,目标地址指示该数据包由网络中哪一颗芯粒接收,网算标志位用于区分该数据包是否需要进行网内运算,数据部分是该数据包要传输的具体通信内容。3.根据权利要求1所述的网算一体的芯粒间路由器,其特征在于,所述网内运算单元包括多路复用器、网算缓存、网算控制器、比较器和逻辑计算单元;网内运算单元工作过程如下:比较器对比解析器传入的数据包的网算标志位与网算缓存中数据包的网算标志位,如果两者不等,则网算控制器将网算缓存中的数据包传输给路由计算单元;如果两者相等,则网算控制器将解析器传入的数据包的数据部分与网算缓存中的数据包的数据部分传输至逻辑计算单元进行加法运算,运算结果传输至网算缓存,覆盖原有的数据部分,同时,解析器传入的数据包的源地址、目的地址和网算标志位传输至网算缓存。4.根据权利要求1所述的网算一体的芯粒间路由器,其特征在于,所述归约树路由算法工作在mesh网络中,过程如下:T1、设mesh网络的大小为n
×
n,共创建n2个Node集合用于表示网络中的芯粒,所述Node
集合包括如下信息:芯粒在mesh网络中的x坐标和y坐标、子节点数量、前驱节点,其中x坐标取值记为x,y坐标取值记为y,Node集合的位置信息指该Node集合中x坐标和y坐标取值,记作(x,y);T2、根据芯粒在mesh网络中位置为Node集合的成员赋值,子节点数量设为0,芯粒的前驱节点设为空;T3、使用n2×
n2大小的邻接矩阵M表示节点的连通关系,符号i和符号j表示大于等于1小于等于n之间的一个整数,对于矩阵的第(i
×
n+j)行,将第((i+1)
×
n+j)、第((i

1)
×
n+j)、第(i
×
n+j+1)、第(i
×
n+j

1)列赋值为1,表示连通,其余列赋值为0,表示不连通;T4、对于一个Node集合,邻接矩阵M的第(i
×
n+y)行记录了邻接信息...

【专利技术属性】
技术研发人员:高植林王小航
申请(专利权)人:华南理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1