一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

脉动阵列、脉动阵列系统及其运算方法、装置、存储介质与流程

2022-12-02 22:02:27 来源:中国专利 TAG:


1.本公开涉及人工智能领域,尤其涉及一种脉动阵列、脉动阵列系统及其运算方法、装置、存储介质。


背景技术:

2.随着科技高速发展,卷积神经网络(convolutional neural networks,cnns)是人工智能领域中为处理图像数据而设计的神经网络结构,利用卷积运算在数学上具有平移不变性和局部性,能够有效提取图像特征,因此在图像分类、目标检测等计算机视觉领域有着十分广泛的应用。
3.卷积神经网络在图像处理问题上的高性能需要庞大的运算量来支撑。一般在卷积神经网络中,除了卷积运算之外,排序运算所占用的运算量也是很大。排序运算常用于目标检测算法中,且随着算法的不断发展,很多检测情景需要知道排序后每个数据在原数据中的所在位置,例如当出现相同数据时,需要根据原数据中的所在位置进行区分。又例如,目标检测算法中的非极大值抑制算子(non-max suppresion/nms),需要将数据按照某一特定项排序,其余项信息进行留备,以待后续运算使用。
4.在现有技术中,对特殊排序算子有两种解决办法:一是通过增加额外的堆排序(heap sort)硬件单元来高效处理排序类算子,另一种是通过内部的向量处理单元支持排序类别算子。其中,增加额外的硬件单元会增加不必要的面积,且需要排序的数据一般由加速器内部脉动阵列产生,用额外硬件或向量单元需要将数据由脉动阵列转移到外部处理,无法解决数据搬运带来的带宽浪费问题,更不能通过现有的脉动阵列直接实现排序数据的追踪功能,导致现有脉动阵列的利用率很差。


技术实现要素:

5.本公开提供了一种脉动阵列、脉动阵列系统及其运算方法、装置、存储介质,以至少解决现有技术中存在的以上技术问题。
6.根据本公开的第一方面,提供了一种脉动阵列,包括:
7.多个第一基础运算单元和多个第二基础运算单元采用行对应的矩阵排列方式进行连接,用于在排序模式下完成带标签特征数据的同步排序操作;其中,
8.每个第一基础运算单元包括第一比较器、第一控制寄存器以及第一结果缓存器,其中,所述第一比较器用于对输入的特征数据进行比较;所述第一控制寄存器用于将比较符号结果作为同步控制信号,输出至与当前第一基础运算单元相对应的第二基础运算单元中,以及将比较数据结果分别输出至所述第一结果缓存器与下一基础运算单元的第一特征输入寄存器内,并在排序结束后,将最后存储于所述第一结果缓存器内的临时特征数据作为排序特征数据进行输出;
9.每个第二基础运算单元包括第二比较器、第二控制寄存器、第二结果缓存器以及同步权重输入寄存器,其中,所述第二比较器用于根据所述同步权重输入寄存器接收到的
同步控制信号对输入的标签数据进行比较;所述第二控制寄存器用于将比较标签结果分别输出至所述第二结果缓存器与下一基础运算单元的第二特征输入寄存器内,并在排序结束后,将最后存储于所述第二结果缓存器内的临时标签数据作为排序特征数据的同步标签数据进行同步输出。
10.在一可实施方式中,所述每个第一基础运算单元包括第一特征输入寄存器,用于存储特征数据,所述第一结果缓存器用于暂存临时特征数据;所述每个第二基础运算单元包括第二特征输入寄存器,用于存储标签数据,所述第二结果缓存器用于暂存临时标签数据;
11.相应的,所述第一控制寄存器,还用于逐次将所述第一特征输入寄存器的特征数据和所述第一结果缓存器的临时特征数据输入所述第一比较器;所述第二控制寄存器,还用于逐次将所述第二特征输入寄存器的标签数据和所述第二结果缓存器的临时标签数据输入所述第二比较器。
12.在一可实施方式中,所述第一比较器具体用于:
13.逐次比较所述第一特征输入寄存器输入的特征数据和所述第一结果缓存器输入的临时特征数据的大小;根据预设排序规则,将符合第一排序条件的特征数据作为新的临时特征数据,并将符合第二排序条件的特征数据作为下一基础运算单元的第一特征输入寄存器内的特征数据;
14.相应的,所述第一控制寄存器具体还用于:将所述新的临时特征数据输出至所述第一结果缓存器,并将符合第二排序条件的特征数据输出至所述下一基础运算单元的第一特征输入寄存器内。
15.在一可实施方式中,所述第二比较器具体用于:
16.根据所述同步权重输入寄存器接收到的同步控制信号,比较所述第二特征输入寄存器输入的标签数据和所述第二结果缓存器输入的临时标签数据,将符合第一排序条件的标签数据作为新的临时标签数据,并将符合第二排序条件的标签数据作为下一基础运算单元的第二特征输入寄存器内的标签数据;
17.相应的,所述第二控制寄存器具体还用于:将所述新的临时标签数据同步输出至所述第二结果缓存器,并将符合第二排序条件的标签数据同步输出至所述下一基础运算单元的第二特征输入寄存器内。
18.在一可实施方式中,脉动阵列还包括:
19.所述多个第一基础运算单元和所述多个第二基础运算单元归类为同一卷积基础运算单元,所述卷积基础运算单元包括卷积权重输入寄存器、卷积特征输入寄存器、卷积结果缓存器、卷积控制寄存器和乘加器;其中,
20.所述卷积权重输入寄存器,用于存储卷积权重数据;
21.所述卷积特征输入寄存器,用于存储卷积特征数据;
22.所述卷积结果缓存器,用于暂存卷积临时数据;
23.所述乘加器,用于将所述卷积结果缓存器暂存的卷积临时数据作为累计加数,逐次计算所述卷积特征输入寄存器输入的卷积特征数据和所述卷积权重输入寄存器输入的卷积权重数据的乘法运算,并将计算结果作为新的卷积临时数据;
24.所述卷积控制寄存器,用于将所述卷积权重输入寄存器的卷积权重数据、所述卷
积特征输入寄存器的卷积特征数据以及所述卷积结果缓存器暂存的卷积临时数据输入所述乘加器,在完成当前计算周期后,分别将所述卷积特征数据和所述卷积权重数据传输至下一卷积基础运算单元的卷积特征输入寄存器和卷积权重输入寄存器,并在卷积运算结束后,将最后存储于所述卷积结果缓存器内的卷积临时数据作为卷积数据结果进行输出。
25.根据本公开的第二方面,提供了一种脉动阵列系统,包括:上述脉动阵列,系统总线、阵列控制器、特征缓存器以及输出缓存器,用于在排序模式下完成带标签特征数据的同步排序操作;其中,
26.所述系统总线分别与所述阵列控制器、所述特征缓存器以及所述输出缓存器连接,用于向所述阵列控制器发送排序控制指令,并在排序结束后,接收所述输出缓存器上传的排序特征数据及其对应的同步标签数据;
27.所述阵列控制器分别与所述特征缓存器、所述脉动阵列以及所述输出缓存器连接,用于在根据所述排序控制指令发送排序控制信号后,将特征数据及其对应的标签数据输入所述特征缓存器,在分配给所述脉动阵列中第一基础运算单元和第二基础运算单元的控制寄存器不同配置值后,逐步按组将所述特征缓存器内的特征数据及其对应的标签数据输入所述脉动阵列进行同步排序操作,并在排序结束后,将排序特征数据及其对应的同步标签数据输出至所述输出缓存器,其中,所述特征数据为神经网络模型产生的多个候选检测框分值,所述标签数据为与所述多个候选检测框分值相对应的位置索引信息。
28.在一可实施方式中,脉动阵列系统还包括:
29.权重缓存器,分别与所述系统总线、所述阵列控制器以及所述脉动阵列连接,用于在卷积模式下完成卷积运算;
30.相应的,所述系统总线还用于向所述阵列控制器发送卷积控制指令,并在卷积运算结束后,接收所述输出缓存器上传的卷积数据结果;
31.所述阵列控制器还用于在根据所述卷积控制指令发送卷积控制信号后,分配给所述脉动阵列中各个基础运算单元的控制寄存器卷积配置值,并分别将所述卷积特征缓存器内的卷积特征数据和所述卷积权重缓存器内的卷积权重数据作为两列对应数据,按照预设顺序逐个输入所述脉动阵列进行卷积计算,并在卷积运算结束后,将卷积数据结果传输至所述输出缓存器,其中,所述卷积权重数据为按照第一预设格式排列的卷积窗数据,所述卷积特征数据为按照第二预设格式排列的图像数据。
32.根据本公开的第三方面,提供了一种脉动阵列系统的运算方法,应用于脉动阵列系统,包括:
33.根据接收的工作指令,确定所述工作指令所指示的工作模式;
34.当所述工作模式为排序模式时,通过在阵列控制器发送的排序控制信号分配给脉动阵列中第一基础运算单元和第二基础运算单元的控制寄存器不同配置值之后,逐步按组将特征缓存器的特征数据及其对应的标签数据输入所述脉动阵列进行同步排序操作,并在排序结束后经由输出缓存器输出排序特征数据及其对应的同步标签数据,回传至系统总线,其中,所述脉动阵列中的第一基础运算单元和第二基础运算单元包括比较器,所述特征缓存器的特征数据为神经网络模型产生的多个候选检测框分值,所述标签数据为与所述多个候选检测框分值相对应的位置索引信息。
35.在一可实施方式中,所述根据接收的工作指令,确定所述工作指令所指示的工作
模式,包括:
36.根据接收的工作指令,由系统总线向所述阵列控制器发送排序控制指令,并根据所述排序控制指令,确定所述阵列控制器的排序控制信号。
37.在一可实施方式中,脉动阵列系统的运算方法还包括:
38.当所述工作模式为卷积模式时,通过在所述阵列控制器发送的卷积控制信号分配给所述脉动阵列中各个基础运算单元的控制寄存器卷积配置值之后,按照预设顺序分别将所述特征缓存器的卷积特征数据和权重缓存器的卷积权重数据作为两列对应数据逐个输入所述脉动阵列进行卷积计算,并在卷积运算结束后经由所述输出缓存器输出卷积数据结果,回传至系统总线,其中,所述权重缓存器的卷积权重数据为按照第一预设格式排列的卷积窗数据,所述特征缓存器的卷积特征数据为按照第二预设格式排列的图像数据。
39.根据本公开的第四方面,提供了一种脉动阵列系统的运算装置,所述装置包括:
40.模式确定模块,用于根据接收的工作指令,确定所述工作指令所指示的工作模式;
41.排序结果输出模块,用于当所述工作模式为排序模式时,通过在阵列控制器发送的排序控制信号分配给脉动阵列中第一基础运算单元和第二基础运算单元的控制寄存器不同配置值之后,逐步按组将特征缓存器的特征数据及其对应的标签数据输入所述脉动阵列进行同步排序操作,并在排序结束后经由输出缓存器输出排序特征数据及其对应的同步标签数据,回传至系统总线,其中,所述脉动阵列中的第一基础运算单元和第二基础运算单元包括比较器,所述特征缓存器的特征数据为神经网络模型产生的多个候选检测框分值,所述标签数据为与所述多个候选检测框分值相对应的位置索引信息。
42.在一可实施方式中,所述模式确定模块,具体用于:
43.根据接收的工作指令,由系统总线向所述阵列控制器发送排序控制指令,并根据所述排序控制指令,确定所述阵列控制器的排序控制信号。
44.在一可实施方式中,脉动阵列系统的运算装置还包括:
45.卷积结果输出模块,用于当所述工作模式为卷积模式时,通过在所述阵列控制器发送的卷积控制信号分配给所述脉动阵列中各个基础运算单元的控制寄存器卷积配置值之后,按照预设顺序分别将所述特征缓存器的卷积特征数据和权重缓存器的卷积权重数据作为两列对应数据逐个输入所述脉动阵列进行卷积计算,并在卷积运算结束后经由所述输出缓存器输出卷积数据结果,回传至系统总线,其中,所述权重缓存器的卷积权重数据为按照第一预设格式排列的卷积窗数据,所述特征缓存器的卷积特征数据为按照第二预设格式排列的图像数据。
46.根据本公开的第五方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开所述的方法。
47.本公开的脉动阵列、脉动阵列系统及其运算方法、装置、存储介质,通过根据接收的工作指令,确定所述工作指令所指示的工作模式,当所述工作模式为排序模式时,通过在阵列控制器发送的排序控制信号分配给脉动阵列中第一基础运算单元和第二基础运算单元的控制寄存器不同配置值之后,逐步按组将特征缓存器的特征数据及其对应的标签数据输入所述脉动阵列进行同步排序操作,并在排序结束后经由输出缓存器输出排序特征数据及其对应的同步标签数据,回传至系统总线,能够实现复杂排序算子在脉动阵列上的直接计算且追踪的功能,提高了脉动阵列的利用率,避免了因数据搬运导致传输带宽浪费的问
题。
48.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
49.通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
50.在附图中,相同或对应的标号表示相同或对应的部分。
51.图1a示出了本公开实施例一提供的一种脉动阵列结构示意图;
52.图1b示出了本公开实施例一提供的一种在排序模式下脉动阵列中基础运算单元的结构示意图;
53.图1c示出了本公开实施例提供的一种在卷积模式下脉动阵列中基础运算单元的结构示意图;
54.图2a示出了本公开实施例二提供的一种脉动阵列系统的结构示意图;
55.图2b示出了本公开实施例二提供的一种四个带标签数据的特征数据排序过程的示意图;
56.图3示出了本公开实施例三提供的一种脉动阵列系统的运算方法的流程图;
57.图4示出了本公开实施例四提供的一种脉动阵列系统的运算装置的结构示意图。
具体实施方式
58.为使本公开的目的、特征、优点能够更加的明显和易懂,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
59.实施例一
60.图1a为本公开实施例一提供的一种脉动阵列结构示意图,包括:多个第一基础运算单元和多个第二基础运算单元采用行对应的矩阵排列方式进行连接,用于在排序模式下完成带标签特征数据的同步排序操作。如图1a所示,本实施例由m x n个可配置的基础运算单元组成。
61.其中,基础运算单元指的是脉动阵列中最小的组成单元,第一基础运算单元可以是用于对输入的特征数据进行排序的运算单元,第二基础运算单元可以是用于对输入的特征数据所对应的标签进行跟随排序的运算单元。
62.具体的,本实施例提供的脉动阵列可以包含两类基础运算单元,包括第一基础运算单元与第二基础运算单元。第一基础运算单元与第二基础运算单元可以是行对应的矩阵排列方式进行连接,如图1a所示,示例性的,第一行可以是第一基础运算单元,第二行可以是第二基础运算单元。
63.图1b为本公开实施例一提供的一种在排序模式下脉动阵列中基础运算单元的结构示意图,如图1b所示,在排序模式下,权重输入寄存器与乘加器不参与工作;第一控制寄
存器与第一特征输入寄存器、第一结果缓存器和第一比较器均有连接,图中省略其连接关系表示;第二控制寄存器与第二特征输入寄存器、同步权重输入寄存器、第二结果缓存器和第二比较器均有连接,图中省略其连接关系表示。其中,
64.每个第一基础运算单元包括第一比较器、第一控制寄存器以及第一结果缓存器,第一比较器用于对输入的特征数据进行比较;第一控制寄存器用于控制将比较符号结果作为同步控制信号,输出至与当前第一基础运算单元相对应的第二基础运算单元中,以及将比较数据结果分别输出至第一结果缓存器与下一基础运算单元的第一特征输入寄存器内,并在排序结束后,将最后存储于第一结果缓存器内的临时特征数据作为排序特征数据进行输出;
65.每个第二基础运算单元包括第二比较器、第二控制寄存器、第二结果缓存器以及同步权重输入寄存器,其中,第二比较器用于根据同步权重输入寄存器接收到的同步控制信号对输入的标签数据进行比较;第二控制寄存器用于控制将比较标签结果分别输出至第二结果缓存器与下一基础运算单元的第二特征输入寄存器内,并在排序结束后,将最后存储于第二结果缓存器内的临时标签数据作为排序特征数据的同步标签数据进行同步输出。
66.在本公开实施例中,每个第一基础运算单元包括第一特征输入寄存器,用于存储特征数据,第一结果缓存器用于暂存临时特征数据;每个第二基础运算单元包括第二特征输入寄存器,用于存储标签数据,第二结果缓存器用于暂存临时标签数据;
67.相应的,第一控制寄存器,还用于逐次将第一特征输入寄存器的特征数据和第一结果缓存器的临时特征数据输入第一比较器;第二控制寄存器,还用于逐次将第二特征输入寄存器的标签数据和第二结果缓存器的临时标签数据输入第二比较器。
68.其中,第一比较器可以是通过比较输入端的两个特征大小,在输出端输出比较结果的电子元件;控制寄存器可以是存储有不同工作模式执行命令的存储器,例如在卷积运算模式下执行卷积运算相关指令,在排序模式下执行排序运算相关指令,第一控制寄存器可以是在排序模式下执行排序运算相关指令;第一结果缓存器可以是用于临时存储符合比较结果条件的特征数据的存储器;第一特征输入寄存器可以是用于存储特征数据的寄存器。排序特征数据为具有一定排序规律的特征数据。
69.其中,第二比较器可以是直接根据同步控制信号确定输入端的两个标签数据的比较关系,在输出端输出比较结果的电子元件,也即第二比较器不用真正进行比较操作,只需要借助比较器的比较功能,将同步控制信号传送的比较符号直接作为比较结果即可,这样方便将比较结果相对应的两个标签数据同步跟随特征数据进行移动;第二控制寄存器可以是在标签模式下执行标签排序运算相关指令;第二结果缓存器可以是用于临时存储符合比较结果条件的标签数据的存储器;第二特征输入寄存器可以是用于存储标签数据的寄存器;同步权重输入寄存器可以是作为第一基础运算单元与第二基础运算单元之间的“桥梁”,用于存储第一基础运算单元中第一比较器的比较符号。排序特征数据的同步标签数据为与第一基础计算单元中排序特征数据相对应的标签数据。在图像处理领域中,特征数据可以是神经网络模型产生的多个候选检测框分值,标签数据可以是与多个候选检测框分值相对应的位置索引信息。
70.在本公开实施例中,第一比较器具体用于:逐次比较第一特征输入寄存器输入的特征数据和第一结果缓存器输入的临时特征数据的大小;根据预设排序规则,将符合第一
排序条件的特征数据作为新的临时特征数据,并将符合第二排序条件的特征数据作为下一基础运算单元的第一特征输入寄存器内的特征数据;
71.相应的,第一控制寄存器具体还用于:控制将新的临时特征数据输出至第一结果缓存器,并将符合第二排序条件的特征数据输出至下一基础运算单元的第一特征输入寄存器内。
72.在本公开实施例中,第二比较器具体用于:根据同步权重输入寄存器接收到的同步控制信号,比较第二特征输入寄存器输入的标签数据和第二结果缓存器输入的临时标签数据,将符合第一排序条件的标签数据作为新的临时标签数据,并将符合第二排序条件的标签数据作为下一基础运算单元的第二特征输入寄存器内的标签数据;
73.相应的,第二控制寄存器具体还用于:控制将新的临时标签数据同步输出至第二结果缓存器,并将符合第二排序条件的标签数据同步输出至下一基础运算单元的第二特征输入寄存器内。
74.其中,第一排序条件、第二排序条件以及预设排序规则可以是根据实际需求而设定的条件,比如,第一排序条件可以是设定为排序结果较大的数据,第二排序条件可以是设定为排序结果较小的数据,预设排序规则是要求数据由大到小进行排序,或者是将排序结果大的特征数据输入第一结果缓存器,将排序结果大的标签数据输入第二结果缓存器。
75.具体的,本实施例支持带标签的排序算子,也可以是称为影子模式(shadow mode)。也即,第一基础运算单元用来比较输入的特征数据的大小,而第二基础单元不会真正比较标签数据的大小,而是将第二基础运算单元的比较符号作为参考依据,目的是将第二基础单元的标签数据跟随第一基础运算单元的特征数据进行移动。在排序结束后,将最后存储于第一结果缓存器内的临时特征数据作为排序特征数据进行输出;将最后存储于第二结果缓存器内的临时标签数据作为排序特征数据的同步标签数据进行同步输出。
76.示例性的,以当前第一基础运算单元和第二基础运算单元为例进行举例说明,第一结果缓存器和第二结果缓存器可以默认设置为直接暂存输入的首个数据,特征数据按照顺序依次输入的是:特征数据a以及其对应的标签数据为a,作为首次输入脉动阵列的数据;其次,特征数据b以及其对应的标签数据为b;再次,特征数据c以及其对应的标签数据为c。预设排序规则为将排序结果大的特征数据输入第一结果缓存器,将排序结果大的标签数据输入第二结果缓存器;将排序结果小的特征数据输入下一基础运算单元,将排序结果小的标签数据输入下一基础运算单元。第一排序条件为比较结果中较大的数据,第二排序条件为比较结果中较小的数。
77.示例性的,在第一基础运算单元中,第一控制寄存器先将第一个第一特征输入寄存器的特征数据a默认直接暂存至第一结果缓存器中,没有同步控制信号进行输出。当第二个特征数据b输入第一比较器时,第一结果缓存器中的a也输入第一比较器进行比较,第一比较器先比较输入的特征数据b和第一结果缓存器中的特征数据a,若比较数据结果为“a》b”,比较符号为“》”,将符合第一排序条件的特征数据a作为新的临时特征数据,将符合第二排序条件的特征数据b作为下一基础运算单元的第一特征输入寄存器内的特征数据。第一控制寄存器将特征数据a输出至第一结果缓存器,将特征数据b输出至下一基础运算单元的第一特征输入寄存器内,并将比较符号“》”作为同步控制信号输出至与当前第一基础运算单元相对应的第二基础运算单元中。而后,本实施例将第三个特征数据c和结果缓存器暂存
的特征数据a输入第一比较器进行比较大小,比较过程如上所述,且在下一个基础运算单元同样根据依次输入的特征数据进行同类型的比较大小,不再赘述。
78.示例性的,在第二基础运算单元中,第二控制寄存器同时先将第一个第二特征输入寄存器的标签数据a默认直接暂存至第二结果缓存器中,当第二个标签数据b输入第二比较器时,和第二结果缓存器中的标签数据a输入第一比较器进行比较,第二比较器根据同步权重输入寄存器接收到的同步控制信号“》”直接对输入的标签数据进行比较,比较标签结果为“a》b”,将符合第一排序条件的标签数据a作为新的临时标签数据,将符合第二排序条件的标签数据b作为下一基础运算单元的第二特征输入寄存器内的特征数据。第二控制寄存器控制将标签数据a输出至第二结果缓存器,将标签数据b输出至下一基础运算单元的第二特征输入寄存器内,实现特征数据a和标签数据a以及特征数据b和标签数据b的同步输出。而后,本实施例将第三个标签数据c和结果缓存器暂存的a输入第二比较器进行比较大小,比较过程如上所述,且在下一个基础运算单元同样根据依次输入的标签数据进行同类型的比较大小,不再赘述。
79.本实施例通过在常规的脉动阵列中设置比较器,将脉动阵列中的基础运算单元进行分类,第一基础运算单元设置为对特征数据进行排序,第二基础运算单元设置为对特征数据相对应的标签数据进行排序,并设置排序运算下第一控制寄存器和第二控制寄存器需要执行的相应的命令,允许影子模式,即通过脉动阵列中权重输入/输出线路传递控制信号,第二基础运算单元的数据流向由相邻单元的运算结果控制,能够实现复杂的带有标签数据的同步排序功能,避免了将数据搬运到其他设备上进行排序的操作,节省了运算时间和带宽,并在多层网络计算和复杂算子的情况下提高了脉动阵列本身在运算中的利用率,减少外部系统总线的带宽压力和外部额外算力的需求。
80.在本公开实施例中,脉动阵列还包括:多个第一基础运算单元和多个第二基础运算单元归类为同一卷积基础运算单元,卷积基础运算单元包括卷积权重输入寄存器、卷积特征输入寄存器、卷积结果缓存器、卷积控制寄存器和乘加器;其中,
81.卷积权重输入寄存器,用于存储卷积权重数据;
82.卷积特征输入寄存器,用于存储卷积特征数据;
83.卷积结果缓存器,用于暂存卷积临时数据;
84.乘加器,用于将卷积结果缓存器暂存的卷积临时数据作为累计加数,逐次计算卷积特征输入寄存器输入的卷积特征数据和卷积权重输入寄存器输入的卷积权重数据的乘法运算,并将计算结果作为新的卷积临时数据;
85.卷积控制寄存器,用于控制将卷积权重输入寄存器的卷积权重数据、卷积特征输入寄存器的卷积特征数据以及卷积结果缓存器暂存的卷积临时数据输入乘加器,在完成当前计算周期后,分别将卷积特征数据和卷积权重数据传输至下一卷积基础运算单元的卷积特征输入寄存器和卷积权重输入寄存器,并在卷积运算结束后,将最后存储于卷积结果缓存器内的卷积临时数据作为卷积数据结果进行输出。
86.图1c为本公开实施例提供的一种在卷积模式下脉动阵列中基础运算单元的结构示意图。如图1c所示,在卷积模式下,每个基础运算单元还包括权重输入寄存器和乘加器,比较器不参与工作,卷积控制寄存器与卷积特征输入寄存器、卷积权重输入寄存器、卷积结果缓存器和乘加器均有连接,图中省略其连接关系表示,本实施例提供的基础运算单元用
于在卷积模式下完成卷积运算。
87.其中,卷积权重输入寄存器指的是用于存储卷积权重数据的寄存器,在图像处理领域,卷积权重数据可以是卷积窗数据,而在其他领域权重数据也可以是任何有卷积需求的数据。
88.其中,卷积特征数据可以是在卷积模式下存储于卷积特征输入寄存器的至少一个数据,在图像处理领域,卷积特征数据可以是图像数据,而在其他领域卷积特征数据也可以是任何有卷积需求的数据。卷积临时数据可以是每当前计算周期需要用到的累计加数。卷积数据结果可以是由多个基础运算单元中卷积结果缓存器的卷积临时数据组成的、具有新特征的数据。
89.具体的,本实施例中的基础运算单元还可以实现卷积运算的基本功能,在卷积权重输入寄存器与卷积特征输入寄存器中存储具有卷积需求的两系列特征数据,将其输入乘加器进行卷积运算,能够得到具有新特征的数据。
90.具体的,本实施例以当前一个卷积基础运算单元的卷积运算为例进行说明。卷积控制寄存器发出卷积模式相对应的控制信号,控制将卷积权重输入寄存器的卷积权重数据、卷积特征输入寄存器的卷积特征数据以及卷积结果缓存器暂存的卷积临时数据输入乘加器,在每次计算周期中,均将卷积结果缓存器暂存的卷积临时数据作为累计加数,逐次计算卷积特征数据和卷积权重数据的乘法运算,并将计算结果作为新的卷积临时数据进行储存。并且,本实施例在完成当前计算周期后,分别将卷积特征数据和卷积权重数据传输至下一卷积基础运算单元的卷积特征输入寄存器和卷积权重输入寄存器,并对新输入的卷积特征数据和卷积权重数据进行同样的卷积运算,同理,下一卷积基础元算单元的卷积运算如上所述。
91.本实施例还可以通过设置卷积模式下的卷积控制寄存器的相关指令,实现基础卷积运算功能。
92.实施例二
93.图2a为本公开实施例二提供的一种脉动阵列系统的结构示意图,包括:脉动阵列,系统总线、阵列控制器、特征缓存器以及输出缓存器,用于在排序模式下完成排序操作;其中,
94.系统总线分别与阵列控制器、特征缓存器以及输出缓存器连接,用于向阵列控制器发送排序控制指令,并在排序结束后,接收输出缓存器上传的排序特征数据及其对应的同步标签数据;
95.阵列控制器分别与特征缓存器、脉动阵列以及输出缓存器连接,用于在根据排序控制指令发送排序控制信号后,控制将特征数据及其对应的标签数据输入特征缓存器,在分配给脉动阵列中第一基础运算单元和第二基础运算单元的控制寄存器不同配置值后,逐步按组将特征缓存器内的特征数据及其对应的标签数据输入脉动阵列进行同步排序操作,并在排序结束后,将排序特征数据及其对应的同步标签数据输出至输出缓存器,其中,特征数据为神经网络模型产生的多个候选检测框分值,标签数据为与多个候选检测框分值相对应的位置索引信息。
96.其中,系统总线是连接计算机系统的主要组件,用于接收中央控制器发送的工作指令和需要进行排序的数据,并向阵列控制器发送不同任务的控制指令。当脉动阵列处理
的特征数据为排序任务时,系统总线则像阵列器发送排序控制指令,阵列控制器用于对接收到的排序控制指令进行控制和译码,来实现数据的存储、转发以及整个阵列的管理。特征缓存器用于存储具有排序需求的排序特征数据,输出缓存器则用于接收脉动阵列上传的排序数据结果,再回传至系统总线。
97.其中,排序控制指令为系统总线经过对工作指令的解析而得的排序指令,并发送至阵列控制器。当本实施例中的脉动阵列接收的任务为排序运算时,阵列控制器则向脉动阵列内第一基础运算单元的第一控制寄存器分配第一配置值,向第二基础运算单元的第二控制寄存器分配第二配置值。排序控制信号为阵列控制器中各个器件进行交互的排序执行信号,用于实现排序运算。其中,第一配置值对应于第一控制信号,用于使得第一基础运算单元完成特征数据的排序操作;第二配置值对应于第二控制信号,用于使得第二基础运算单元完成标签数据的同步跟随排序操作。
98.具体的,本实施例在排序模式下完成排序操作,系统总线向阵列控制器发送排序控制指令,阵列控制器发送排序控制信号,在分配给脉动阵列中第一基础运算单元和第二基础运算单元的控制寄存器不同配置值之后,将存储于特征缓存器内的特征数据及其对应的标签数据按照顺序按组逐项输入脉动阵列进行同步排序操作,在排序结束后,将脉动阵列输出的具有排序特征的排序特征数据及其对应的同步标签数据输出至输出缓存器,并经由输出缓存器传输至系统总线。
99.图2b为本公开实施例二提供的一种四个带标签数据的特征数据排序过程的示意图,属于复杂标签数据,也即超过单个基础运算单元的数据输入位宽的场景。如图2b所示,本实施例为对4个乱序排列的数据(4,1,8,2)做保留位置索引(index)的排序过程。这一运算过程共使用2行基础运算单元:第1行采用排序模式,对特征数据(4,1,8,2)进行排序并输出关于标签的同步控制信号;位置索引(index)作为标签数据与特征数据一对一进入影子模式(shadow mode)下的第2行基础运算单元,与特征数据相对应的进行排序(换位)。排序运算完成后,原始特征数据按从大到小的顺序依次排列在第1行基础运算单元内的第一结果缓存器中,每个特征数据在原数据中的位置,即标签数据对应排列在第2行基础运算单元内的第二结果缓存器中,脉动阵列最后输入已排序的特征数据和同步的标签数据。
100.具体的,本实施例将带标签数据的特征数据从特征缓存器逐步按组输入脉动阵列,将特征数据位于第一行逐个输入脉动阵列的第一基础运算单元,将标签数据位于第二行逐个输入脉动阵列的第二基础运算单元。每行数据依次从第一列基础运算单元的特征输入器进入脉动阵列。
101.在排序模式下的第一基础单元操作模式如下:
102.i)权重输入寄存器和乘加器被禁用(bypass);
103.ii)首个特征数据进入计算单元时,直接存入第一结果缓存器,没有同步控制信号输出;iii)非首个特征数据从第一特征输入进入第一比较器,与第一结果缓存中的数据进行比较,排序后的结果按照预设排序规则(例如:输出较大值或输出较小值)分别输入第一结果缓存器和特征输出,并将比较符号作为同步控制信号从权重输出线路传递向下一计算单元;
104.iv)全部数据排序完成后,输出第一结果缓存器中的特征。
105.在影子模式(shadow mode)下的第二基础运算单元操作模式如下:
106.i)乘加器被禁用(bypass);
107.ii)首个标签数据进入基础运算单元时,直接存入第二结果缓存器,没有权重数据输入输出;
108.iii)非首个标签数据从第二特征输入寄存器进入第二比较器时,根据从权重输入寄存器进入第二比较器的同步控制信号,第二控制比较器将标签数据和第二结果缓存中的临时标签数据按照第一基础运算单元的比较结果分别输入第二结果缓存器和特征输出,以完成标签同步移动;若下方基础运算单元也采用影子模式,则控制信号从权重输出线路继续向下广播至下一基础运算单元;
109.iv)全部特征数据和标签数据排序完成后,输出第二结果缓存器中的标签。
110.如图2a所示,在本公开实施例中,脉动阵列系统还包括:权重缓存器,分别与系统总线、阵列控制器以及脉动阵列连接,用于在卷积模式下完成卷积运算;
111.相应的,系统总线还用于向阵列控制器发送卷积控制指令,并在卷积运算结束后,接收输出缓存器上传的卷积数据结果;
112.阵列控制器还用于在根据卷积控制指令发送卷积控制信号后,分配给脉动阵列中各个基础运算单元的控制寄存器卷积配置值,并分别将卷积特征缓存器内的卷积特征数据和卷积权重缓存器内的卷积权重数据作为两列对应数据,按照预设顺序逐个输入脉动阵列进行卷积计算,并在卷积运算结束后,将卷积数据结果传输至输出缓存器,其中,卷积权重数据为按照第一预设格式排列的卷积窗数据,卷积特征数据为按照第二预设格式排列的图像数据。
113.其中,权重缓存器用于存储具有卷积需求的权重数据,系统总线用于接收中央控制器发送的工作指令和需要进行卷积运算的数据,并向阵列控制器发送卷积控制指令。预设顺序、第一预设格式和第二预设格式均是符合卷积运算的排列格式。卷积配置值是对应于卷积控制信号,用于使得卷积基础运算单元完成卷积特征数据和卷积权重数据的卷积运算操作。例如,在图像处理领域中,卷积权重数据可以为按照第一预设格式排列的卷积窗数据,卷积特征数据可以是按照第二预设格式排列的图像数据。
114.具体的,在卷积运算模式下,本实施例中阵列控制器还用于在根据系统总线发送的卷积控制指令发送卷积控制信号,分配给脉动阵列中各个卷积基础运算单元内卷积控制寄存器的卷积配置值,并分别将卷积特征缓存器内的卷积特征数据和卷积权重缓存器内的卷积权重数据作为两列对应数据,按照预设顺序逐个输入脉动阵列进行卷积计算,并在卷积运算结束后,接收脉动阵列传输的卷积数据结果至输出缓存器,经由输出缓存器回传至系统总线。
115.本实施例提供的脉动阵列系统,能够支持改进的脉动阵列进行带有标签数据的同步排序,实现了复杂排序算子在脉动阵列上的直接计算且追踪的功能,提高了脉动阵列的利用率,避免了因数据搬运导致传输带宽浪费的问题。
116.实施例三
117.图3为本公开实施例三提供的一种脉动阵列系统的运算方法的流程图,该方法可以由本公开实施例提供的脉动阵列系统的运算装置来执行,该装置可采用软件和/或硬件的方式实现。该方法具体包括:
118.s310、根据接收的工作指令,确定工作指令所指示的工作模式。
119.在本公开实施例中,根据接收的工作指令,确定工作指令所指示的工作模式,包括:根据接收的工作指令,由系统总线向阵列控制器发送排序控制指令,并根据排序控制指令,确定阵列控制器的排序控制信号。
120.其中,工作指令可以是包含有任务内容的指令信息。本实施例中的工作模式排序运算模式和卷积运算模式两种,当工作模式为排序运算模式时,阵列控制器根据接收的排序控制指令向脉动阵列系统内的其他器件发送排序控制信号,以完成相应的排序操作;当工作模式为卷积运算模式时,阵列控制器根据接收的阵列控制指令向脉动阵列系统内的其他器件发送卷积控制信号,以完成相应的卷积运算操作。
121.s320、当工作模式为排序模式时,通过在阵列控制器发送的排序控制信号分配给脉动阵列中第一基础运算单元和第二基础运算单元的控制寄存器不同配置值之后,逐步按组将特征缓存器的特征数据及其对应的标签数据输入脉动阵列进行同步排序操作,并在排序结束后经由输出缓存器输出排序特征数据及其对应的同步标签数据,回传至系统总线。
122.其中,脉动阵列中的第一基础运算单元和第二基础运算单元包括比较器,特征缓存器的特征数据为神经网络模型产生的多个候选检测框分值,标签数据为与多个候选检测框分值相对应的位置索引信息。
123.在本公开实施例中,脉动阵列系统还包括:当工作模式为卷积模式时,通过在阵列控制器发送的卷积控制信号分配给脉动阵列中各个基础运算单元的控制寄存器卷积配置值之后,按照预设顺序分别将特征缓存器的卷积特征数据和权重缓存器的卷积权重数据作为两列对应数据逐个输入脉动阵列进行卷积计算,并在卷积运算结束后经由输出缓存器输出卷积数据结果,回传至系统总线,其中,权重缓存器的卷积权重数据为按照第一预设格式排列的卷积窗数据,特征缓存器的卷积特征数据为按照第二预设格式排列的图像数据。
124.实施例四
125.图4是本公开实施例提供的一种脉动阵列系统的运算装置的结构示意图,该装置具体包括:
126.模式确定模块410,用于根据接收的工作指令,确定工作指令所指示的工作模式;
127.排序结果输出模块420,用于当工作模式为排序模式时,通过在阵列控制器发送的排序控制信号分配给脉动阵列中第一基础运算单元和第二基础运算单元的控制寄存器不同配置值之后,逐步按组将特征缓存器的特征数据及其对应的标签数据输入脉动阵列进行同步排序操作,并在排序结束后经由输出缓存器输出排序特征数据及其对应的同步标签数据,回传至系统总线,其中,脉动阵列中的第一基础运算单元和第二基础运算单元包括比较器,特征缓存器的特征数据为神经网络模型产生的多个候选检测框分值,标签数据为与多个候选检测框分值相对应的位置索引信息。
128.在一可实施方式中,模式确定模块,具体用于:
129.根据接收的工作指令,由系统总线向阵列控制器发送排序控制指令,并根据排序控制指令,确定阵列控制器的排序控制信号。
130.在一可实施方式中,脉动阵列系统的运算装置还包括:
131.卷积结果输出模块,用于当工作模式为卷积模式时,通过在阵列控制器发送的卷积控制信号分配给脉动阵列中各个基础运算单元的控制寄存器卷积配置值之后,按照预设顺序分别将特征缓存器的卷积特征数据和权重缓存器的卷积权重数据作为两列对应数据
逐个输入脉动阵列进行卷积计算,并在卷积运算结束后经由输出缓存器输出卷积数据结果,回传至系统总线,其中,权重缓存器的卷积权重数据为按照第一预设格式排列的卷积窗数据,特征缓存器的卷积特征数据为按照第二预设格式排列的图像数据。
132.根据本公开的实施例,本公开还提供了一种可读存储介质。
133.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
134.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
135.以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献