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

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

2023-04-11 10:29:15 来源:中国专利 TAG:


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


背景技术:

2.目前,人工智能在自动驾驶、人脸识别、医疗服务等领域都发挥着十分重要的作用。深度学习(deep learning)是近年来人工智能算法中被讨论、研究和应用最多的一种。
3.在深度学习结构中,卷积神经网络(convolutional neural networks,cnns)是一种为处理图像数据而设计的神经网络结构,能够有效提取图像特征,因此在图像分类、目标检测等计算机视觉领域有着十分广泛的应用。卷积神经网络在图像处理问题上的高性能需要庞大的运算量来支撑。一般在卷积神经网络中,占用运算量最大的是卷积运算,其次是排序运算。
4.虽然脉动阵列具有较高的并行处理能力,能够对卷积运算有很好的加速效果,但是并不具备排序运算功能。而排序运算在目标检测网络中必不可少,每当涉及到排序运算时,由于现有的脉动阵列无法处理,因此只能将数据搬运到其他设备上进行单独的排序运算。而数据搬运过程不仅会占用传输带宽,且由于排序运算一般出现在目标检测网络的最后步骤,导致数据在其他设备进行处理时,当前设备内的脉动阵列为空置状态,利用率较低。


技术实现要素:

5.本公开提供了一种脉动阵列、脉动阵列系统及其运算方法、装置、存储介质,以至少解决现有技术中存在的以上技术问题。
6.根据本公开的第一方面,提供了一种脉动阵列,包括:
7.矩阵式排列连接的多个基础运算单元,其中,每个基础运算单元包括特征输入寄存器、比较器、结果缓存器以及控制寄存器,用于在排序模式下完成排序;
8.所述特征输入寄存器,用于存储第一特征数据;
9.所述结果缓存器,用于暂存第一临时数据;
10.所述比较器分别与所述特征输入寄存器和所述结果缓存器连接,用于逐次比较所述特征输入寄存器输入的第一特征数据与所述结果缓存器暂存的第一临时数据;
11.所述控制寄存器分别与所述特征输入寄存器、所述结果缓存器和所述比较器连接,用于将所述特征输入寄存器的第一特征数据和所述结果缓存器暂存的第一临时数据输入所述比较器,将比较结果分别输出至所述结果缓存器与下一基础运算单元的特征输入寄存器内,并在排序结束后,将最后存储于所述结果缓存器内的第一临时数据作为第一数据结果进行输出。
12.在一可实施方式中,所述比较器具体用于:
13.逐次比较所述特征输入寄存器输入的第一特征数据与所述结果缓存器暂存的第
一临时数据的大小;根据预设排序规则,将符合第一排序条件的特征数据作为新的第一临时数据,并将符合第二排序条件的特征数据作为所述下一基础运算单元的特征输入寄存器内的第一特征数据;
14.相应的,所述控制寄存器具体用于:将所述新的第一临时数据输出至所述结果缓存器,并将符合所述第二排序条件的特征数据输出至所述下一基础运算单元的特征输入寄存器内。
15.在一可实施方式中,每个基础运算单元包括权重输入寄存器和乘加器,用于在卷积模式下完成卷积运算;其中,
16.所述权重输入寄存器,用于存储权重数据;
17.所述乘加器分别与所述特征输入寄存器、所述权重输入寄存器和所述结果缓存器连接,用于将所述结果缓存器暂存的第二临时数据作为累计加数,逐次计算所述特征输入寄存器输入的第二特征数据和所述权重输入寄存器输入的权重数据的乘法运算,并将计算结果作为新的第二临时数据进行储存;
18.相应的,所述特征输入寄存器,用于存储第二特征数据;
19.所述控制寄存器分别与所述权重输入寄存器和所述乘加器连接,用于将所述权重输入寄存器的权重数据、所述特征输入寄存器的第二特征数据以及所述结果缓存器暂存的第二临时数据输入所述乘加器,在完成当前计算周期后,分别将第二特征数据传输至第一相邻基础运算单元的特征输入寄存器以及将权重数据传输至第二相邻基础运算单元的权重输入寄存器,并在卷积运算结束后,将最后存储于所述结果缓存器内的第二临时数据作为第二数据结果进行输出。
20.根据本公开的第二方面,提供了一种脉动阵列系统,包括:上述任一项所述的脉动阵列,系统总线、阵列控制器、特征缓存器以及输出缓存器,用于在排序模式下完成排序操作;其中,
21.所述系统总线分别与所述阵列控制器、所述特征缓存器以及所述输出缓存器连接,用于向所述阵列控制器发送第一控制指令,并在排序结束后,接收所述输出缓存器上传的第一数据结果;
22.所述阵列控制器分别与所述特征缓存器、所述脉动阵列以及所述输出缓存器连接,用于在根据所述第一控制指令发送第一控制信号后,将第一特征数据输入所述特征缓存器,在分配给所述脉动阵列中各个基础运算单元的控制寄存器第一配置值后,逐个将所述特征缓存器内的第一特征数据输入所述脉动阵列进行排序操作,并在排序结束后,将第一数据结果传输至所述输出缓存器,其中,所述第一特征数据为神经网络模型产生的多个候选检测框分值。
23.在一可实施方式中,所述排序模式为topk算法排序,所述阵列控制器还用于:
24.逐个将所述第一特征数据输入k个基础运算单元进行排序操作,且在第k个基础运算单元内,将符合第二排序条件的特征数据进行丢弃处理,得到具有排序特征的k个数据结果,并将所述具有排序特征的k个数据结果作为所述第一数据结果进行输出。
25.在一可实施方式中,所述系统还包括:
26.权重缓存器,分别与所述系统总线、所述阵列控制器以及所述脉动阵列连接,用于在卷积模式下完成卷积运算;
27.相应的,所述系统总线还用于向所述阵列控制器发送第二控制指令,并在卷积运算结束后,接收所述输出缓存器上传的第二数据结果;
28.所述阵列控制器还用于在根据所述第二控制指令发送第二控制信号后,分配给所述脉动阵列中各个基础运算单元的控制寄存器第二配置值,并分别将所述特征缓存器内的第二特征数据和所述权重缓存器内的权重数据作为两列对应数据,按照预设顺序逐个输入所述脉动阵列进行卷积计算,并在卷积运算结束后,将第二数据结果传输至所述输出缓存器,其中,所述权重数据为按照第一预设格式排列的卷积窗数据,所述第二特征数据为按照第二预设格式排列的图像数据。
29.根据本公开的第三方面,提供了一种脉动阵列系统的运算方法,应用于脉动阵列系统,包括:
30.根据接收的工作指令,确定所述工作指令所指示的工作模式;
31.当所述工作模式为排序模式时,通过在阵列控制器发送的第一控制信号分配给脉动阵列中各个基础运算单元的控制寄存器第一配置值之后,逐个将特征缓存器的第一特征数据输入所述脉动阵列进行排序操作,并经由输出缓存器输出第一数据结果,回传至系统总线,其中,所述脉动阵列中的各个基础运算单元包括比较器,所述特征缓存器的第一特征数据为神经网络模型产生的多个候选检测框分值。
32.在一可实施方式中,所述根据接收的工作指令,确定所述工作指令所指示的工作模式,包括:
33.根据接收的工作指令,由系统总线向所述阵列控制器发送第一控制指令,并根据所述第一控制指令,确定所述阵列控制器的第一控制信号。
34.在一可实施方式中,所述排序模式为topk算法排序,所述逐个将特征缓存器的第一特征数据输入所述脉动阵列进行排序操作,经由输出缓存器输出第一数据结果,包括:
35.逐个将所述特征缓存器的第一特征数据输入所述脉动阵列内的k个基础运算单元进行排序操作,得到具有排序特征的k个数据结果;
36.将所述具有排序特征的k个数据结果作为所述第一数据结果,经由所述输出缓存器进行输出。
37.在一可实施方式中,所述方法还包括:
38.当所述工作模式为卷积模式时,通过在所述阵列控制器发送的第二控制信号分配给脉动阵列中各个基础运算单元的控制寄存器第二配置值之后,分别将所述特征缓存器的第二特征数据和权重缓存器的权重数据作为两列对应数据,按照预设顺序逐个输入所述脉动阵列进行卷积计算,并经由所述输出缓存器输出第二数据结果,回传至系统总线,其中,所述权重缓存器的权重数据为按照第一预设格式排列的卷积窗数据,所述特征缓存器的第二特征数据为按照第二预设格式排列的图像数据;
39.相应的,所述根据接收的工作指令,确定所述工作指令所指示的工作模式,包括:
40.根据接收的工作指令,由系统总线向所述阵列控制器发送第二控制指令,并根据所述第二控制指令,确定所述阵列控制器的第二控制信号。
41.根据本公开的第四方面,提供了一种脉动阵列系统的运算装置,包括:
42.模式确定模块,用于根据接收的工作指令,确定所述工作指令所指示的工作模式;
43.排序结果输出模块,用于当所述工作模式为排序模式时,通过在阵列控制器发送
的第一控制信号分配给脉动阵列中各个基础运算单元的控制寄存器第一配置值之后,逐个将特征缓存器的第一特征数据输入所述脉动阵列进行排序操作,经由输出缓存器输出第一数据结果,并回传系统总线,其中,所述脉动阵列中的各个基础运算单元包括比较器,所述特征缓存器的第一特征数据为神经网络模型产生的多个候选检测框分值。
44.在一可实施方式中,所述模式确定模块具体用于:根据接收的工作指令,由系统总线向所述阵列控制器发送第一控制指令,并根据所述第一控制指令,确定所述阵列控制器的第一控制信号。
45.在一可实施方式中,所述排序结果输出模块具体用于:
46.当所述排序模式为topk算法排序时,逐个将所述特征缓存器的第一特征数据输入所述脉动阵列内的k个基础运算单元进行排序操作,得到具有排序特征的k个数据结果;将所述具有排序特征的k个数据结果作为所述第一数据结果,经由所述输出缓存器进行输出。
47.在一可实施方式中,所述装置还包括:
48.卷积结果输出模块,当所述工作模式为卷积模式时,通过在所述阵列控制器发送的第二控制信号分配给脉动阵列中各个基础运算单元的控制寄存器第二配置值之后,分别将所述特征缓存器的第二特征数据和权重缓存器的权重数据作为两列对应数据,按照预设顺序逐个输入所述脉动阵列进行卷积计算,并经由所述输出缓存器输出第二数据结果,回传至系统总线,其中,所述权重缓存器的权重数据为按照第一预设格式排列的卷积窗数据,所述特征缓存器的第二特征数据为按照第二预设格式排列的图像数据;
49.相应的,所述模式确定模块具体用于:根据接收的工作指令,由系统总线向所述阵列控制器发送第二控制指令,并根据所述第二控制指令,确定所述阵列控制器的第二控制信号。
50.根据本公开的第五方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开所述的方法。
51.本公开的脉动阵列、脉动阵列系统及其运算方法、装置、存储介质,通过根据接收的工作指令,确定所述工作指令所指示的工作模式;当所述工作模式为排序模式时,通过在阵列控制器发送的第一控制信号分配给脉动阵列中各个基础运算单元的控制寄存器第一配置值之后,逐个将特征缓存器的第一特征数据输入所述脉动阵列进行排序操作,并经由输出缓存器输出第一数据结果,回传至系统总线,其中,所述脉动阵列中的各个基础运算单元包括比较器,能够在加速神经网络卷积运算的同时,实现排序功能,避免了将数据搬运到其他设备上进行排序的操作,节省了运算时间和带宽,并提高了脉动阵列本身在运算中的利用率。
52.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
53.通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
54.在附图中,相同或对应的标号表示相同或对应的部分。
55.图1a示出了本公开实施例一提供的一种脉动阵列结构示意图;
56.图1b示出了本公开实施例一提供的一种在排序模式下脉动阵列中基础运算单元的结构示意图;
57.图1c示出了本公开实施例一提供的一种在卷积模式下脉动阵列中基础运算单元的结构示意图;
58.图2a示出了本公开实施例二提供的一种脉动阵列系统的结构示意图;
59.图2b示出了本公开实施例二提供的一种脉动阵列系统的结构示意图;
60.图2c示出了本公开实施例提供的一种示例性的卷积拆分和运算过程示意图;
61.图3示出了本公开实施例三提供的一种脉动阵列系统的运算方法的流程图;
62.图4示出了本公开实施例三提供的一种脉动阵列系统的运算装置的结构示意图。
具体实施方式
63.为使本公开的目的、特征、优点能够更加的明显和易懂,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
64.实施例一
65.图1a为本公开实施例一提供的一种脉动阵列结构示意图,包括:矩阵式排列连接的多个基础运算单元,其中,每个基础运算单元包括特征输入寄存器、比较器、结果缓存器以及控制寄存器,用于在排序模式下完成排序。如图1a所示,本实施例由m x n个可配置的基础运算单元组成。
66.图1b为本公开实施例一提供的一种在排序模式下脉动阵列中基础运算单元的结构示意图,如图1b所示,在排序模式下,权重输入寄存器与乘加器不参与工作,控制寄存器与特征输入寄存器、结果缓存器和比较器均有连接,图中省略其连接关系表示。其中,
67.特征输入寄存器,用于存储第一特征数据;结果缓存器,用于暂存第一临时数据;
68.比较器分别与特征输入寄存器和结果缓存器连接,用于逐次比较特征输入寄存器输入的第一特征数据与结果缓存器暂存的第一临时数据;
69.控制寄存器分别与特征输入寄存器、结果缓存器和比较器连接,用于控制将特征输入寄存器的第一特征数据和结果缓存器暂存的第一临时数据输入比较器,控制比较器将比较结果分别输出至结果缓存器与下一基础运算单元的特征输入寄存器内,并在排序结束后,将最后存储于结果缓存器内的第一临时数据作为第一数据结果进行输出。
70.其中,基础运算单元指的是脉动阵列中最小的组成单元,每个基础运算单元都能独立的完成基础卷积运算与排序运算。特征输入寄存器指的是用于存储特征数据的寄存器;比较器指的是通过比较输入端的两个特征大小,在输出端输出比较结果的电子元件;结果缓存器指的是用于临时存储符合比较结果条件的特征的存储器;控制寄存器指的是存储有不同工作模式执行命令的存储器。其中,寄存器指的是有限存贮容量的高速存贮部件,可用来暂存指令、数据和地址;缓存器指的是可以进行高速数据交换的存储器。
71.其中,第一特征数据可以是在排序模式下存储于特征输入寄存器的至少一个数据,第一临时数据可以是符合比较结果条件而暂时存储在结果缓存器内的一个数据。第一
数据结果可以是由多个基础运算单元中结果缓存器的第一临时数据组成的、具有一定排序特征的数据。
72.在本公开实施例中,比较器具体用于:逐次比较特征输入寄存器输入的第一特征数据与结果缓存器暂存的第一临时数据的大小;根据预设排序规则,将符合第一排序条件的特征数据作为对应结果缓存器中新的第一临时数据,并将符合第二排序条件的特征数据作为下一基础运算单元的特征输入寄存器内的第一特征数据;
73.相应的,控制寄存器具体用于:控制将新的第一临时数据输出至结果缓存器,并将符合第二排序条件的特征数据输出至下一基础运算单元的特征输入寄存器内。
74.其中,第一排序条件、第二排序条件以及预设排序规则可以是根据实际需求而设定的条件,比如,第一排序条件可以是设定为排序结果较大的数据,第二排序条件可以是设定为排序结果较小的数据。
75.具体的,本实施例中的特征输入寄存器一次只存储一个第一特征数据,而具有排序需求的全部第一特征数据存储于包含脉动阵列的脉动阵列系统中的特征缓存器内。待排序的第一特征数据在输入基础运算单元中时,每次输入一个,依次从特征缓存器或上一个基础运算单元进行输入,且将第一特征数据按照符合排序要求的顺序逐一输入脉动阵列中的基础运算单元。例如,本实施例可以将第一排序条件设定为排序结果较大的数据,第二排序条件设定为排序结果较小的数据。
76.示例性的,基础运算单元的结果缓存器默认设置首个输入的第一特征数据不触发运算,而是直接进入结果缓存器。以当前基础运算单元为例进行举例说明,本实施例可以将首个第一特征数据a直接暂存在结果缓存器。而后,本实施例将第二个第一特征数据b和结果缓存器暂存的a输入比较器进行比较大小,若b大于a,则将第一特征数据b作为新的第一临时数据输入结果缓存器,将第一特征数据a输入下一基础运算单元。而在下一基础运算单元也是按照上述排序规则进行比较大小,再将符合第一排序条件的数据输入结果缓存器,将符合第二排序条件的数据输入下一基础运算单元。也即,示例性的,本实施例一直将比较结果较大的数据存储于结果缓存器,而将比较结果较小的数据存储于下一基础运算单元,由于第一特征数据为根据排序要求逐个进入各个基础运算单元的,因此在排序结束时,各个基础运算单元输出的数据应该是具有从大到小排序特征的一系列第一特征数据。
77.具体的,控制寄存器发出排序模式相对应的控制信号控制将特征输入寄存器的第一特征数据和结果缓存器暂存的第一临时数据输入比较器进行比较,将比较结果分别输入结果缓存器与下一基础运算单元。由于特征输入寄存器内的第一特征数据是逐个进入比较器的,因此在完成当前比较周期的排序运算之后,比较器再根据新输入的第一特征数据和当前结果缓存器内暂存的第一临时数据进行比较,以此类推,通过不断地将第一特征数据逐个输入比较器,逐次经过多轮数据对比,不断将符合第二排序条件的第一特征数据输入下一基础运算单元,而以此类推,下一基础运算单元进行同类型排序运算,能够完成多个第一特征数据的排序操作,同时在当前基础运算单元能够获得最大或者最小的特征数据。
78.图1c为本公开实施例提供的一种在卷积模式下脉动阵列中基础运算单元的结构示意图。如图1c所示,每个基础运算单元还包括权重输入寄存器和乘加器,在卷积模式下比较器不参与工作,控制寄存器与特征输入寄存器、权重输入寄存器、结果缓存器和乘加器均有连接,图中省略其连接关系表示,本实施例提供的基础运算单元用于在卷积模式下完成
卷积运算。其中,
79.权重输入寄存器,用于存储权重数据;
80.乘加器分别与特征输入寄存器、权重输入寄存器和结果缓存器连接,用于将结果缓存器暂存的第二临时数据作为累计加数,逐次计算特征输入寄存器输入的第二特征数据和权重输入寄存器输入的权重数据的乘法运算,并将计算结果作为新的第二临时数据进行储存;
81.相应的,特征输入寄存器,用于存储第二特征数据;
82.控制寄存器分别与权重输入寄存器和乘加器连接,用于控制将权重输入寄存器的权重数据、特征输入寄存器的第二特征数据以及结果缓存器暂存的第二临时数据输入乘加器,在完成当前计算周期后,分别将第二特征数据传输至第一相邻基础运算单元的特征输入寄存器以及将权重数据传输至第二相邻基础运算单元的权重输入寄存器,并在卷积运算结束后,将最后存储于结果缓存器内的第二临时数据作为第二数据结果进行输出。
83.其中,权重输入寄存器指的是用于存储权重数据的寄存器,在图像处理领域,权重数据可以是卷积窗数据,而在其他领域权重数据也可以是任何有卷积需求的数据。
84.其中,第二特征数据可以是在卷积模式下存储于特征输入寄存器的至少一个数据,在图像处理领域,第二特征数据可以是图像数据,而在其他领域第二特征数据也可以是任何有卷积需求的数据。第二临时数据可以是每当前计算周期需要用到的累计加数。第二数据结果可以是由多个基础运算单元中结果缓存器的第二临时数据组成的、具有新特征的数据。
85.由于权重输入寄存器的权重数据与特征输入寄存器的第二特征数据是两个不同方向输入的当前需要计算的基础运算单元,因此第一相邻基础运算单元与第二相邻基础运算单元也是与当前需要计算的基础运算单元相邻的不同方向的基础运算单元。例如,第一相邻基础运算单元可以是当前需要计算的基础运算单元在水平方向上相邻的基础运算单元;第二相邻基础运算单元可以是当前需要计算的基础运算单元在垂直方向上相邻的基础运算单元。
86.具体的,本实施例中的基础运算单元还可以实现卷积运算的基本功能,在权重输入寄存器与特征输入寄存器中存储具有卷积需求的两系列特征数据,将其输入乘加器进行卷积运算,能够得到具有新特征的数据。
87.具体的,本实施例以当前一个基础运算单元的卷积运算为例进行说明。控制寄存器发出卷积模式相对应的控制信号,控制将权重输入寄存器的权重数据、特征输入寄存器的第二特征数据以及结果缓存器暂存的第二临时数据输入乘加器,在每次计算周期中,均将结果缓存器暂存的第二临时数据作为累计加数,逐次计算第二特征数据和权重数据的乘法运算,并将计算结果作为新的第二临时数据在结果缓存器中进行储存。也即,每次在第二特征数据和权重数据的乘法运算结束后,均会累加上结果缓存器暂存的第二临时数据,并将累加后的计算结果作为新的第二临时数据。并且,本实施例在完成当前计算周期后,分别将第二特征数据和权重数据传输至下一基础运算单元的特征输入寄存器和权重输入寄存器,并对新输入的第二特征数据和权重数据进行同样的卷积运算,同理,下一基础元算单元的卷积运算如上所述。
88.示例性的,本实施例以卷积神经网络中的卷积运算为例进行说明,卷积运算是一
种加权的滑动平均运算,包括两个输入张量。在图像处理领域中,脉动阵列可以实现同时算多个滑窗的一种卷积运算,两个输入张量分别为滑窗权重(weight)和特征图(feature map),用于输出一个新的特征图。在常见的图像处理网络中,输入权重和特征图均为四维张量,分别可以表示为f
in
[b,c
in
,x
in
,y
in
]和w[c
out
,c
in
,k
x
,ky],输出权重图表示为f
out
[b,c
out
,x
out
,y
out
],其中,b表示批(batch),c
in
和c
out
分别表示输入和输出通道数(channel),x
in
,y
in
,x
out
,y
out
分别表示输入和输出图像的宽和高,k
x
,ky表示权重的宽和高,那么二维卷积运算可以表示为:
[0089][0090]
其中,δx,δy表示图像二维坐标偏移量,对应于权重二维坐标,规定了参与运算的权重值,且x
in
,y
in
,x
out
,y
out
表示二维坐标,x
in
≤x
in
,y
in
≤y
in
,x
out
≤x
out
,y
out
≤y
out
。每个输出坐标(x
out
,y
out
)对应一个唯一的输入坐标(x
in
,y
in
),卷积运算以(x
in
,y
in
)为原点,在δx,δy的偏移范围内进行运算。
[0091]
具体的,本实施例在单一通道上,卷积运算以二维滑窗形式进行,而在实际计算时,二维滑窗难以在硬件平台上直接实现,因此需要将滑窗范围内的数据进行重排,转化为向量的内积运算(inner product)。于是,将不同通道的运算组合起来,卷积运算即可等效转化为矩阵的乘法运算。而在卷积/矩阵模式下,基础运算单元中比较器被禁用(bypass)。单个基础运算单元输入特征值和权重值相乘,与结果缓存器中的中间结果相加。若结果缓存器为空,则设置为跳过相加,将乘加结果直接暂存入结果缓存器中,同时,权重值、特征值分别沿原方向输出下一基础运算单元。每个基础运算单元重复着同类型的乘加运算,而在本轮运算完成后,将最后的结果数据进行输出。
[0092]
本实施例通过在常规的脉动阵列中设置比较器,并设置排序运算下控制寄存器需要执行的相应的命令,能够实现排序功能,避免了将数据搬运到其他设备上进行排序的操作,节省了运算时间和带宽,并提高了脉动阵列本身在运算中的利用率。
[0093]
实施例二
[0094]
图2a为本公开实施例二提供的一种脉动阵列系统的结构示意图,包括:脉动阵列,系统总线、阵列控制器、特征缓存器以及输出缓存器,用于在排序模式下完成排序操作;其中,
[0095]
系统总线分别与阵列控制器、特征缓存器以及输出缓存器连接,用于向阵列控制器发送第一控制指令,并在排序结束后,接收输出缓存器上传的第一数据结果;
[0096]
阵列控制器分别与特征缓存器、脉动阵列以及输出缓存器连接,用于在根据第一控制指令发送第一控制信号后,控制将第一特征数据输入特征缓存器,在分配给脉动阵列中各个基础运算单元的控制寄存器第一配置值后,逐个将特征缓存器内的第一特征数据输入脉动阵列进行排序操作,并在排序结束后,将第一数据结果传输至输出缓存器,其中,第一特征数据为神经网络模型产生的多个候选检测框分值。
[0097]
其中,系统总线是连接计算机系统的主要组件,用于接收中央控制器发送的工作指令和需要进行排序的数据,并向阵列控制器发送第一控制指令。阵列控制器用于对接收
到的第一控制指令进行控制和译码,来实现数据的存储、转发以及整个阵列的管理。特征缓存器用于存储具有排序需求的第一特征数据,输出缓存器则用于接收脉动阵列上传的第一数据结果,再回传至系统总线。
[0098]
其中,第一控制指令为系统总线经过对工作指令的解析而得的排序指令,并发送至阵列控制系统。第一控制信号为阵列控制系统中各个器件进行交互的排序执行信号,用于实现排序运算。由于本实施例中的脉动阵列能够实现卷积运算和排序运算,因此脉动阵列中各个基础运算单元的控制寄存器会设置两套配置值,不同配置值对应于不同的工作模式,从而向基础运算单元中的各个器件发送不同工作模式下的控制信号。第一配置值为排序工作模式下相对应的配置值。
[0099]
具体的,以卷积神经网络处理图像为例进行说明,第一特征数据为神经网络模型产生的多个候选检测框分值。本实施例中的系统总线在接收到工作指令后,会根据工作指令的内容发送第一控制指令至阵列控制器,阵列控制器再根据该第一控制指令向脉动阵列系统中的相关器件发送第一控制信号,以完成排序操作。具体为,本实施例将参与排序运算的图像数据按照预设格式作为第一特征数据传输至特征缓存器,以变更为真正排序计算时所采用的数据顺序;分配给脉动阵列中各个基础运算单元的控制寄存器第一配置值,以使得各个基础运算单元配合执行排序操作;逐个将特征缓存器内的第一特征数据输入脉动阵列进行排序操作;排序结束后,将脉动阵列中的第一数据结果传输至输出缓存器,并回传至系统总线。
[0100]
在本公开实施例中,排序模式为topk算法排序,阵列控制器还用于:逐个将第一特征数据输入k个基础运算单元进行排序操作,且在第k个基础运算单元内,将符合第二排序条件的特征数据进行丢弃处理,得到具有排序特征的k个数据结果,并将具有排序特征的k个数据结果作为第一数据结果进行输出。
[0101]
具体的,现有技术主流的目标检测算法如ssd、faster-rcnn、yolo等,均会产生大量可能的检验框和其对应的概率(probability)或置信值(confidence),在算法的后处理(post-processing)阶段,则需要通过topk算子排序选出概率较大的k个检验框作为结果输出。示例性的,该类目标检测算法所应用的场景例如可以是汽车摄像头判断前方有没有行人、车辆,或者障碍物等。
[0102]
具体的,本实施例所采用的排序运算的操作模式结构示意图可以是如图1b所示。在排序模式下,没有权重输入输出,乘加器也被禁用(bypass)。首个数据进入基础运算单元时,可以直接存入结果缓存器;非首个数据从特征输入寄存器进入比较器,与结果缓存器中的数据进行比较,排序后的结果按照配置(例如:输出较大值或输出较小值)分别输入结果缓存器和特征输出;全部数据排序完成后,输出结果缓存器中的数据。
[0103]
具体的,本实施例针对topk运算,阵列控制器的第一控制信号决定共使用k个基础运算单元,每个基础运算单元中的比较器配置为将符合较大条件(第一排序条件)的数据输入结果缓存器,将符合较小条件(第二排序条件)的数据输出到下一基础运算单元。由于本实施例共使用k个基础运算单元,为了提高运算效率,因此本实施例在第k个基础运算单元内,将符合第二排序条件的数据进行丢弃处理,在k个基础运算单元排序结束后,即可得到具有排序特征的k个数据结果
[0104]
图2b为本公开实施例提供的一种示例性的四位数据做top2运算的全过程示意图,
图2b中计算单元即是基础运算单元。如图2b所示,本实施例将对4个乱序排列的数据(4,1,8,2)做top2运算,由于k为2,因此选出2个较大的数。每个基础运算单元中的比较器配置为将较大的数据输入结果缓存器,将较小的数据输出到下一基础运算单元;排序运算完成后,较大的k个数按从大到小的顺序依次排列在脉动阵列中,脉动阵列输出已排序的结果8和4。
[0105]
在本公开实施例中,如图2a所示,脉动阵列系统还包括:权重缓存器,分别与系统总线、阵列控制器以及脉动阵列连接,用于在卷积模式下完成卷积运算;
[0106]
相应的,系统总线还用于向阵列控制器发送第二控制指令,并在卷积运算结束后,接收输出缓存器上传的第二数据结果;
[0107]
阵列控制器还用于在根据第二控制指令发送第二控制信号后,控制分配给脉动阵列中各个基础运算单元的控制寄存器第二配置值,并分别将特征缓存器内的第二特征数据和权重缓存器内的权重数据作为两列对应数据,按照预设顺序逐个输入脉动阵列进行卷积计算,并在卷积运算结束后,将第二数据结果传输至输出缓存器,其中,权重数据为按照第一预设格式排列的卷积窗数据,第二特征数据为按照第二预设格式排列的图像数据。
[0108]
其中,权重缓存器用于存储具有卷积需求的权重数据,系统总线用于接收中央控制器发送的工作指令和需要进行卷积运算的数据,并向阵列控制器发送第二控制指令。阵列控制器用于对接收到的第二控制指令进行控制和译码,来实现数据的存储、转发以及整个阵列的管理。特征缓存器用于存储具有卷积需求的第二特征数据,输出缓存器则用于接收脉动阵列上传的第二数据结果,再回传至系统总线。
[0109]
其中,第二控制指令为系统总线经过对工作指令的解析而得的卷积运算指令,并发送至阵列控制系统。第二控制信号为阵列控制系统中各个器件进行交互的卷积运算执行信号,用于实现卷积运算。第二配置值为卷积运算工作模式下相对应的配置值。预设顺序可以是将特征缓存器内的第二特征数据和权重缓存器内的权重数据排列为不同方向的两列数据,例如,特征缓存器内的第二特征数据为水平方向排列的数据,权重缓存器内的权重数据为垂直方向排列的数据。
[0110]
具体的,以卷积神经网络处理图像为例进行说明,权重数据为按照第一预设格式排列的卷积窗数据,第二特征数据为按照第二预设格式排列的图像数据。其中,第一预设格式与第二预设格式为符合卷积运算的排列格式。本实施例中的系统总线在接收到工作指令后,会根据工作指令的内容发送第二控制指令至阵列控制器,阵列控制器再根据该第二控制指令向脉动阵列系统中的相关器件发送第二控制信号,以完成卷积运算操作。具体为,本实施例分配给脉动阵列中各个基础运算单元的控制寄存器第二配置值,以使得各个基础运算单元配合执行卷积运算操作;分别将特征缓存器内的第二特征数据和权重缓存器内的权重数据作为两列对应数据,按照预设顺序逐个输入脉动阵列进行有规律的卷积计算;卷积运算结束后,将脉动阵列中的第二数据结果传输至输出缓存器,并回传至系统总线。
[0111]
图2c为本公开实施例提供的一种示例性的卷积拆分和运算过程示意图。本实施例为一个二维卷积的计算全过程,其中,输入特征图f
in
大小为[1,1,2,3],也即第二特征数据;权重w大小为[2,1,2,2],也即权重数据。输出特征图f
out
大小为[1,2,1,2],因此使用大小为2x2的脉动阵列进行计算。在卷积运算过程中,w的最后两个维度以滑窗形式划过f
in
,并对滑窗范围内的f
in
加权求和。将滑窗范围内的w与f
in
对应重排,分别生成两个f
in
向量和两个w向量,对应输入脉动阵列进行计算。脉动阵列采用输出固定模式(output stationary),将输
入向量按照顺序逐个输入脉动阵列,而乘加结果保存在当前基础运算单元的结果缓存器中。
[0112]
具体的,如图2c所示,f
in
[1,1,2,3]可以表示为1张1通道尺寸为2
×
3的特征图像,w[2,1,2,2]可以表示为2张1通道尺寸为2
×
2的卷积窗。对应于图2c中的内容,第二特征数据按照卷积运算格式排列分别为f0、f1、f3、f4和f1、f2、f4、f5两列数据;权重数据按照卷积运算格式排列分别为w0、w1、w2、w3和w4、w5、w6、w7两列数据,且两列特征数据为按照水平方向进行排列的数据以及两列权重数据为按照垂直方向进行排列的数据。除此之外,预设顺序还可以是第二特征数据中的第一行数据和权重数据中的第一列数据优先于第二特征数据中的第二行数据和权重数据中的第二列数据一节拍进入脉动阵列。
[0113]
本实施例通过在常规的脉动阵列系统包含改进的脉动阵列,其中,脉动阵列中设有比较器,并设置排序运算下阵列控制器向脉动阵列系统内其他器件发送第一控制信号,用于传达排序指令,实现排序功能,避免了将数据搬运到其他设备上进行排序的操作,节省了运算时间和带宽,并提高了脉动阵列本身在运算中的利用率。
[0114]
实施例三
[0115]
图3为本公开实施例三提供的一种脉动阵列系统的运算方法的流程图,该方法可以由本公开实施例提供的脉动阵列系统的运算装置来执行,应用于脉动阵列系统,该装置可采用软件和/或硬件的方式实现。该方法具体包括:
[0116]
s310、根据接收的工作指令,确定工作指令所指示的工作模式。
[0117]
在本公开实施例中,根据接收的工作指令,确定工作指令所指示的工作模式,包括:根据接收的工作指令,由系统总线向阵列控制器发送第一控制指令,并根据第一控制指令,确定阵列控制器的第一控制信号。
[0118]
具体的,本实施例中的工作模式包括排序运算模式和卷积运算模式两种,且在排序运算模式中还包括有topk运算模式。工作指令中包含有任务信息,本实施例根据工作指令,能够确定相应的工作模式。
[0119]
s320、当工作模式为排序模式时,通过在阵列控制器发送的第一控制信号分配给脉动阵列中各个基础运算单元的控制寄存器第一配置值之后,逐个将特征缓存器的第一特征数据输入脉动阵列进行排序操作,并经由输出缓存器输出第一数据结果,回传至系统总线。
[0120]
其中,脉动阵列中的各个基础运算单元包括比较器,特征缓存器的第一特征数据为神经网络模型产生的多个候选检测框分值。
[0121]
在本公开实施例中,排序模式为topk算法排序,逐个将特征缓存器的第一特征数据输入脉动阵列进行排序操作,经由输出缓存器输出第一数据结果,包括:逐个将特征缓存器的第一特征数据输入脉动阵列内的k个基础运算单元进行排序操作,得到具有排序特征的k个数据结果;将具有排序特征的k个数据结果作为第一数据结果,经由输出缓存器进行输出。
[0122]
在本公开实施例中,脉动阵列系统的运算方法还包括:当工作模式为卷积模式时,通过在阵列控制器发送的第二控制信号分配给脉动阵列中各个基础运算单元的控制寄存器第二配置值之后,分别将特征缓存器的第二特征数据和权重缓存器的权重数据作为两列对应数据,按照预设顺序逐个输入脉动阵列进行卷积计算,并经由输出缓存器输出第二数
据结果,回传至系统总线;
[0123]
相应的,根据接收的工作指令,确定工作指令所指示的工作模式,包括:根据接收的工作指令,由系统总线向阵列控制器发送第二控制指令,并根据第二控制指令,确定阵列控制器的第二控制信号。
[0124]
其中,权重缓存器的权重数据为按照第一预设格式排列的卷积窗数据,特征缓存器的第二特征数据为按照第二预设格式排列的图像数据。
[0125]
本公开的脉动阵列系统运算方法,通过根据接收的工作指令,确定工作指令所指示的工作模式;当工作模式为排序模式时,通过在阵列控制器发送的第一控制信号分配给脉动阵列中各个基础运算单元的控制寄存器第一配置值之后,逐个将特征缓存器的第一特征数据输入脉动阵列进行排序操作,并经由输出缓存器输出第一数据结果,回传至系统总线,其中,脉动阵列中的各个基础运算单元包括比较器,能够在加速神经网络卷积运算的同时,实现排序功能,避免了将数据搬运到其他设备上进行排序的操作,节省了运算时间和带宽,提高了脉动阵列本身在运算中的利用率,同时提高了神经网络运算效率和硬件单元在运算中的利用率。
[0126]
实施例四
[0127]
图4是本公开实施例提供的一种脉动阵列系统的运算装置的结构示意图,该装置具体包括:
[0128]
模式确定模块410,用于根据接收的工作指令,确定工作指令所指示的工作模式;
[0129]
排序结果输出模块420,用于当工作模式为排序模式时,通过在阵列控制器发送的第一控制信号分配给脉动阵列中各个基础运算单元的控制寄存器第一配置值之后,逐个将特征缓存器的第一特征数据输入脉动阵列进行排序操作,经由输出缓存器输出第一数据结果,并回传系统总线,其中,脉动阵列中的各个基础运算单元包括比较器,特征缓存器的第一特征数据为神经网络模型产生的多个候选检测框分值。
[0130]
在一可实施方式中,模式确定模块410具体用于:根据接收的工作指令,由系统总线向阵列控制器发送第一控制指令,并根据第一控制指令,确定阵列控制器的第一控制信号。
[0131]
在一可实施方式中,排序结果输出模块420具体用于:
[0132]
当排序模式为topk算法排序时,逐个将特征缓存器的第一特征数据输入脉动阵列内的k个基础运算单元进行排序操作,得到具有排序特征的k个数据结果;将具有排序特征的k个数据结果作为第一数据结果,经由输出缓存器进行输出。
[0133]
在一可实施方式中,装置还包括:
[0134]
卷积结果输出模块,当工作模式为卷积模式时,通过在阵列控制器发送的第二控制信号分配给脉动阵列中各个基础运算单元的控制寄存器第二配置值之后,分别将特征缓存器的第二特征数据和权重缓存器的权重数据作为两列对应数据,按照预设顺序逐个输入脉动阵列进行卷积计算,并经由输出缓存器输出第二数据结果,回传至系统总线,其中,权重缓存器的权重数据为按照第一预设格式排列的卷积窗数据,特征缓存器的第二特征数据为按照第二预设格式排列的图像数据;
[0135]
相应的,模式确定模块410具体用于:根据接收的工作指令,由系统总线向阵列控制器发送第二控制指令,并根据第二控制指令,确定阵列控制器的第二控制信号。
[0136]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0137]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0138]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0139]
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
再多了解一些

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

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