CN114912596A - 面向稀疏卷积神经网络的多chiplet系统及其方法 - Google Patents
面向稀疏卷积神经网络的多chiplet系统及其方法 Download PDFInfo
- Publication number
- CN114912596A CN114912596A CN202210578426.XA CN202210578426A CN114912596A CN 114912596 A CN114912596 A CN 114912596A CN 202210578426 A CN202210578426 A CN 202210578426A CN 114912596 A CN114912596 A CN 114912596A
- Authority
- CN
- China
- Prior art keywords
- weight
- chip
- feature map
- sparse
- array module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供了一种面向稀疏卷积神经网络的多chiplet系统及其方法,包括:多个分立的用于计算卷积神经网络的chiplet芯片;多个所述分立的chiplet芯片之间通过串行接口相连,用于实现片外数据传输,并封装于同一片有机基板。同时提供了一种相应的终端及介质。本发明提供的面向稀疏卷积神经网络的多chiplet系统及其方法,通过零值检测与负载平衡单元实现高并行低开销的稀疏卷积计算;同时针对多chiplet系统划分卷积任务,优化片间数据访存,实现低延时低成本的神经网络计算架构。
Description
技术领域
本发明涉及神经网络计算架构设计技术领域,具体地,涉及一种面向稀疏卷积神经网络的多chiplet系统及其硬件计算方法,同时提供了一种相应的终端及计算机可读存储介质。
背景技术
深度神经网络在计算机视觉、自然语言处理等方面取得重大突破,对硬件计算能力的要求也越来越高。然而,人工智能芯片算力的增长导致芯片面积不断增加,制造良率降低,成本大幅提升。
芯粒(chiplet)将一个完整芯片分割成为多个计算裸片以缩小单个芯片面积,不仅可以提升良率以降低成本,同时有利于芯片设计复用,降低研发时间与流片风险。
然而,过去针对卷积神经网络的硬件计算架构,普遍局限于传统的单芯片设计,无法解决多chiplet间大量数据传输的延时与能耗开销。针对多chiplet的神经网络计算芯片,如英伟达提出的SIMBA芯片,通过封装上网络(Network on Package,NoP)与片上网络(Network on Chip,NoC)支持多chiplet间灵活的数据流通信,实现了高达128TOPS的算力与6.1TOPS/W的能效比。
卷积神经网络作为计算密集型与存储密集型应用,存在着大量的稀疏性。如YOL0v3目标检测网络的特征图稀疏度高达到46%,因为零值不影响卷积计算结果,可以节省大量的冗余计算,极大的降低了计算延时。然而,稀疏卷积计算需要额外的硬件单元完成稀疏编码、负载均衡、零值判断,现有的多chiplet芯片如SIMBA,仅能完成规则卷积运算,无法完成稀疏卷积运算,也无法充分利用卷积神经网络的稀疏性降低计算延时。
发明内容
本发明针对现有技术中存在的上述不足,提供了一种面向稀疏卷积神经网络的多chiplet系统及其硬件计算方法,同时提供了一种相应的终端及计算机可读存储。
根据本发明的一个方面,提供了一种面向稀疏卷积神经网络的多chiplet系统,包括:多个分立的用于计算卷积神经网络的chiplet芯片;多个所述分立的chiplet芯片之间通过串行接口相连,用于实现片外数据传输,并封装于同一片有机基板。
可选地,所述chiplet芯片,包括:稀疏卷积计算阵列模块、片外数据交互模块、片内数据交互模块以及片上存储阵列模块;其中:
所述稀疏卷积计算阵列模块,采用零值检测与负载平衡单元实现并行的稀疏卷积计算;其中,所述零值检测与负载平衡单元的数量为PX x PY,每一个所述零值检测与负载平衡单元中的乘法器数量为CPF x KPF,通过所述零值检测与负载平衡单元的稀疏卷积计算得到输出特征图像素的数量为PX x PY x KPF;其中,PX为输出特征图宽度方向并行度,PY为输出特征图高度方向并行度,CPF为输入特征图通道方向并行度,KPF为输出特征图通道方向并行度;
所述片上存储阵列模块,用于缓存所述稀疏卷积计算阵列模块计算所需的输入特征图与权重以及所述稀疏卷积计算阵列模块计算得到的输出特征图;
所述片内数据交互模块,用于按照顺序从所述片上存储阵列模块读取所述输入特征图与权重,送入所述稀疏卷积计算阵列模块进行稀疏卷积计算,并将得到的输出特征图写回所述片上存储阵列模块;
所述片外数据交互模块,根据所述稀疏卷积计算阵列模块中权重与特征图数据量大小以及所述片上存储阵列模块的片上存储空间,控制片外数据传输。
可选地,所述零值检测与负载平衡单元,根据输入的权重与特征图是否为零值,各自生成1比特的标志位,并根据所述标志位对特征图与权重做重排序,将非零的特征图与权重写入FIFO,以此完成零值检测;通过平衡不同FIFO中负载,实现负载平衡,当FIFO0的负载多于FIFO1时,只往FIFO1写入特征图与权重,以实现FIFO0与FIFO1的负载平衡。
可选地,所述片上存储阵列模块,采用乒乓结构,通过地址线最高位,将片上存储空间一分为二;当所述稀疏卷积计算阵列模块计算时,当前网络层的权重与特征图最多占用一半的片上存储空间,而另一半的片上存储空间提前读取下一层的权重,掩盖下一层网络的数据传输时间。
可选地,根据所述稀疏卷积计算阵列模块的神经网络各层数据量大小以及所述片上存储阵列模块的结构,控制片外DRAM的访问,进行片外数据传输;当所述稀疏卷积计算阵列模块计算时,将计算完成的一部分输出特征图写入所述片外DRAM,并同时提前读取下一层的权重,节省下一层网络的数据传输时间。
根据本发明的另一个方面,提供了一种面向稀疏卷积神经网络的多chiplet系统的硬件计算方法,包括:
S1,控制单元从指令ROM中读取指令,得到稀疏卷积计算阵列模块的第一层网络的特征信息,并针对多chiplet芯片进行任务切分;
S2,片外数据交互模块利用DDR接口从片外DRAM中加载所述第一层网络的稀疏卷积计算所需的输入特征图和权重,存储在片上存储阵列模块上;
S3,片内数据交互模块按照相应顺序从片上存储阵列模块读取输入特征图与权重,送入稀疏卷积计算阵列模块进行稀疏卷积计算,并将得到的卷积计算结果写回片上存储阵列模块;
S4,在稀疏卷积计算阵列模块计算的同时,利用片上存储阵列模块的结构,片外数据交互模块同时对稀疏卷积计算阵列模块稀疏卷积计算所需的特征图与权重进行数据传输,如果稀疏卷积计算先于数据传输完成,则所述稀疏卷积计算阵列模块停止卷积计算并等待传输的数据;
S5,第一层网络的稀疏卷积计算完成后,控制单元从指令ROM中读取下一条指令,得到稀疏卷积计算阵列模块的第二层网络的特征信息,并重复S2~S4;
S6,重复上述步骤,直至稀疏卷积计算阵列模块的所有网络层均完成稀疏卷积计算。
可选地,所述S3中,稀疏卷积计算,包括:
S31,每一个时钟周期中,片内数据交互模块从片上存储阵列模块读取PX x PY x2CPF大小的特征图和2CPF x KPF的权重,并分发到PX x PY个计算单元PE中;其中,每一个计算单元PE的输入特征图均不同,但共享相同权重,即每一个计算单元PE输入2CPF大小的特征图和2CPF×KPF的权重;
S32,每一个计算单元PE对2CPF大小的特征图和2CPF x KPF大小的权重做稀疏向量矩阵乘,得到KPF大小的输出特征图的部分和;
S33,下一个时钟周期中,片内数据交互模块沿输入特征图通道方向读取输入特征图与权重,此时计算单元PE计算得到的输出特征图部分和做累加,经过Cin/(2CPF)个周期后计算得到0~KPF-1通道的输出特征图;其中,Cin为输入特征图通道数;
S34,片内数据交互模块沿输出特征图通道方向读取输入特征图与权重,并重复S32~S33,经过Cin/(2CPF)个周期后得到KPF~2KPF-1通道的输出特征图;
S35,经过Cin×Cout/(2CPF×KPF)个周期可以计算得到PX×PY×Cout大小的输出特征图,之后片内数据交互单元沿输出特征图Xout方向读取输入特征图与权重,并重复S32~S343;其中,Cout为输入图像通道数,Xout为输出特征图宽度;
S36,经过Cin x Cout x Xout/(2CPF x KPF x Px)个周期计算得到Xout x PY xCout大小的输出特征图,之后片内数据交互模块沿输出特征图Yout方向读取输入特征图与权重,并重复S32~S35;其中,Yout为输出特征图高度;
S37,经过Cin x Cout x Xout/(2CPF x KPF x Px)个周期计算得到Xout x PY xCout大小的输出特征图,之后片内数据交互模块沿输出特征图Yout方向读取输入特征图与权重,并重复S32~S36,以此完成一层卷积的运算。
可选地,所述S32中,稀疏向量矩阵乘,包括:
S321,对输入的2CPF大小的特征图和2CPF x KPF的权重,判断对应位置是否为零值,并各自生成1比特的标志位,其中标志位为1表示数值非零,标志位0表示数值为零;
S322,将S321得到的特征图标志位与权重标志位作与操作,得到的标志位为1表示权重与特征图都不为零;标志位为0表示权重与特征图至少一个为零,此时该权重与特征图的乘法运算结果为零,跳过该乘法运算不影响输出特征图的计算结果;
S323,根据S322中得到的标志位,对特征图与权重对做重排序,将标志位为1的权重与特征图,移到标志位为0的权重与特征图前面;
S324,将S323重排序后的特征图和权重对写入FIFO队列,且只写入标志位为1的权重与特征图;此时乘法器从FIFO中读取非零的特征图和权重对并进行乘累加;若FIFO为满,则阻塞FIFO写操作;若FIFO为空,则阻塞乘法器运算;
S325,将计算单元PE中FIFO每两个分为一组,零值检测与负载平衡单元负责调整每一组中两个FIFO的负载,平衡乘法器计算时间。
根据本发明的第三个方面,提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时可用于运行上述中任一项所述的系统,或,执行上述中任一项所述的方法。
根据本发明的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可用于运行上述中任一项所述的系统,或,执行上述中任一项所述的方法。
由于采用了上述技术方案,本发明与现有技术相比,具有如下至少一项的有益效果:
本发明提供的面向稀疏卷积神经网络的多chiplet系统及其方法,针对卷积神经网络,利用零值检测与负载平衡单元实现高并行低开销的稀疏卷积计算,避免了数据编解码开销,提高卷积运算效率,缩短卷积运算延时。
本发明提供的面向稀疏卷积神经网络的多chiplet系统及其方法,利用多chiplet技术提高系统并行度,避免芯片面积过大,降低制造成本,并针对多chiplet架构提出了并行度切分方法,提高了设计的可扩展性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例中面向稀疏卷积神经网络的多chiplet系统的整体结构示意图。
图2为本发明一实施例中面向稀疏卷积神经网络的多chiplet系统的硬件计算方法的流程图。
图3为本发明以优选实施例中稀疏卷积计算的卷积计算顺序示意图。
具体实施方式
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
图1为本发明一实施例提供的面向稀疏卷积神经网络的多chiplet系统的整体结构示意图。
如图1所示,该实施例提供的面向稀疏卷积神经网络的多chiplet系统,可以包括:多个分立的用于计算卷积神经网络的chiplet芯片;多个上述分立的chiplet芯片之间通过串行接口相连,用于实现片外数据传输,并封装于同一片有机基板。
在一优选实施例中,上述chiplet芯片,可以包括:稀疏卷积计算阵列模块、片外数据交互模块、片内数据交互模块以及片上存储阵列模块;其中:
上述稀疏卷积计算阵列模块,采用零值检测与负载平衡单元实现并行的稀疏卷积计算;其中,上述零值检测与负载平衡单元的数量为PX x PY,每一个上述零值检测与负载平衡单元中的乘法器数量为CPF x KPF,通过上述零值检测与负载平衡单元的稀疏卷积计算得到输出特征图像素的数量为PX x PY x KPF;其中,PX为输出特征图宽度方向并行度,PY为输出特征图高度方向并行度,CPF为输入特征图通道方向并行度,KPF为输出特征图通道方向并行度;
上述片上存储阵列模块,用于缓存上述稀疏卷积计算阵列模块计算所需的输入特征图与权重以及上述稀疏卷积计算阵列模块计算得到的输出特征图;
上述片内数据交互模块,用于按照顺序从上述片上存储阵列模块读取上述输入特征图与权重,送入上述稀疏卷积计算阵列模块进行稀疏卷积计算,并将得到的输出特征图写回上述片上存储阵列模块;
上述片外数据交互模块,根据上述稀疏卷积计算阵列模块中权重与特征图数据量大小以及上述片上存储阵列模块的片上存储空间,控制片外数据传输。
在一优选实施例中,上述零值检测与负载平衡单元,根据输入的权重与特征图是否为零值,各自生成1比特的标志位,并根据上述标志位对特征图与权重做重排序,将非零的特征图与权重写入FIFO,以此完成零值检测;通过平衡不同FIFO中负载,实现负载平衡,当FIFO0的负载多于FIFO1时,只往FIFO1写入特征图与权重,以期望FIFO0与FIFO1的负载大致相等。
在一优选实施例中,上述片上存储阵列模块,采用乒乓结构,通过地址线最高位,将片上存储空间一分为二;当上述稀疏卷积计算阵列模块计算时,当前网络层的权重与特征图最多占用一半的片上存储空间,而另一半的片上存储空间提前读取下一层的权重,掩盖下一层网络的数据传输时间。
在一优选实施例中,根据上述稀疏卷积计算阵列模块的神经网络各层数据量大小以及上述片上存储阵列模块的结构,控制片外DRAM的访问,进行片外数据传输;当上述稀疏卷积计算阵列模块计算时,将计算完成的一部分输出特征图写入上述片外DRAM,并同时提前读取下一层的权重,节省下一层网络的数据传输时间。
本发明上述实施例提供的面向稀疏卷积神经网络的多chiplet系统,针对现有卷积网络硬件计算架构的问题,通过零值检测与负载平衡单元实现高并行低开销的稀疏卷积计算,同时针对多chiplet系统优化片间数据访存,实现低延时低成本的神经网络计算架构。其特征在于,多个分立的chiplet芯片,计算卷积神经网络。上述分立的chiplet单元之间通过串行接口相连,封装于同一片有机基板,并通过串行接口实现片外数据传输。
图2为本发明一实施例提供的面向稀疏卷积神经网络的多chiplet系统的硬件计算方法的流程图。
如图2所示,该实施例提供的面向稀疏卷积神经网络的多chiplet系统的硬件计算方法,可以包括如下步骤:
S1,控制单元从指令ROM中读取指令,得到稀疏卷积计算阵列模块的第一层网络的特征信息,并针对多chiplet芯片进行任务切分;
S2,片外数据交互模块利用DDR接口从片外DRAM中加载上述第一层网络的稀疏卷积计算所需的输入特征图和权重,存储在片上存储阵列模块上;
S3,片内数据交互模块按照相应顺序从片上存储阵列模块读取输入特征图与权重,送入稀疏卷积计算阵列模块进行稀疏卷积计算,并将得到的卷积计算结果写回片上存储阵列模块;
S4,在稀疏卷积计算阵列模块计算的同时,利用片上存储阵列模块的结构,片外数据交互模块同时对稀疏卷积计算阵列模块稀疏卷积计算所需的特征图与权重进行数据传输,如果稀疏卷积计算先于数据传输完成,则上述稀疏卷积计算阵列模块停止卷积计算并等待传输的数据;
S5,第一层网络的稀疏卷积计算完成后,控制单元从指令ROM中读取下一条指令,得到稀疏卷积计算阵列模块的第二层网络的特征信息,并重复S2~S4;
S6,重复上述步骤,直至稀疏卷积计算阵列模块的所有网络层均完成稀疏卷积计算。
在S3的一优选实施例中,如图3所示,稀疏卷积计算,可以包括如下步骤:
S31,每一个时钟周期中,片内数据交互模块从片上存储阵列模块读取PX x PY x2CPF大小的特征图和2CPF x KPF的权重,并分发到PX x PY个计算单元PE中;其中,每一个计算单元PE的输入特征图均不同,但共享相同权重,即每一个计算单元PE输入2CPF大小的特征图和2CPF×KPF的权重;
S32,每一个计算单元PE对2CPF大小的特征图和2CPF x KPF大小的权重做稀疏向量矩阵乘,得到KPF大小的输出特征图的部分和;
S33,下一个时钟周期中,片内数据交互模块沿输入特征图通道方向读取输入特征图与权重,此时计算单元PE计算得到的输出特征图部分和做累加,经过Cin/(2CPF)个周期后计算得到0~KPF-1通道的输出特征图;其中,Cin为输入特征图通道数;
S34,片内数据交互模块沿输出特征图通道方向读取输入特征图与权重,并重复S32~S33,经过Cin/(2CPF)个周期后得到KPF~2KPF-1通道的输出特征图;
S35,经过Cin×Cout/(2CPF×KPF)个周期可以计算得到PX×PY×Cout大小的输出特征图,之后片内数据交互单元沿输出特征图Xout方向读取输入特征图与权重,并重复S32~S343;其中,Cout为输入图像通道数,Xout为输出特征图宽度;
S36,经过Cin x Cout x Xout/(2CPF x KPF x Px)个周期计算得到Xout x PY xCout大小的输出特征图,之后片内数据交互模块沿输出特征图Yout方向读取输入特征图与权重,并重复S32~S35;其中,Yout为输出特征图高度;
S37,经过Cin x Cout x Xout/(2CPF x KPF x Px)个周期计算得到Xout x PY xCout大小的输出特征图,之后片内数据交互模块沿输出特征图Yout方向读取输入特征图与权重,并重复S32~S36,以此完成一层卷积的运算。
在S32的一优选实施例中,稀疏向量矩阵乘,可以包括如下步骤:
S321,对输入的2CPF大小的特征图和2CPF x KPF的权重,判断对应位置是否为零值,并各自生成1比特的标志位,其中标志位为1表示数值非零,标志位0表示数值为零;
S322,将S321得到的特征图标志位与权重标志位作与操作,得到的标志位为1表示权重与特征图都不为零;标志位为0表示权重与特征图至少一个为零,此时该权重与特征图的乘法运算结果为零,跳过该乘法运算不影响输出特征图的计算结果;
S323,根据S322中得到的标志位,对特征图与权重对做重排序,将标志位为1的权重与特征图,移到标志位为0的权重与特征图前面;
S324,将S323重排序后的特征图和权重对写入FIFO队列,且只写入标志位为1的权重与特征图;此时乘法器从FIFO中读取非零的特征图和权重对并进行乘累加;若FIFO为满,则阻塞FIFO写操作;若FIFO为空,则阻塞乘法器运算;
S325,将计算单元PE中FIFO每两个分为一组,零值检测与负载平衡单元负责调整每一组中两个FIFO的负载,平衡乘法器计算时间。
下面结合一具体应用实例,对本发明上述实施例提供的系统及方法进一步详细说明。
在该具体应用实例中,稀疏卷积计算阵列模块的稀疏卷积计算所涉及的各符号说明如表1所示。
表1
在该具体应用实例中,以目标检测网络YOLOv3计算为例,介绍具体实施方式,其中稀疏卷积计算阵列模块的硬件参数如表2所示。
表2
符号 | 数值 | 符号 | 数值 |
PX | 13 | PY | 13 |
CPF | 4 | KPF | 8 |
YOLOv3各网络层参数如表3所示。
在该具体应用实例中,以上述YOLOv3网络为例,包括以下步骤:
步骤1:控制单元从指令ROM中读取YOLOv3第一层网络的处理指令,得到第一层网络的特征图尺寸、权重维度等信息,如Xin=Yin=416,Cin=3,Xout=Yout=416,Cout=32等等,并针对多chiplet芯片进行任务切分;
步骤2:片外数据交互单元利用DDR接口从DRAM中加载YOLOv3第一层卷积计算需要的图像输入和权重,存储在片上存储阵列;
步骤3:数据缓存完成后,开始卷积计算,卷积的计算顺序如图2所示,片内数据交互单元按照相应顺序从片上存储阵列读取特征图与权重,送入稀疏卷积计算阵列,卷积计算结果再写回片上存储阵列;
步骤4:在稀疏卷积计算阵列计算的同时,利用片上存储阵列乒乓结构,片外数据交互单元同时搬运之后卷积需要特征图与权重,如果计算先于数据传输之前完成,则稀疏卷积计算阵列会停止计算等待数据;
步骤5:YOLOv3第一层卷积计算完成后,控制单元从指令ROM中读取下一条指令,得到YOLOv3第二层网络信息,并重复步骤3~步骤4。
上述步骤3完成稀疏卷积计算,具体步骤如下:
步骤3-1:每个时钟周期中,片内数据交互单元从片上存储阵列读取13×13×2*4个特征图和2*4×8个权重,将其分发到13×13个PE中;其中每个PE的输入特征图均不同,但共享相同权重,即每个PE单元输入2*4个特征图和2*4×8个权重;
步骤3-2:每个PE单元对2*4个特征图和2*4×8大小的权重做稀疏向量矩阵乘,得到8个输出特征图部分和;
步骤3-3:下个时钟周期,片内数据交互单元沿输入特征图通道方向读取输入特征图与权重,此时PE计算的输出特征图部分和做累加,经过64/(2*4)=8个周期后可计算得到通道0~7的输出特征图,如图2中①所示。
步骤3-4:之后片内数据交互单元沿输出特征图通道方向读取特征图与权重,并重复步骤3-2~步骤3-3,经过64/(2*4)=8个周期后得到8~15通道的输出特征图,如图2中②所示;
步骤3-5:经过64*32/(2*4*8)=32个周期可以计算得到13×13×32大小的输出特征图,之后片内数据交互单元沿输出特征图宽度方向读取特征图与权重,并重复步骤3-2~步骤3-4,如图2中③所示;
步骤3-6:经过64*32*208/(2*4*8*13)=512个周期可以计算得到208×13×32大小的输出特征图,之后片内数据交互单元沿输出特征图高度方向读取特征图与权重,并重复步骤3-2~步骤3-5,如图2中④所示,以此完成一层卷积的运算。
上述步骤3-2完成稀疏向量矩阵乘,其中向量是长度为2*4个特征图,矩阵为2*4×8的权重,如图2所示,由于乘法操作只要一个因数为零,则乘积为零,所以在运算前需要进行索引比对,去除掉零值的计算,具体步骤包括:
步骤3-2-1:对输入2*4个特征图和2*4×8个权重,判断对应位置是否为零值,各自生成1比特的标志位,其中标志位为1表示数值非零,标志位0表示数值为零;
步骤3-2-2:将步骤3-2-1得到的特征图标志位与权重标志位作与操作,得到的标志位为1表示权重与特征图都不为零,标志位为0表示权重与特征图至少一个为零,该乘法运算可以跳过;
步骤3-2-3:根据步骤3-2-2得到的标志位,对特征图与权重对做重排序,将非零的特征图-权重对移到前面,零的特征图-权重对移到后面;
步骤3-2-4:将步骤3-2-3重排序后的特征图权重对写入FIFO队列,乘法器从FIFO中读取非零的特征图权重对并进行乘累加;若FIFO为满(零值较少,非零值较多),则阻塞FIFO写操作;若FIFO为空(零值较多,非零值较少),则阻塞乘法器运算。
步骤3-2-5:由于零值分布的不均匀性,可能出现负载不均衡的情况,故将PE单元中FIFO每两个分为一组,负载平衡单元负责调整每组两个FIFO的负载,平衡乘法器计算时间。
对于多chiplet架构,片间数据传输的延时与能耗开销极大,本发明上述实施例提供的面向稀疏卷积神经网络的多chiplet系统及其方法,采用了沿输出特征图高度方向划分与沿输出特征图通道方向划分混合的切分方式。假设系统共n个chiplet,沿输出特征图高度方向方向划分,不同chiplet只需要传输64*208*2大小的特征图;沿输出特征图通道方向划分,不同chiplet需要传输64*208*208*(n-1)大小的特征图;显然,沿输出特征图高度方向划分更适合特征图较大的情况;沿输出特征图通道方向划分更适合特征图较小的情况。
为优化现有卷积网络硬件架构计算延时高、单芯片面积大的问题,本发明提供的面向稀疏卷积神经网络的多chiplet系统及其方法,通过零值检测与负载平衡单元实现高并行低开销的稀疏卷积计算,同时针对多chiplet系统优化片间数据访存,实现低延时低成本的神经网络计算架构。
本发明一实施例提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行上述程序时可用于运行上述任一项的系统,或,执行上述任一项的方法。
本发明一实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可用于运行上述任一项的系统,或,执行上述任一项的方法。
可选地,存储器,用于存储程序;存储器,可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-access memory,缩写:RAM),如静态随机存取存储器(英文:static random-access memory,缩写:SRAM),双倍数据率同步动态随机存取存储器(英文:Double Data Rate Synchronous Dynamic Random Access Memory,缩写:DDR SDRAM)等;存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory)。存储器用于存储计算机程序(如实现上述方法的应用程序、功能模块等)、计算机指令等,上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器中。并且上述的计算机程序、计算机指令、数据等可以被处理器调用。
上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器中。并且上述的计算机程序、计算机指令、数据等可以被处理器调用。
处理器,用于执行存储器存储的计算机程序,以实现上述实施例涉及的方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。
处理器和存储器可以是独立结构,也可以是集成在一起的集成结构。当处理器和存储器是独立结构时,存储器、处理器可以通过总线耦合连接。
本发明上述实施例提供的面向稀疏卷积神经网络的多chiplet系统及其方法,针对卷积神经网络,利用零值检测与负载平衡单元实现高并行低开销的稀疏卷积计算,避免了数据编解码开销,提高卷积运算效率,缩短卷积运算延时。利用多chiplet技术提高系统并行度,避免芯片面积过大,降低制造成本,并针对多chiplet架构提出了并行度切分方法,提高了设计的可扩展性。
本发明上述实施例中未尽事宜均为本领域公知技术。
本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种面向稀疏卷积神经网络的多chiplet系统,其特征在于,包括:多个分立的用于计算卷积神经网络的chiplet芯片;多个所述分立的chiplet芯片之间通过串行接口相连,用于实现片外数据传输,并封装于同一片有机基板。
2.根据权利要求1所述的面向稀疏卷积神经网络的多chiplet系统,其特征在于,所述chiplet芯片,包括:稀疏卷积计算阵列模块、片外数据交互模块、片内数据交互模块以及片上存储阵列模块;其中:
所述稀疏卷积计算阵列模块,采用零值检测与负载平衡单元实现并行的稀疏卷积计算;其中,所述零值检测与负载平衡单元的数量为PX x PY,每一个所述零值检测与负载平衡单元中的乘法器数量为CPF x KPF,通过所述零值检测与负载平衡单元的稀疏卷积计算得到输出特征图像素的数量为PX x PY x KPF;其中,PX为输出特征图宽度方向并行度,PY为输出特征图高度方向并行度,CPF为输入特征图通道方向并行度,KPF为输出特征图通道方向并行度;
所述片上存储阵列模块,用于缓存所述稀疏卷积计算阵列模块计算所需的输入特征图与权重以及所述稀疏卷积计算阵列模块计算得到的输出特征图;
所述片内数据交互模块,用于按照顺序从所述片上存储阵列模块读取所述输入特征图与权重,送入所述稀疏卷积计算阵列模块进行稀疏卷积计算,并将得到的输出特征图写回所述片上存储阵列模块;
所述片外数据交互模块,根据所述稀疏卷积计算阵列模块中权重与特征图数据量大小以及所述片上存储阵列模块的片上存储空间,控制片外数据传输。
3.根据权利要求2所述的面向稀疏卷积神经网络的多chiplet系统,其特征在于,所述零值检测与负载平衡单元,根据输入的权重与特征图是否为零值,各自生成1比特的标志位,并根据所述标志位对特征图与权重做重排序,将非零的特征图与权重写入FIFO,以此完成零值检测;通过平衡不同FIFO中负载,实现负载平衡,当FIFO0的负载多于FIFO1时,只往FIFO1写入特征图与权重,以实现FIFO0与FIFO1的负载平衡。
4.根据权利要求2所述的面向稀疏卷积神经网络的多chiplet系统,其特征在于,所述片上存储阵列模块,采用乒乓结构,通过地址线最高位,将片上存储空间一分为二;当所述稀疏卷积计算阵列模块计算时,当前网络层的权重与特征图最多占用一半的片上存储空间,而另一半的片上存储空间提前读取下一层的权重,掩盖下一层网络的数据传输时间。
5.根据权利要求2所述的面向稀疏卷积神经网络的多chiplet系统,其特征在于,根据所述稀疏卷积计算阵列模块的神经网络各层数据量大小以及所述片上存储阵列模块的结构,控制片外DRAM的访问,进行片外数据传输;当所述稀疏卷积计算阵列模块计算时,将计算完成的一部分输出特征图写入所述片外DRAM,并同时提前读取下一层的权重,节省下一层网络的数据传输时间。
6.一种面向稀疏卷积神经网络的多chiplet系统的硬件计算方法,其特征在于,包括:
S1,控制单元从指令ROM中读取指令,得到稀疏卷积计算阵列模块的第一层网络的特征信息,并针对多chiplet芯片进行任务切分;
S2,片外数据交互模块利用DDR接口从片外DRAM中加载所述第一层网络的稀疏卷积计算所需的输入特征图和权重,存储在片上存储阵列模块上;
S3,片内数据交互模块按照相应顺序从片上存储阵列模块读取输入特征图与权重,送入稀疏卷积计算阵列模块进行稀疏卷积计算,并将得到的卷积计算结果写回片上存储阵列模块;
S4,在稀疏卷积计算阵列模块计算的同时,利用片上存储阵列模块的结构,片外数据交互模块同时对稀疏卷积计算阵列模块稀疏卷积计算所需的特征图与权重进行数据传输,如果稀疏卷积计算先于数据传输完成,则所述稀疏卷积计算阵列模块停止卷积计算并等待传输的数据;
S5,第一层网络的稀疏卷积计算完成后,控制单元从指令ROM中读取下一条指令,得到稀疏卷积计算阵列模块的第二层网络的特征信息,并重复S2~S4;
S6,重复上述步骤,直至稀疏卷积计算阵列模块的所有网络层均完成稀疏卷积计算。
7.根据权利要求6所述的面向稀疏卷积神经网络的多chiplet系统的硬件计算方法,其特征在于,所述S3中,稀疏卷积计算,包括:
S31,每一个时钟周期中,片内数据交互模块从片上存储阵列模块读取PX x PY x 2CPF大小的特征图和2CPF x KPF的权重,并分发到PX x PY个计算单元PE中;其中,每一个计算单元PE的输入特征图均不同,但共享相同权重,即每一个计算单元PE输入2CPF大小的特征图和2CPF×KPF的权重;
S32,每一个计算单元PE对2CPF大小的特征图和2CPF x KPF大小的权重做稀疏向量矩阵乘,得到KPF大小的输出特征图的部分和;
S33,下一个时钟周期中,片内数据交互模块沿输入特征图通道方向读取输入特征图与权重,此时计算单元PE计算得到的输出特征图部分和做累加,经过Cin/(2CPF)个周期后计算得到0~KPF-1通道的输出特征图;其中,Cin为输入特征图通道数;
S34,片内数据交互模块沿输出特征图通道方向读取输入特征图与权重,并重复S32~S33,经过Cin/(2CPF)个周期后得到KPF~2KPF-1通道的输出特征图;
S35,经过Cin×Cout/(2CPF×KPF)个周期可以计算得到PX×PY×Cout大小的输出特征图,之后片内数据交互单元沿输出特征图Xout方向读取输入特征图与权重,并重复S32~S343;其中,Cout为输入图像通道数,Xout为输出特征图宽度;
S36,经过Cin x Cout x Xout/(2CPF x KPF x Px)个周期计算得到Xout x PY x Cout大小的输出特征图,之后片内数据交互模块沿输出特征图Yout方向读取输入特征图与权重,并重复S32~S35;其中,Yout为输出特征图高度;
S37,经过Cin x Cout x Xout/(2CPF x KPF x Px)个周期计算得到Xout x PY x Cout大小的输出特征图,之后片内数据交互模块沿输出特征图Yout方向读取输入特征图与权重,并重复S32~S36,以此完成一层卷积的运算。
8.根据权利要求7所述的面向稀疏卷积神经网络的多chiplet系统的硬件计算方法,其特征在于,所述S32中,稀疏向量矩阵乘,包括:
S321,对输入的2CPF大小的特征图和2CPF x KPF的权重,判断对应位置是否为零值,并各自生成1比特的标志位,其中标志位为1表示数值非零,标志位0表示数值为零;
S322,将S321得到的特征图标志位与权重标志位作与操作,得到的标志位为1表示权重与特征图都不为零;标志位为0表示权重与特征图至少一个为零,此时该权重与特征图的乘法运算结果为零,跳过该乘法运算不影响输出特征图的计算结果;
S323,根据S322中得到的标志位,对特征图与权重对做重排序,将标志位为1的权重与特征图,移到标志位为0的权重与特征图前面;
S324,将S323重排序后的特征图和权重对写入FIFO队列,且只写入标志位为1的权重与特征图;此时乘法器从FIFO中读取非零的特征图和权重对并进行乘累加;若FIFO为满,则阻塞FIFO写操作;若FIFO为空,则阻塞乘法器运算;
S325,将计算单元PE中FIFO每两个分为一组,零值检测与负载平衡单元负责调整每一组中两个FIFO的负载,平衡乘法器计算时间。
9.一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时可用于运行权利要求1-5中任一项所述的系统,或,执行权利要求6-8中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时可用于运行权利要求1-5中任一项所述的系统,或,执行权利要求6-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210578426.XA CN114912596A (zh) | 2022-05-13 | 2022-05-13 | 面向稀疏卷积神经网络的多chiplet系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210578426.XA CN114912596A (zh) | 2022-05-13 | 2022-05-13 | 面向稀疏卷积神经网络的多chiplet系统及其方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114912596A true CN114912596A (zh) | 2022-08-16 |
Family
ID=82768223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210578426.XA Pending CN114912596A (zh) | 2022-05-13 | 2022-05-13 | 面向稀疏卷积神经网络的多chiplet系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114912596A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115713103A (zh) * | 2022-11-24 | 2023-02-24 | 辉羲智能科技(上海)有限公司 | 片上-片间互连的神经网络芯片联合性能预测方法及系统 |
-
2022
- 2022-05-13 CN CN202210578426.XA patent/CN114912596A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115713103A (zh) * | 2022-11-24 | 2023-02-24 | 辉羲智能科技(上海)有限公司 | 片上-片间互连的神经网络芯片联合性能预测方法及系统 |
CN115713103B (zh) * | 2022-11-24 | 2023-08-18 | 辉羲智能科技(上海)有限公司 | 片上-片间互连的神经网络芯片联合性能预测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110097174B (zh) | 基于fpga和行输出优先的卷积神经网络实现方法、系统及装置 | |
CN110447044B (zh) | 调度神经网络处理 | |
KR102443546B1 (ko) | 행렬 곱셈기 | |
CN110458279B (zh) | 一种基于fpga的二值神经网络加速方法及系统 | |
CN109948774B (zh) | 基于网络层捆绑运算的神经网络加速器及其实现方法 | |
US11775430B1 (en) | Memory access for multiple circuit components | |
WO2020073211A1 (zh) | 运算加速器、处理方法及相关设备 | |
CN109409511B (zh) | 一种用于动态可重构阵列的卷积运算数据流调度方法 | |
CN109447241B (zh) | 一种面向物联网领域的动态可重构卷积神经网络加速器架构 | |
CN108805266A (zh) | 一种可重构cnn高并发卷积加速器 | |
CN110738308B (zh) | 一种神经网络加速器 | |
CN110222818B (zh) | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 | |
CN111758107A (zh) | 用于基于硬件的池化的系统和方法 | |
CN113033794B (zh) | 基于深度可分离卷积的轻量级神经网络硬件加速器 | |
EP4318275A1 (en) | Matrix multiplier and method for controlling matrix multiplier | |
CN110580519A (zh) | 一种卷积运算结构及其方法 | |
CN113762493A (zh) | 神经网络模型的压缩方法、装置、加速单元和计算系统 | |
CN114912596A (zh) | 面向稀疏卷积神经网络的多chiplet系统及其方法 | |
CN111610963B (zh) | 芯片结构及其乘加计算引擎 | |
CN114118348A (zh) | 加速器、操作加速器的方法以及包括加速器的电子装置 | |
CN116167424B (zh) | 基于cim的神经网络加速器、方法、存算处理系统与设备 | |
CN111886605B (zh) | 针对多个输入数据集的处理 | |
CN109948787B (zh) | 用于神经网络卷积层的运算装置、芯片及方法 | |
CN112346704B (zh) | 一种用于卷积神经网络的全流水线型乘加单元阵列电路 | |
CN115081600A (zh) | 执行Winograd卷积的变换单元、集成电路装置及板卡 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |