一种硬件加速装置及方法与流程

摘要: 本发明涉及神经网络硬件加速领域,特别涉及一种硬件加速装置及方法。背景技术:1、卷积神经网络在图像分类、目标检测和语义分割等任务中得到广泛应用。随着网络规模增大,...
一种硬件加速装置及方法与流程

本发明涉及神经网络硬件加速领域,特别涉及一种硬件加速装置及方法。

背景技术:

1、卷积神经网络在图像分类、目标检测和语义分割等任务中得到广泛应用。随着网络规模增大,卷积计算涉及的权重数量和乘加运算数量较多。为减少神经网络的计算量,可以通过剪枝使部分权重变为零值,得到稀疏权重矩阵。其中,非结构化稀疏权重中的零值权重和非零权重通常呈不规则分布。

2、在对非结构化稀疏权重进行硬件加速计算时,需要根据非零权重在卷积核中的位置确定相应的输入特征数据。当多个乘加单元并行执行卷积计算时,需要分别确定各乘加单元对应的输入特征数据,输入数据的选择过程会占用较多硬件逻辑资源。

技术实现思路

1、本发明的目的是提供一种硬件加速装置及方法,用于解决非结构化稀疏卷积并行计算时多个乘加单元分别确定对应输入特征数据而使输入数据选择占用较多硬件逻辑资源的问题。

2、第一方面,本申请提供了一种硬件加速装置,包括至少一个处理单元,处理单元包括寄存器堆、多路选择阵列和多个乘加单元;寄存器堆用于缓存生成待计算输出图块所需的输入特征数据;多路选择阵列连接于寄存器堆与多个乘加单元之间,用于根据当前非零权重对应的位置索引,从寄存器堆缓存的输入特征数据中选择与当前非零权重对应的输入激活子窗口;其中,位置索引用于表征当前非零权重在卷积核中的位置;输入激活子窗口包括分别对应待计算输出图块中多个输出位置的多个输入激活值,多个输入激活值分别输出至多个乘加单元;多个乘加单元用于分别根据当前非零权重和对应的输入激活值执行乘加运算。

3、第二方面,本申请提供了一种硬件加速方法,应用于上述处理单元,硬件加速方法包括:将生成待计算输出图块所需的输入特征数据缓存至寄存器堆;获取当前非零权重以及当前非零权重对应的位置索引,位置索引用于表征当前非零权重在卷积核中的位置;根据位置索引,通过多路选择阵列从寄存器堆缓存的输入特征数据中选择与当前非零权重对应的输入激活子窗口,输入激活子窗口包括分别对应待计算输出图块中多个输出位置的多个输入激活值;将多个输入激活值分别输出至多个乘加单元,并通过多个乘加单元分别根据当前非零权重和对应的输入激活值执行乘加运算。

4、本发明提供了一种硬件加速装置及方法,涉及神经网络硬件加速领域。硬件加速装置包括至少一个处理单元,处理单元包括寄存器堆、多路选择阵列和多个乘加单元;寄存器堆缓存生成待计算输出图块所需的输入特征数据;多路选择阵列根据当前非零权重对应的位置索引,从输入特征数据中选择与当前非零权重对应的输入激活子窗口,并将输入激活子窗口中的多个输入激活值分别输出至多个乘加单元;多个乘加单元分别根据当前非零权重和对应的输入激活值执行乘加运算。本发明根据当前非零权重的位置索引一次确定多个乘加单元对应的输入激活值,无需分别为各乘加单元独立确定输入数据,能够减少非结构化稀疏卷积并行计算时输入数据选择所需的硬件逻辑资源。

5、本申请利用当前非零权重的位置索引控制多路选择阵列,一次选择待计算输出图块中多个输出位置对应的输入激活值,并将这些输入激活值分别提供给多个乘加单元。对于同一个当前非零权重,多个乘加单元不需要分别设置相互独立的位置解析过程,可以减少输入数据选择所需的硬件逻辑资源。

1.一种硬件加速装置,其特征在于,包括至少一个处理单元,所述处理单元包括寄存器堆、多路选择阵列和多个乘加单元;

2.根据权利要求1所述的硬件加速装置,其特征在于,所述多路选择阵列包括行选择网络和列选择网络;

3.根据权利要求1所述的硬件加速装置,其特征在于,所述当前非零权重对应的编码信息包括所述位置索引和输入通道增量;

4.根据权利要求1所述的硬件加速装置,其特征在于,所述处理单元的个数为多个,所述硬件加速装置还包括控制器;

5.根据权利要求4所述的硬件加速装置,其特征在于,所述将排序后的多个输入通道划分为多个输入通道组,包括:

6.根据权利要求1所述的硬件加速装置,其特征在于,所述处理单元的个数为多个,所述硬件加速装置还包括控制器;

7.根据权利要求6所述的硬件加速装置,其特征在于,还包括移位网络和多个输入缓存;

8.根据权利要求1-7任一项所述的硬件加速装置,其特征在于,所述硬件加速装置还包括权重缓冲器、增量缓冲器以及部分和缓冲器;

9.一种硬件加速方法,其特征在于,应用于如权利要求1-8任一项所述的处理单元,所述硬件加速方法包括:

10.根据权利要求9所述的硬件加速方法,其特征在于,所述根据所述位置索引,通过所述多路选择阵列从所述寄存器堆缓存的输入特征数据中选择与所述当前非零权重对应的输入激活子窗口,包括: