CN117217274B - 向量处理器、神经网络加速器、芯片及电子设备 - Google Patents
向量处理器、神经网络加速器、芯片及电子设备 Download PDFInfo
- Publication number
- CN117217274B CN117217274B CN202311478862.0A CN202311478862A CN117217274B CN 117217274 B CN117217274 B CN 117217274B CN 202311478862 A CN202311478862 A CN 202311478862A CN 117217274 B CN117217274 B CN 117217274B
- Authority
- CN
- China
- Prior art keywords
- pooling
- down sampling
- module
- scaling
- line buffer
- 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.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 35
- 238000011176 pooling Methods 0.000 claims abstract description 151
- 238000005070 sampling Methods 0.000 claims abstract description 139
- 239000000872 buffer Substances 0.000 claims abstract description 80
- 238000012545 processing Methods 0.000 claims abstract description 60
- 230000015654 memory Effects 0.000 claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims description 49
- 238000000034 method Methods 0.000 claims description 26
- 238000010586 diagram Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 22
- 125000004122 cyclic group Chemical group 0.000 claims description 7
- 230000009467 reduction Effects 0.000 claims description 5
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 239000011159 matrix material Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009510 drug design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Image Processing (AREA)
Abstract
本发明公开一种向量处理器、神经网络加速器、芯片及电子设备,涉及神经网络技术领域,解决了向量处理器及包含有向量处理器的芯片在维持性能前提下难以降低面积的技术问题。该向量处理器包括池化处理模块、上下采样模块和缩放行缓冲器,池化处理模块及上下采样模块均与缩放行缓冲器连接且共用缩放行缓冲器;池化处理模块通过池化算法对图像进行缩小,上下采样模块通过上采样算法对图像进行放大,下采样算法对图像进行缩小;缩放行缓冲器将输入特征图的特征图数据送入行存储器,并发送缩放行缓冲器的状态至池化处理模块或上下采样模块。本发明在保持向量处理器及包含有向量处理器的芯片的性能不变时,节省了行缓冲器空间,降低成本和功耗。
Description
技术领域
本发明涉及神经网络技术领域,尤其涉及一种向量处理器、加速器、芯片及电子设备。
背景技术
深度神经网络(Deep Neural Network,DNN)是一种基于人工神经网络架构的机器学习方法,人工神经网络(Artificial Neural Networks,ANN)使用相互连接的节点(称为神经元)的层来处理和学习输入数据。深度神经网络是具有多个层的人工神经网络,这些层位于输入层和输出层之间。神经网络总是由相同的组件组成:神经元、突触、权重、偏差和函数,在实际应用中,这些组件通常被称作算子。常见的算子有:卷积、池化、上/下采样、激活函数、元素操作(元素加、元素减、元素乘、元素除)等。深度学习使用多个层来表示数据的不同层次的抽象,从而提高模型的准确性和泛化能力,已经广泛应用于运算机视觉、语音识别、自然语言处理、机器翻译、生物信息学、药物设计、医学图像分析等领域,产生了与人类专家水平相当甚至超越的结果。
随着数据量不断地累积,以神经网络为主题的人工智能技术得到越来越广泛的应用。尽管神经网络已经被证明能够成功解决自动驾驶、人脸识别等实际问题,但由于传统硬件平台运算性能的局限性,使得神经网络在传统硬件难以高效部署。因此,需要专门为神经网络算法设计定制的硬件平台,这中硬件平台被称为神经网络加速器,其核心通常是一组专用的集成电路芯片,这种芯片被称为神经网络加速器芯片。
在神经网络中,图像的缩小和放大是必不可少的功能,一般图像放大通过上采样实现,可以使用双线性插值、最近邻插值等算法;图像缩小通过下采样、池化实现,可以使用最近邻插值、双线性插值、最大池化、平均池化等算法。现有神经网络加速器中,受限于面积成本、性能和功耗的考虑,神经网络加速器芯片通常需要在维持性能的情况下降低面积。
发明内容
本发明的目的在于提供一种向量处理器、神经网络加速器、芯片及电子设备,以至少解决上述技术问题。本发明提供的诸多技术方案中的优选技术方案所能产生的诸多技术效果详见下文阐述。
为实现上述目的,本发明提供了以下技术方案:
本发明提供的一种向量处理器,包括:池化处理模块、上下采样模块和缩放行缓冲器,所述池化处理模块及上下采样模块均与所述缩放行缓冲器连接且共用所述缩放行缓冲器;所述池化处理模块通过池化算法对图像进行缩小,所述上下采样模块通过上采样算法对图像进行放大,下采样算法对图像进行缩小;根据输入特征图的地址信号、控制信号,所述缩放行缓冲器将所述输入特征图的特征图数据送入对应的行存储器,并发送所述缩放行缓冲器的状态信息至所述池化处理模块或上下采样模块;所述地址信号用于读取所述输入特征图的特征图数据,所述控制信号用于对所述特征图数据的读取过程进行控制;所述上下采样模块包括相互连接的上下采样控制器、上下采样处理器;所述上下采样控制器用于从所述缩放行缓冲器中读出所述特征图数据的地址、及上下采样运算所需要的参数;所述上下采样处理器用于进行所述特征图数据的上采样运算、下采样运算。
可选地,所述向量处理器还包括与所述缩放行缓冲器连接的循环写入模块;所述循环写入模块接收所述特征图数据,产生所述特征图数据的地址信号和控制信号,并将所述特征图数据、地址信号、控制信号输入所述缩放行缓冲器。
可选地,所述池化处理模块包括相互连接的池化控制器、池化处理器;所述池化控制器根据不同的池化内核大小输出至少一个有效地址到所述缩放行缓冲器,并在每个所述池化内核开始和结束时分别输出开始脉冲信号、结束脉冲信号;基于所述开始脉冲信号、结束脉冲信号,所述池化处理器进行所述特征图数据的池化运算。
可选地,所述池化处理模块还包括池化时序同步模块,所述池化时序同步模块与所述池化控制器、池化处理器连接,基于所述开始脉冲信号、结束脉冲信号进行时序同步。
可选地,所述池化控制器还用于判断所述缩放行缓冲器是否满足池化算法的执行条件,所述池化算法的执行条件为:所述缩放行缓冲器中累积的行数大于或等于所述池化内核的高度。
可选地,所述上下采样控制器采用最近邻工作模式或双线性工作模式;在所述最近邻工作模式中,所述上下采样控制器每次输出一路特征图数据的有效地址到所述缩放行缓冲器,所述缩放行缓冲器每次输出一路特征图数据到所述上下采样处理器,所述上下采样处理器计算后进行结果输出;在所述双线性工作模式中,所述上下采样控制器每次输出特征图数据的四路有效地址到缩放行缓冲器,所述四路有效地址与四个缩放参数经过上下采样时序同步模块同步后传输至所述上下采样处理器,所述上下采样处理器对所述特征图数据、缩放参数依次乘加运算进行结果输出。
可选地,所述上下采样控制器还用于判断所述缩放行缓冲器是否满足上采样算法或下采样算法的执行条件,所述上采样算法、下采样算法的执行条件为:所述缩放行缓冲器中累积的行数大于或等于两行。
可选地,所述向量处理器还包括缩放寄存器,所述缩放寄存器与所述循环写入模块、池化处理模块、上下采样模块均进行连接;所述缩放寄存器用于选择池化处理模块、上下采样模块,或配置图像放大或缩小的比例。
可选地,所述向量处理器还包括顶层控制模块,所述顶层控制模块对所述池化处理模块、上下采样模块的计算过程进行控制。
可选地,所述顶层控制模块通过状态机对所述池化处理模块、上下采样处理模块的工作过程进行控制;所述状态机对所述池化处理模块的控制过程为:所述向量处理器上电,所述状态机处于空闲状态;所述顶层控制模块发送启动信号,所述状态机进入数据等待状态;当缩放行缓冲器累积预定量的数据,所述状态机进入到计算状态;在所述状态机处于所述计算状态时;当一行计算结束且未完成所有行的计算时,状态机进入所述数据等待状态;当一行计算结束且需要等待最后一个像素完成计算时,所述状态机进入计算等待状态,并在池化计算完成后进入所述数据等待状态;当所有计算完成时,状态机进入到结束状态;所述状态机对所述上下采样处理模块的控制过程为: 所述向量处理器上电,所述状态机处于空闲状态;所述顶层控制模块发送启动信号,所述状态机进入数据等待状态;当所述缩放行缓冲器累积预定量的数据,所述状态机跳转到计算状态;当一行计算结束后,状态机跳转到换行状态;在所述状态机处于所述换行状态时;当输入数据不够多算一行时,状态机进入所述数据等待状态;当输入数据量足够多算一行时,所述状态机进入述计算状态;当输出所有行计算结束时,所述状态机进入结束状态。
一种神经网络加速器,包括以上任一项所述的一种向量处理器。
一种芯片,包括以上所述的一种神经网络加速器。
一种电子设备,包括以上所述的一种芯片。
实施本发明上述技术方案中的一个技术方案,具有如下优点或有益效果:
本发明的池化处理模块对图像进行缩小,上下采样模块对图像进行放大或缩小,且池化处理模块及上下采样模块共用缩放行缓冲器,在维持向量处理器及包含有向量处理器的芯片的原有处理性能前提下,相较于传统向量处理器,在保持电路性能不变时,通过缩放行缓冲器节省了一定的行缓冲器的面积,从而减少向量处理器对应的面积,进而可以减少包含有向量处理器的芯片的面积,且可以降低向量处理器和包含有向量处理器的芯片的成本和功耗。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,附图中:
图1是本发明实施例一中的向量处理器的图像缩放模块与输入、输出连接示意图一;
图2是本发明实施例一中的向量处理器的图像缩放模块与输入、输出连接示意图二;
图3是本发明实施例一中的向量处理器与现有技术的电路面积对比图;
图4是本发明实施例一中的向量处理器的图像缩小操作示意图;
图5是本发明实施例一中的向量处理器的图像放大操作示意图;
图6是本发明实施例一中的向量处理器的最大池化算法波形图;
图7是本发明实施例一中的向量处理器的平均池化算法波形图;
图8是本发明实施例一中的向量处理器的最近邻插值算法波形图;
图9是本发明实施例一中的向量处理器的双线性插值算法波形图;
图10是本发明实施例一中的向量处理器的池化控制的状态机示意图;
图11是本发明实施例一中的向量处理器的上下采样控制的状态机示意图;
图12是本发明实施例二中的神经网络加速器的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下文将要描述的各种示例性实施例将要参考相应的附图,这些附图构成了示例性实施例的一部分,其中描述了实现本发明可能采用的各种示例性实施例。除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。应明白,它们仅是与如所附权利要求书中所详述的、本发明公开的一些方面相一致的流程、方法和装置等的例子,还可使用其他的实施例,或者对本文列举的实施例进行结构和功能上的修改,而不会脱离本发明的范围和实质。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”等指示的是基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的元件必须具有的特定的方位、以特定的方位构造和操作。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。术语“多个”的含义是两个或两个以上。术语“相连”、“连接”应做广义理解,例如,可以是固定连接、可拆卸连接、一体连接、机械连接、电连接、通信连接、直接相连、通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本发明提供的神经网络加速器可以包括:前处理模块、存内计算矩阵、向量处理器、共享存储器等。本发明提供的神经网络加速器可以应用于诸多领域,尤其是AI领域,例如基于感存算一体技术架构实现的模数混合AI视觉芯片,该AI视觉芯片面积小、具有更低功耗与更高的能效比。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明,仅示出了与本发明实施例相关的部分。
实施例一:
如图1所示,本发明提供了一种向量处理器,用于对输入特征图对应的图像进行放大或缩小,包括:池化处理模块、上下采样模块和缩放行缓冲器,池化处理模块、上下采样模块均与缩放行缓冲器连接。池化处理模块通过池化算法对图像进行缩小,池化算法用于压缩输入的特征图,一方面减少了特征核参数,进而简化计算时的复杂度,另一方面保持了特征图中特征的某种不变性,且不会对通道之间的交互有影响。其目的是进行特征图的特征降维,进一步进行信息抽象和特征提取,以降低对计算资源的损耗,降低图像分辨率,因此可用于对图像进行缩小运算。上下采样模块通过上采样算法对图像进行放大,用于使缩小图像恢复原始分辨率大小,或提高图片的分辨率。下采样算法对图像进行缩小,即使得图像符合显示区域的大小或生成图像对应的缩略图。根据输入特征图的地址信号、控制信号(地址信号用于读取特征图数据,控制信号用于对特征图数据的读取过程进行控制),缩放行缓冲器将输入特征图的特征图数据送入对应的行存储器(行存储器的地址通过地址信号得到),并发送缩放行缓冲器的状态信息(如缩放行缓冲器中已经累积的行数)至池化处理模块或上下采样模块,该状态信息便于池化处理模块、上下采样模块判断是否达到启动条件,从而池化处理模块、上下采样模块可基于行存储器中的特征图数据、缩放行缓冲器的状态信息进行特征图数据运算,进行特征图的放大或缩小。本发明在维持向量处理器对应芯片的原有处理性能前提下,相较于传统图像缩放方案,在保持电路性能不变时,池化处理模块、上下采样模块通过共用缩放行缓冲器节省了一定的行缓冲器空间,从而缩小向量处理器及包含有向量处理器的芯片面积,进而降低成本和功耗。如图3所示,本方案较现有技术明显节省了电路面积,即节省了行缓冲器的空间,从而可降低成本和功耗。
作为可选的实施方式,如图1-图2所示,向量处理器还包括与缩放行缓冲器连接的循环写入模块。循环写入模块接收特征图数据,特征图数据由前级处理模块切分成一组串行信号,通过输入接口进行输入,产生特征图数据的地址信号和控制信号。循环写入模块将特征图数据、地址信号、控制信号输入缩放行缓冲器,缩放行缓冲器接收特征图数据、地址信号、控制信号后,通过行存储器、池化处理模块或上下采样模块即可进行特征图数据的运算。通过循环写入模块,便于缩放行缓冲器快速获取特征图数据,从而可加快本发明对图像缩放的处理速度。
作为可选的实施方式,如图2所示,池化处理模块包括相互连接的池化控制器、池化处理器,池化控制器与缩放行缓冲器连接,池化处理器与输出器连接。池化控制器根据不同的池化内核大小输出至少一个有效地址到缩放行缓冲器,池化内核大小即池化窗口的大小,对应图像的一个局部区域,池化内核大小的输出次数(即有效地址个数)为池化内核的高度值*宽度值,一般为池化内核大小所对应数值的平方。如果池化内核是一个整数,则表示高和宽方向上的池化窗口大小相同,这种也最为常见,一般为3×3(对应的有效地址个数为9)或2×2(对应的有效地址个数为4),如果池化内核是一个元组,则第一个元素表示高度方向上的池化窗口大小,第二个元素表示宽度方向上的池化窗口大小,此时的有效地址个数为池化窗口高度*宽度所得到的数值。实际使用中,池化内核大小的具体数值(即内核内核的高度或宽度)、输入特征图的的高度或宽度均可根据实际使用中,芯片性能、功耗和面积进行综合考虑做出一种或多种选择,如设定池化内核高度、设定池化内核宽度、设定输入特征图宽度、设定输出特征图高度等,本实施例中不进行具体限制。池化控制器在每个池化内核开始和结束时分别输出开始脉冲信号、结束脉冲信号,开始脉冲信号、结束脉冲信号为标志位信号,通过开始脉冲信号、结束脉冲信号便于将相邻的池化内核进行区分。池化处理器基于开始脉冲信号、结束脉冲信号,进行特征图数据的池化运算,便于快速进行不同池化内核的计算,不会产生计算错误。池化内核的高度、宽度一般至少有一个大于1,因此池化处理器主要进行矩阵运算,池化处理器优选为池化处理矩阵进行池化运算,进行更快速的计算。
作为可选的实施方式,如图2所示,池化处理模块还包括池化时序同步模块,池化时序同步模块与池化控制器、池化处理器连接,基于开始脉冲信号、结束脉冲信号进行时序同步。通过时序同步模块,将池化内核对应的一个图像局部区域的多个像素数据进行同步,从而便于执行池化算法,具体的池化算法可为最大池化算法或平均池化算法。在执行最大池化算法时,池化处理器接收到开始脉冲信号后,保存第一组有效数据;每输入一组有效数据,该组有效数据会和之前输入的最大值做比较,如果大于最大值,此数据将会被保留;如果小于等于最大值,最大值将不做变动;当池化处理器接收到结束脉冲信号后,此时的最大值将会被作为最后结果输出,如图6所示。在执行平均池化算法时,池化处理器接收到开始脉冲信号后,会保存第一个有效数据;每输入一个有效数据,该有效数据会和之前输入的进行累加;当池化处理器接收到结束脉冲信号后,此时累加后的结果被求平均量化后输出,如图7所示。
作为可选的实施方式,池化控制器还用于判断缩放行缓冲器是否满足池化算法的执行条件,通过对缩放行缓冲器是否满足条件进行判断,便于向量处理器确认是否可以通过池化处理模块执行池化算法,从而实现对池化处理模块、上下采样模块的选择。池化算法的执行条件为:缩放行缓冲器中累积的行数大于或等于池化内核的高度,此时缩放行缓冲器中的累积数据满足池化内核运行的基础条件,从而便于顺利执行池化算法。
作为可选的实施方式,如图2所示,上下采样模块包括相互连接的上下采样控制器、上下采样处理器,上下采样控制器与缩放行缓冲器连接,上下采样处理器与输出器连接。上下采样控制器用于从缩放行缓冲器中读出特征图数据的地址、及上采样运算、下采样运算所需要的参数,读取特征图数据的地址后,上下采样处理器能够获取特征图数据,是进行上采样运算、下采样运算的前提。上下采样处理器用于进行特征图数据的上采样运算、下采样运算,图像进行上下采样时,主要进行矩阵运算,上下采样处理器优选为上下采样处理矩阵。
作为可选的实施方式,上下采样控制器采用最近邻工作模式,此时上下采样处理器采用最近邻插值算法,为一种线性插值算法,是一种最基本、最简单的图像缩放算法,具体而言,目标图像(缩小图或放大图)中的点,对应到原图像中后,找到最相邻的整数坐标点的像素值,作为该点的像素值输出。在最近邻工作模式中,上下采样控制器每次输出一路特征图数据有效地址到缩放行缓冲器,缩放行缓冲器每次输出一路特征图数据到上下采样处理器,上下采样处理器计算后进行结果输出。采用最近邻工作模式时,上下采样处理器的计算量很小,算法也简单,因此运算速度较快,可以进行图像的快速放大或缩小。如图8所示,在执行最近邻算法的上下采样时,上下采样处理器能够直接计算出输出结果对应的像素点在存储器中的位置,并将地址和控制信号传输给缩放行缓冲器,图中的输入有效标志信号和输入有效数据信号为缩放行缓冲器产生,在此模式下缩放行缓冲器产生的结果即为最后的输出结果。
作为可选的实施方式,上下采样控制器采用双线性工作模式,此时上下采样处理器采用双线性插值算法,也为一种线性插值算法,是线性插值算法在二维时的推广,是两个方向的线性插值,在两个方向上共做三次线性插值,定义了一个双曲抛物面与四个已知点拟合,具体操作为在X方向上进行两次线性插值计算,然后在Y方向上进行一次插值计算。在双线性工作模式中,上下采样控制器每次输出特征图数据的四路有效地址到缩放行缓冲器,四路有效地址与四个缩放参数经过上下采样时序同步模块(上下采样时序同步模块与上下采样控制器、上下采样处理器均进行连接)同步后传输至上下采样处理器,上下采样处理器对特征图数据(通过四路有效地址获取四路特征图数据)、缩放参数(与四路四路特征图数据对应的四个缩放参数)依次乘加运算进行结果输出。采用双线性工作模式时,图像缩放的效果要好于最近邻工作模式,只是计算量稍大一些,算法复杂些,程序运行时间也稍长些,但缩放后图像质量更高,基本克服了最近邻工作模式中像素值不连续的缺点。最近邻工作模式、双线性工作模式可在考虑芯片性能、功耗和面积的前提下做出取舍,使向量处理器的适应性更好。如图9所示,上下采样控制器在运算双线性插值时,上下采样控制器会计算出输出所需要的4个像素点的位置和4个缩放参数,缩放参数经过上下采样时序同步模块后,缩放参数和输入数据信号会同时输入到上下采样处理器中。上下采样处理器根据以下公式计算输出点的像素值,并进行输出:
;
其中,Outp(row,col) 表示的是输出像素的第row行第col列;inp(row',col')、inp(row'+1,col')、inp(row',col'+1)、inp(row'+1,col'+1)表示计算输出所需要的输入像素点;s0、s1、s2、s3为计算输出像素所需要的四个缩放参数。
作为可选的实施方式,上下采样控制器还可以根据需要采用线性插值算法中双三次插值对应的双三次工作模式等,以及非线性插值算法中的基于边缘信息算法、基于小波系数算法等,从而可进一步拓展向量处理器的适用领域。
作为可选的实施方式,上下采样控制器还用于判断缩放行缓冲器是否满足上采样算法或下采样算法的执行条件,上采样算法、下采样算法的执行条件为:缩放行缓冲器中累积的行数大于或等于两行,即上采样算法、下采样算法的执行条件相同,当缩放行缓冲器中累积的行数大于或等于两行即可运行最近邻插值算法或双线性插值算法,即满足上采样算法、下采样算法的执行条件。
作为可选的实施方式,如图1-图2所示,向量处理器还包括缩放寄存器,缩放寄存器与循环写入模块、池化处理模块、上下采样模块均进行连接;缩放寄存器用于选择池化处理模块、上下采样模块,即本发明只能执行池化处理模块、上下采样模块中的一个进行图像缩放,当图像需要放大时,通过上下采样模块进行处理,当图像需要缩小时,通过池化处理模块、上下采样模块中任意一个进行处理均可。通过缩放寄存器配置图像放大或缩小的比例,便于池化处理模块、上下采样模块执行算法时选择对应的参数。缩放寄存器还可以配置池化内核大小,即可根据不同的使用场景设置不同的池化内核大小,从而加快图像缩放速度或提高图像缩放质量,适应性更好。当然,缩放寄存器还可以配置其他参数,以便于池化处理模块、上下采样模块快速执行相应算法,进行图像缩放。
作为可选的实施方式,如图1-图2所示,向量处理器还包括输出器,输出器与池化处理模块、上下采样模块连接,用于对池化处理模块、上下采样模块中的的运算结果进行输出,输出可通过输出接口进行,从而可与神经网络加速器中的其他模块进行数据交互。
作为可选的实施方式,向量处理器还包括顶层控制模块,顶层控制模块对池化处理模块、上下采样模块的计算过程进行控制。如图10所示,顶层控制模块通过状态机对池化处理模块的控制过程为:向量处理器上电,状态机处于空闲状态;顶层控制模块发送启动信号,状态机进入数据等待状态;当缩放行缓冲器累积预定量(具体可根据缩放行缓冲器的容量、数据类型、缩放参数等进行综合设定)的数据,状态机进入计算状态;在状态机处于计算状态时;当一行计算结束且未完成所有行的计算时,状态机进入数据等待状态;当一行计算结束且需要等待最后一个像素完成计算时,状态机进入计算等待状态,并在池化计算完成后进入数据等待状态;当所有计算完成时,状态机进入结束状态。如图11所示,顶层控制模块也通过状态机对上下采样处理模块进行控制,具体过程为:向量处理器上电,状态机处于空闲状态;顶层控制模块发送启动信号,状态机进入数据等待状态;当缩放行缓冲器累积预定量的数据(具体可根据缩放行缓冲器的容量、数据类型、缩放参数等进行综合设定),状态机进入计算状态;当一行计算结束后,状态机进入换行状态;在状态机处于换行状态时;当输入数据不够多算一行时(即输入数据不够一行),状态机进入数据等待状态;当输入数据量足够多算一行时(即输入数据至少能够进行一行计算),状态机进入计算状态;当输出所有行计算结束时,状态机进入结束状态。
本实施例进行图像缩小的过程如图4所示,分为T1、T2、T3三个步骤。T1为取值过程,此过程为从输入特征图中读入若干像素点,像素点取值数量由算法决定,取值顺序和回写的顺序一致。本申请中,最近邻工作模式取1个像素点,双线性插值工作模式取4个点如图所示,池化算法取值由池化核大小而定;T2为计算过程,最近邻工作模式为直接输出1个像素点,双线性插值工作模式为4个像素点分别和4个缩放参数做乘法后加总得出输出像素点,最大池化算法为输出池化核范围内最大的输入,平均池化为输出池化核范围内所有像素点的平均输出。T3为回写过程,像素点会按照取值的顺序依次输出。
本实施例进行图像放大的过程如图5所示,分为T4、T5、T6三个步骤。T4为取值过程,此过程为从输入特征图中读入若干像素点,像素点取值数量由算法决定,取值顺序和回写的顺序一致。在本申请中,最近邻工作模式取1个像素点,双线性插值工作模式取4个点如图5所示;T5为计算过程,最近邻工作模式为直接输出1个像素点,双线性插值工作模式为4个像素点分别和4个缩放参数做乘法后加总得出输出像素点;T6为回写过程,像素点会按照取值的顺序依次输出。
实施例仅是一个特例,并不表明本发明就这样一种实现方式。
实施例二:
一种神经网络加速器,包括实施例一的向量处理器。如图12所示,向量处理器为神经网络加速器中的一个功能模块,还包括前处理模块、存内计算矩阵、共享存储器等。本发明提供的神经网络加速器可以应用于诸多AI领域,例如基于感存算一体技术架构实现的模数混合AI视觉芯片,该AI视觉芯片具有更低功耗与更高的能效比。
实施例三:
一种芯片,包括实施例二中的神经网络加速器。本发明提供的芯片中各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算设备中的处理器中,也可以以软件形式存储于计算设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作,可有效降低芯片面积、成本和功耗。
实施例四:
一种电子设备,包括实施例三中的一种芯片。本发明提供的芯片可应用于自动驾驶、AR、VR、激光雷达,还可广泛应用于智能手机、平板电脑、可穿戴电子装备、智能家居电子产品、工业或医疗或电池供电类等一系列对低功耗与高能效比有需求的电子设备。
以上所述仅为本发明的较佳实施例而已,本领域技术人员知悉,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等同替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明的保护范围。
Claims (12)
1.一种向量处理器,其特征在于,包括:池化处理模块、上下采样模块和缩放行缓冲器,所述池化处理模块及上下采样模块均与所述缩放行缓冲器连接且共用所述缩放行缓冲器;所述池化处理模块通过池化算法对图像进行缩小,所述上下采样模块通过上采样算法对图像进行放大,下采样算法对图像进行缩小;根据输入特征图的地址信号、控制信号,所述缩放行缓冲器将所述输入特征图的特征图数据送入对应的行存储器,并发送所述缩放行缓冲器的状态信息至所述池化处理模块或上下采样模块;所述地址信号用于读取所述输入特征图的特征图数据,所述控制信号用于对所述特征图数据的读取过程进行控制;所述上下采样模块包括相互连接的上下采样控制器、上下采样处理器;所述上下采样控制器用于从所述缩放行缓冲器中读出所述特征图数据的地址、及上下采样运算所需要的参数;所述上下采样处理器用于进行所述特征图数据的上采样运算、下采样运算;所述向量处理器还包括与所述缩放行缓冲器连接的循环写入模块;所述循环写入模块接收所述特征图数据,产生所述特征图数据的地址信号和控制信号,并将所述特征图数据、地址信号、控制信号输入所述缩放行缓冲器。
2.根据权利要求1所述的一种向量处理器,其特征在于,所述池化处理模块包括相互连接的池化控制器、池化处理器;所述池化控制器根据不同的池化内核大小输出至少一个有效地址到所述缩放行缓冲器,并在每个所述池化内核开始和结束时分别输出开始脉冲信号、结束脉冲信号;基于所述开始脉冲信号、结束脉冲信号,所述池化处理器进行所述特征图数据的池化运算。
3.根据权利要求2所述的一种向量处理器,其特征在于,所述池化处理模块还包括池化时序同步模块,所述池化时序同步模块与所述池化控制器、池化处理器连接,基于所述开始脉冲信号、结束脉冲信号进行时序同步。
4.根据权利要求2所述的一种向量处理器,其特征在于,所述池化控制器还用于判断所述缩放行缓冲器是否满足池化算法的执行条件,所述池化算法的执行条件为:所述缩放行缓冲器中累积的行数大于或等于所述池化内核的高度。
5.根据权利要求1所述的一种向量处理器,其特征在于,所述上下采样控制器采用最近邻工作模式或双线性工作模式;在所述最近邻工作模式中,所述上下采样控制器每次输出一路特征图数据的有效地址到所述缩放行缓冲器,所述缩放行缓冲器每次输出一路特征图数据到所述上下采样处理器,所述上下采样处理器计算后进行结果输出;在所述双线性工作模式中,所述上下采样控制器每次输出特征图数据的四路有效地址到缩放行缓冲器,所述四路有效地址与四个缩放参数经过上下采样时序同步模块同步后传输至所述上下采样处理器,所述上下采样处理器对所述特征图数据、缩放参数依次乘加运算进行结果输出。
6.根据权利要求1所述的一种向量处理器,其特征在于,所述上下采样控制器还用于判断所述缩放行缓冲器是否满足上采样算法或下采样算法的执行条件,所述上采样算法、下采样算法的执行条件为:所述缩放行缓冲器中累积的行数大于或等于两行。
7.根据权利要求1-6任一项所述的一种向量处理器,其特征在于,所述向量处理器还包括缩放寄存器,所述缩放寄存器与所述循环写入模块、池化处理模块、上下采样模块均进行连接;所述缩放寄存器用于选择池化处理模块、上下采样模块,或配置图像放大或缩小的比例。
8.根据权利要求1-6任一项所述的一种向量处理器,其特征在于,所述向量处理器还包括顶层控制模块,所述顶层控制模块对所述池化处理模块、上下采样模块的计算过程进行控制。
9.根据权利要求8所述的一种向量处理器,其特征在于,所述顶层控制模块通过状态机对所述池化处理模块、上下采样处理模块的工作过程进行控制;
所述状态机对所述池化处理模块的控制过程为:
所述向量处理器上电,所述状态机处于空闲状态;
所述顶层控制模块发送启动信号,所述状态机进入数据等待状态;
当缩放行缓冲器累积预定量的数据,所述状态机进入到计算状态;
在所述状态机处于所述计算状态时;当一行计算结束且未完成所有行的计算时,状态机进入所述数据等待状态;当一行计算结束且需要等待最后一个像素完成计算时,所述状态机进入计算等待状态,并在池化计算完成后进入所述数据等待状态;当所有计算完成时,状态机进入到结束状态;
所述状态机对所述上下采样处理模块的控制过程为:
所述向量处理器上电,所述状态机处于空闲状态;
所述顶层控制模块发送启动信号,所述状态机进入数据等待状态;
当所述缩放行缓冲器累积预定量的数据,所述状态机跳转到计算状态;
当一行计算结束后,状态机跳转到换行状态;
在所述状态机处于所述换行状态时;当输入数据不够多算一行时,状态机进入所述数据等待状态;当输入数据量足够多算一行时,所述状态机进入述计算状态;当输出所有行计算结束时,所述状态机进入结束状态。
10.一种神经网络加速器,其特征在于,包括权利要求1-9中任一项所述的一种向量处理器。
11.一种芯片,其特征在于,包括权利要求10中所述的一种神经网络加速器。
12.一种电子设备,其特征在于,包括权利要求11中所述的一种芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311478862.0A CN117217274B (zh) | 2023-11-08 | 2023-11-08 | 向量处理器、神经网络加速器、芯片及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311478862.0A CN117217274B (zh) | 2023-11-08 | 2023-11-08 | 向量处理器、神经网络加速器、芯片及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117217274A CN117217274A (zh) | 2023-12-12 |
CN117217274B true CN117217274B (zh) | 2024-06-04 |
Family
ID=89051533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311478862.0A Active CN117217274B (zh) | 2023-11-08 | 2023-11-08 | 向量处理器、神经网络加速器、芯片及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117217274B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117474062B (zh) * | 2023-12-28 | 2024-06-04 | 深圳市九天睿芯科技有限公司 | 向量处理器、神经网络加速器、芯片及电子设备 |
CN118505501B (zh) * | 2024-07-20 | 2024-09-24 | 深圳市九天睿芯科技有限公司 | 基于神经网络的图像放大方法、神经网络加速器及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009211368A (ja) * | 2008-03-04 | 2009-09-17 | Nec Corp | キャッシュメモリ及びベクトル処理装置並びにベクトルデータ整列方法 |
EP3242253A1 (en) * | 2016-05-03 | 2017-11-08 | Imagination Technologies Limited | Hardware implementation of a convolutional neural network |
CN110705702A (zh) * | 2019-09-29 | 2020-01-17 | 东南大学 | 一种动态可扩展的卷积神经网络加速器 |
CN112418391A (zh) * | 2019-08-22 | 2021-02-26 | 畅想科技有限公司 | 用于对深度神经网络的权重进行转换的方法和系统 |
CN112561045A (zh) * | 2019-09-26 | 2021-03-26 | 三星电子株式会社 | 用于图像识别的神经网络的处理器实现的方法和设备 |
CN113033790A (zh) * | 2019-12-09 | 2021-06-25 | 三星电子株式会社 | 神经网络装置及其操作方法 |
CN115860079A (zh) * | 2023-01-30 | 2023-03-28 | 深圳市九天睿芯科技有限公司 | 神经网络加速装置、方法、芯片、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11216722B2 (en) * | 2016-12-31 | 2022-01-04 | Intel Corporation | Hardware accelerator template and design framework for implementing recurrent neural networks |
-
2023
- 2023-11-08 CN CN202311478862.0A patent/CN117217274B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009211368A (ja) * | 2008-03-04 | 2009-09-17 | Nec Corp | キャッシュメモリ及びベクトル処理装置並びにベクトルデータ整列方法 |
EP3242253A1 (en) * | 2016-05-03 | 2017-11-08 | Imagination Technologies Limited | Hardware implementation of a convolutional neural network |
CN112418391A (zh) * | 2019-08-22 | 2021-02-26 | 畅想科技有限公司 | 用于对深度神经网络的权重进行转换的方法和系统 |
CN112561045A (zh) * | 2019-09-26 | 2021-03-26 | 三星电子株式会社 | 用于图像识别的神经网络的处理器实现的方法和设备 |
CN110705702A (zh) * | 2019-09-29 | 2020-01-17 | 东南大学 | 一种动态可扩展的卷积神经网络加速器 |
CN113033790A (zh) * | 2019-12-09 | 2021-06-25 | 三星电子株式会社 | 神经网络装置及其操作方法 |
CN115860079A (zh) * | 2023-01-30 | 2023-03-28 | 深圳市九天睿芯科技有限公司 | 神经网络加速装置、方法、芯片、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
在linux上建立PHP的加速器eAccelerator;杨萍;;内江科技(第5期);第152-153段 * |
Also Published As
Publication number | Publication date |
---|---|
CN117217274A (zh) | 2023-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117217274B (zh) | 向量处理器、神经网络加速器、芯片及电子设备 | |
CN110390385B (zh) | 一种基于bnrp的可配置并行通用卷积神经网络加速器 | |
CN111414994B (zh) | 一种基于FPGA的Yolov3网络计算加速系统及其加速方法 | |
CN111898733B (zh) | 一种深度可分离卷积神经网络加速器架构 | |
WO2019136764A1 (zh) | 卷积器及其所应用的人工智能处理装置 | |
CN112633490B (zh) | 执行神经网络模型的数据处理装置、方法及相关产品 | |
CN109840585B (zh) | 一种面向稀疏二维卷积的运算方法和系统 | |
CN109117940B (zh) | 基于卷积神经网络的目标检测方法、装置、终端及存储介质 | |
CN109472734B (zh) | 一种基于fpga的目标检测网络及其实现方法 | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
CN114743014B (zh) | 基于多头自注意力的激光点云特征提取方法及装置 | |
US12079724B2 (en) | Texture unit circuit in neural network processor | |
CN110738317A (zh) | 基于fpga的可变形卷积网络运算方法、装置和系统 | |
CN114359662B (zh) | 一种基于异构fpga和融合多分辨率的卷积神经网络的实现方法 | |
JP2020042774A (ja) | 人工知能推論演算装置 | |
CN110782430A (zh) | 一种小目标的检测方法、装置、电子设备及存储介质 | |
Duan et al. | Energy-efficient architecture for FPGA-based deep convolutional neural networks with binary weights | |
CN116227599A (zh) | 一种推理模型的优化方法、装置、电子设备及存储介质 | |
CN112101113A (zh) | 一种轻量化的无人机图像小目标检测方法 | |
CN108764182B (zh) | 一种优化的用于人工智能的加速方法和装置 | |
CN116266274A (zh) | 一种神经网络的调整方法及相应装置 | |
CN112001492B (zh) | 关于二值权重DenseNet模型的混合流水式加速架构及加速方法 | |
US20230334289A1 (en) | Deep neural network accelerator with memory having two-level topology | |
CN112465123A (zh) | 优化神经网络模型的处理装置及方法 | |
US20230259780A1 (en) | Neural network sparsification apparatus and method and related product |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |