System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种用于CNN计算的脉动阵列重构方法技术_技高网

一种用于CNN计算的脉动阵列重构方法技术

技术编号:41259803 阅读:11 留言:0更新日期:2024-05-11 09:18
本发明专利技术属于脉动阵列技术领域,具体公开了一种用于CNN计算的脉动阵列重构方法。该方法针对当前由ASIC来实现CNN的计算而采用脉动阵列矩阵的硬件结构存在的不足,提出了通过重排序和重映射输入特征数据和输入权重数据,实现了脉动阵列的可重构性,不仅能够兼容不同算子及不同特征图输入尺寸,并且有效地提高了MAC的利用率。

【技术实现步骤摘要】

本专利技术属于脉动阵列,具体涉及一种用于cnn计算的脉动阵列重构方法。


技术介绍

1、由asic来实现cnn的计算,采用脉动阵列可较好的解决因数据多并行维度和高并行维度导致的计算数据通路广播过长、扇入扇出太高等问题。然而,在实际应用中,由于输入特征图的尺寸在不同神经网络和不同神经网络层中具有不固定性,导致脉动阵列在实际应用中难以兼容不同的神经网络,当前常规的解决办法是采用脉动阵列矩阵的硬件结构,使得计算过程可根据输入特征图的参数进行实时调整,但是这样会大幅增加后端布局布线的复杂性。


技术实现思路

1、为了解决上述
技术介绍
中提到的至少一个问题,本专利技术提出了提出了一种用于cnn计算的脉动阵列重构方法。

2、一种用于cnn计算的脉动阵列重构方法,包括步骤:

3、步骤s1,系统控制器m0收到加载指令后启动dma模块,将特征数据和权重数据从外部存储器按照一定的排列顺序分别存放在fspm和wspm中;

4、步骤s2,特征数据和权重数据加载完成后,系统控制器m0给pea控制器m1发送启动计算指令,由脉动阵列控制器m1将特征数据和权重数据按照pea的计算维度,从fspm和wspm中分别传输至脉动阵列内的bf和bw中,其中,

5、pea是以基本处理单元pe为单位,并设计为2行8列的pe矩阵,每个pe包含8个独立的pem,每个pem包含16个乘法器和一个累加器。

6、bf的最小组成单元为32个特征图输入通,包含两组bf0寄存器和bf1寄存器,每组寄存器包括1行和ρ列,其中,列数ρ满足下列公式:

7、ρ=w0+kx-1

8、其中,w0为pea每个周期计算的最大输出点个数,kx为支持的最大卷积核宽度;

9、bf的计算过程为:

10、当bf0寄存器中的数据进行计算时,bf1寄存器装载下一组特征数据,当bf0寄存器中的特征数据计算完成后,再切换至bf1寄存器中的特征数据进行计算,同时依次更新bf0中的特征数据;

11、bw的最小组成单元为32个输入通道的特征图,包含两组bw0寄存器和bw1寄存器,每组寄存器包括1行和σ列,其中,列数σ满足下列公式:

12、σ=16kx

13、其中,kx为支持的最大卷积核宽度;

14、bw的计算过程为:

15、当bw0寄存器中的权重数据进行计算时,bw1寄存器装载下一组权重数据,当bw0寄存器中的权重数据计算完成后,再切换至bw1寄存器中的权重数据进行计算,同时依次更新bw0中的权重数据。

16、按照pea的计算维度具体包括按照常规cnn卷积的维度和按照depthwise卷积的维度,其中,按照常规cnn卷积维度,其输入特征数据的位宽为8bit,其卷积维度从低到高排列如下:

17、c→kx→ky→f→w→h

18、按照depthwise卷积的维度,其输入特征数据的位宽为8bit和16bit,其卷积维度从低到高排列如下:

19、c→kx→ky→w→h

20、公式中,c为卷积核输入通道,kx为卷积核宽度,ky为卷积核高度,f为卷积核输出通道,w为特征图宽度,h为特征图高度。

21、步骤s3,在bf和bw中执行特征数据和权重数据的重映射和重排序过程,其中,重排序过程,是pea计算时首先按照输入通道数的维度,并以32输入通道数为单位进行特征数据和权重数据的累加乘,当输入通道数的维度轮询完成后,切换到下一个kx维度,kx维度轮询完成后,切换到下一个ky维度,ky维度轮询完成后,切换到下一组16输出通道数的维度;

22、重映射过程,根据不同计算模式,对应的执行过程为:

23、当pea计算模式为常规cnn卷积和depthwise+8bit时,pea结构为2行8列的pe矩阵,pea纵向输入为8个16输入通道数的特征数据;

24、而当pea计算模式为depthwise+16bit时,depthwise计算是特征数据的输入通道和权重的输出通道相乘,每个pe只能处理8输入通道数的数据,并且需要把bf中的4个16输出通道数的输出数据重新映射到8个pe的纵向特征输入寄存器中,每个pe的纵向特征输入寄存器中存放8输入通道数的数据。

25、当前,常规方法是采用脉动阵列矩阵的硬件结构,使得计算过程可根据输入特征图的参数进行实时调整,但是这样会大幅增加后端布局布线的复杂性。本专利技术提出通过重排序和重映射输入特征数据和输入权重数据,实现了脉动阵列的可重构性,不仅能够兼容不同算子及不同特征图输入尺寸,并且有效地提高了mac的利用率。

26、步骤s4,特征数据和权重数据被排列成pea计算所需的时序,并输送至pea中进行卷积运算,具体地,pea支持的计算模式,当卷积网络的类别为α,输入特征数据的位宽为β,输入通道数c,输出通道数为f时,其计算步骤如下:

27、步骤a1,由m1装载特征数据10个点的c输入通道数的数据到bf0;

28、步骤a2,由m1装载权重数据的c输入通道数、f输出通道数的k0~k2权重数据到bw0;

29、步骤a3,bf0输出β个点的c输入通道数的数据,这些数据经过延时寄存器送至pea;

30、步骤a4,由bw0输出c输入通道数、f输出通道数的k0数据,这些数据经过延时寄存器送到pea;

31、步骤a5,pea开始计算,同时m1启动装载下一组特征数据和权重数据到bf1、bw1;

32、步骤a6,bf0在kx方向上移位c输入通道数的数据,至步骤a3;

33、步骤a7,bw0在kx方向上移位c输入通道数、f输出通道数的数据,至步骤a4;

34、步骤a8,重复步骤a3-a7,直到bf0和bw0中的数据消耗完,并将bf和bw切换到bf1和bw1,同时m1启动装载bf0和bw0的数据;

35、步骤a9,重复步骤a3-a8,直到所有的数据完成计算。

36、步骤s5,卷积运算计算完成后,其计算结果由pea写回到fspm中。

37、本专利技术提出了一种用于cnn计算的脉动阵列重构方法,与现有的技术相比,具有以下有益效果:

38、本专利技术提出通过重排序和重映射输入特征数据和输入权重数据,实现了脉动阵列的可重构性,不仅能够兼容不同算子及不同特征图输入尺寸,并且有效地提高了mac的利用率。

本文档来自技高网...

【技术保护点】

1.一种用于CNN计算的脉动阵列重构方法,其特征在于,包括步骤:

2.根据权利要求1所述的一种用于CNN计算的脉动阵列重构方法,其特征在于,步骤S2中所述的按照PEA的计算维度,具体包括按照常规CNN卷积的维度和按照Depthwise卷积的维度,其中,按照常规CNN卷积维度,其输入特征数据的位宽为8bit,其卷积维度从低到高排列如下:

3.根据权利要求1所述的一种用于CNN计算的脉动阵列重构方法,其特征在于,S2中所述的PEA是以基本处理单元PE为单位,并设计为2行8列的PE矩阵,每个PE包含8个独立的PEM,每个PEM包含16个乘法器和一个累加器。

4.根据权利要求1所述的一种用于CNN计算的脉动阵列重构方法,其特征在于,步骤S2所述的BF,其最小组成单元为32个输入通道的特征图,包含两组BF0寄存器和BF1寄存器,每组寄存器包括1行和ρ列,其中,列数ρ满足下列公式:

5.根据权利要求1所述的一种用于CNN计算的脉动阵列重构方法,其特征在于,步骤S2所述的BW,其最小组成单元为32个输入通道的特征图,包含两组BW0寄存器和BW1寄存器,每组寄存器包括1行和σ列,其中,列数σ满足下列公式:

6.根据权利要求1所述的一种用于CNN计算的脉动阵列重构方法,其特征在于,步骤S3中所述的重排序过程,是PEA计算时首先按照输入通道数的维度,并以32输入通道数为单位进行特征数据和权重数据的累加乘,当输入通道数的维度轮询完成后,切换到下一个Kx维度,Kx维度轮询完成后,切换到下一个Ky维度,Ky维度轮询完成后,切换到下一组16输出通道数的维度。

7.根据权利要求1所述的一种用于CNN计算的脉动阵列重构方法,其特征在于,步骤S3中所述的重映射过程,根据不同计算模式,对应的执行过程为:

8.根据权利要求1所述的一种用于CNN计算的脉动阵列重构方法,其特征在于,步骤S4中所述的输送至PEA中进行卷积运算,具体地,PEA支持的计算模式,当卷积网络的类别为α,输入特征数据的位宽为β,输入通道数C,输出通道数为F时,其计算步骤如下:

...

【技术特征摘要】

1.一种用于cnn计算的脉动阵列重构方法,其特征在于,包括步骤:

2.根据权利要求1所述的一种用于cnn计算的脉动阵列重构方法,其特征在于,步骤s2中所述的按照pea的计算维度,具体包括按照常规cnn卷积的维度和按照depthwise卷积的维度,其中,按照常规cnn卷积维度,其输入特征数据的位宽为8bit,其卷积维度从低到高排列如下:

3.根据权利要求1所述的一种用于cnn计算的脉动阵列重构方法,其特征在于,s2中所述的pea是以基本处理单元pe为单位,并设计为2行8列的pe矩阵,每个pe包含8个独立的pem,每个pem包含16个乘法器和一个累加器。

4.根据权利要求1所述的一种用于cnn计算的脉动阵列重构方法,其特征在于,步骤s2所述的bf,其最小组成单元为32个输入通道的特征图,包含两组bf0寄存器和bf1寄存器,每组寄存器包括1行和ρ列,其中,列数ρ满足下列公式:

5.根据权利要求1所述的一种用于cnn计算的脉动阵列重构方法,其特征在于,步骤s...

【专利技术属性】
技术研发人员:李俊文崔云飞欧阳鹏
申请(专利权)人:北京清微智能科技有限公司
类型:发明
国别省市:

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

1