CN113806261B - 一种面向向量处理器的池化向量化实现方法 - Google Patents
一种面向向量处理器的池化向量化实现方法 Download PDFInfo
- Publication number
- CN113806261B CN113806261B CN202111178180.9A CN202111178180A CN113806261B CN 113806261 B CN113806261 B CN 113806261B CN 202111178180 A CN202111178180 A CN 202111178180A CN 113806261 B CN113806261 B CN 113806261B
- Authority
- CN
- China
- Prior art keywords
- pooling
- sub
- feature map
- blocks
- vector
- 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
- 238000011176 pooling Methods 0.000 title claims abstract description 201
- 239000013598 vector Substances 0.000 title claims abstract description 98
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 37
- 238000010586 diagram Methods 0.000 claims abstract description 19
- 230000005540 biological transmission Effects 0.000 claims abstract description 15
- 238000000638 solvent extraction Methods 0.000 claims abstract description 9
- 230000000903 blocking effect Effects 0.000 claims abstract description 4
- 238000004364 calculation method Methods 0.000 claims description 44
- 230000008569 process Effects 0.000 description 17
- 238000012856 packing Methods 0.000 description 8
- 238000013527 convolutional neural network Methods 0.000 description 6
- 238000000927 vapour-phase epitaxy Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Image Analysis (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种面向向量处理器的池化向量化实现方法,包括如下步骤:根据AM空间参数、池化窗口预设参数,获取输入分块特征图每次传入AM空间的传输分块参数;基于DMA操作将分块特征图子块加载至所述AM空间;根据预设规则将单个所述分块特征图子块进行分区;根据预设顺序依次对分块特征图子块的每个区域进行池化处理;基于DMA操作将处理后获得的输出特征图子块从所述AM空间中导出至存储器中;重复上述步骤直至获取所有分块特征图子块的池化结果。该方法逻辑清晰,安全、有效、可靠且操作简便,既能支持非方形特征图、非方形移动步长、非方形池化窗口,又能支持特征图填充,无需对特征图重排,提高池化处理效率。
Description
技术领域
本发明涉及到深度学习、卷积神经网络领域技术领域,特别是涉及一种面向向量处理器的池化向量化实现方法。
背景技术
卷积神经网络是当前深度学习模型中应用最广泛的一种神经网络模型,其在如图像分类等领域中特定任务上的性能已经超越了人类。卷积神经网络模型一般由卷积层、激活层、池化层以及全连接层等构成。
池化层位于卷积层之后,用于对卷积层提取到的特征进行聚合统计。卷积神经网络中,利用卷积操作对输入图像进行特征提取之后,将会产生多个特征图,利用所有的特征则计算量将会过于巨大,并且还可能会产生过拟合的问题,对不同位置的局部特征进行聚合统计可以有效解决这个问题。通常有两种方法进行聚合,分别是对特征图上不同位置的局部特征取最大值或平均值,即最大池化(Max-pooling)或平均值池化(Average-pooling)。相比之前提取到的特征图,通过池化之后的数据不仅具有更低维度,而且计算量显著减少,同时还避免了一定程度的过拟合改善了分类效果。总的来说,池化层具有降信息冗余、减少计算量以及防止过拟合等作用,是卷积神经网络的重要组成。
向量处理器是一种新型的体系结构,如图4所示,包含进行标量运算的标量处理单元(SPU)和进行向量运算的向量处理单元(VPU),以及负责数据传输的直接存储器访问(Direct Memory Access,DMA)部件等。SPU由标量处理部件SPE和标量存储器SM构成。VPU由M个向量处理部件VPE和阵列存储器AM构成,M个向量处理部件VPE以单指令多数据(SIMD)的方式协作运行,支持指定VPE部件的关闭与开启,但不支持多个VPE之间的数据交互。DMA部件负责SM与DDR、AM与DDR之间的数据传输。
目前,专利《CN 108205703 A-多输入多输出矩阵平均值池化向量化实现方法》中提到的方法存在以下问题:(1)将输入特征图导入向量处理器核AM空间之前,会对输入特征图进行重排,见第2页S2-S3,极大地影响了处理效率;(2)如第二页第4、6、7页显示,分别要求特征图的高度和宽度相等,池化的水平移动步长和垂直移动步长相同、池化窗口高度和宽度相等,不支持不相等或者不相同的情况,即不支持非方阵的情况;(3)在卷积神经网络中,常通过对特征图进行填充(Padding)来保持特征图边界上的有效信息,目前该文献不支持填充(Padding)的情况。
因此,提供一种支持特征图填充、无需对特征图重排,可以支持非方形特征图、非方形移动步长、非方形池化窗口的面向向量处理器的池化向量化实现方法是本领域技术人员亟待解决的问题。
发明内容
本发明的目的在于提供一种面向向量处理器的池化向量化实现方法,该方法逻辑清晰,安全、有效、可靠且操作简便,既能支持非方形特征图、非方形移动步长、非方形池化窗口,又能支持特征图填充,无需对特征图重排,提高池化处理效率。
基于以上目的,本发明提供的技术方案如下:
一种面向向量处理器的池化向量化实现方法,包括如下步骤:
S1.根据AM空间参数、池化窗口预设参数,获取输入分块特征图每次传入AM空间的传输分块参数;
S2.基于DMA操作将分块特征图子块加载至所述AM空间;
S3.根据预设规则将单个所述分块特征图子块进行分区;
S4.根据预设顺序依次对分块特征图子块的每个区域进行池化处理;
S5.基于DMA操作将处理后获得的输出特征图子块从所述AM空间中到导出至存储器中;
S6.重复步骤S1-S5直至获取所有分块特征图子块的池化结果。
优选地,所述AM空间参数具体为AM空间大小;
所述池化窗口预设参数具体为池化窗口高度、宽度、水平移动步长和垂直移动步长;
所述输入分块特征图每次传入AM空间的传输分块参数具体为所述输入分块特征图传输子块的高度和宽度。
优选地,单个所述分块特征图子块具体为所述输入分块特征图传输子块的高度、所述输入分块特征图传输子块的宽度与向量处理器向量单元并行处理的数据宽度的乘积大小的输入特征图元素。
优选地,所述步骤S3具体为:
对单张所述分块特征图按照填充情况分为上、中、下、左、右共五个区;
步骤S4中预设顺序为上、下、左、右、中。
优选地,所述步骤S4具体包括:
A1.获取当前所在区的池化窗口非填充向量个数;
A2.初始化向量寄存器V0与i=0;
A3.从当前池化窗口中加载第i个L长的数据到向量寄存器V1中,其中L具体为向量处理器单元并行处理的数据宽度;
A4.根据池化模式选取预设计算规则,获取池化结果,并将池化结果存储在所述向量寄存器V0中;
A5.递增i,若i<非填充向量个数则返回步骤A3;
A6.根据所述池化模式处理所述向量寄存器V0中的每个元素,并将处理结果存储在所述向量寄存器V0中;
A7.存储所述向量寄存器V0至所述AM空间中。
优选地,所述步骤A1还包括:若所述当前所在区为上区或下区,则获取第一个池化窗口的非填充向量个数与最后一个池化窗口的非填充向量个数。
优选地,所述池化模式具体为:平均值池化与最大值池化;
所述步骤A4中根据池化模式选取预设计算规则,获取池化结果具体为:
若所述池化模式为平均值池化,则获取所述向量寄存器V0与所述向量寄存器V1之和;
若所述池化模式为最大值池化,则获取所述向量寄存器V0与所述向量寄存器V1中分别对应的元素最大值。
优选地,所述步骤A6中根据所述池化模式,处理所述向量寄存器V0中的每个元素具体为:若所述池化模式为平均值池化,则获取所述向量寄存器V0中的每个元素与所述池化窗口宽度、高度的乘积之间的商值;
若所述池化模式为最大值池化,则跳过处理步骤。
本发明所提供的面向向量处理器的池化向量化实现方法,是通过AM空间参数、池化窗口预设参数从而计算获取输入分块特征图每次传入AM空间的传输分块参数;根据分块参数对输出特征图进行分块,得到分块特征图子块;通过DMA操作将分块特征图子块加载至AM空间中;通过预设规则将单个分块特征图子块进行分区;分区后按照预设顺序对分块特征图子块的每个区域进行池化处理;池化处理后的分块特征图子块为输出特征图子块;通过DMA操作将输出特征图子块从AM空间中导出至存储器中;多次重复上述步骤,直至获取所有分块特征图子块的池化结果。
本技术方案用广泛使用的分块特征图作为池化的输入输出,不用再对特征图进行重排,极大地减少了数据预处理的时间,提升平均值池化的效率;而且本技术方案通过分区后,对分块特征图子块的每个区域进行池化处理,从而支撑非方形特征图、非方形移动步长、非方形池化窗口;同时,分区的预设规则是根据填充情况制定。因此,本技术方案既能支持非方形特征图、非方形移动步长、非方形池化窗口,又能支持特征图填充,无需对特征图重排,可以显著提高池化处理效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种面向向量处理器的池化向量化实现方法流程图;
图2为本发明实施例提供的一种面向向量处理器的池化向量化实现方法中池化分区的结构示意图;
图3为本发明实施例提供的一种面向向量处理器的池化向量化实现方法中步骤S4的流程图;
图4为本发明实施例提供的向量处理器的一般体系结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例采用递进的方式撰写。
本发明实施例提供了一种面向向量处理器的池化向量化实现方法。主要解决现有技术中,需要对特征图重排导致处理时间较长、对特征图参数有特定要求、不支持填充的技术问题。
请参照图1,一种面向向量处理器的池化向量化实现方法,包括如下步骤:
S1.根据AM空间参数、池化窗口预设参数,获取输入分块特征图每次传入AM空间的传输分块参数;
S2.基于DMA操作将分块特征图子块加载至AM空间;
S3.根据预设规则将单个分块特征图子块进行分区;
S4.根据预设顺序依次对分块特征图子块的每个区域进行池化处理;
S5.基于DMA操作将处理后获得的输出分块特征图子块从AM空间中到导出至存储器中;
S6.重复步骤S1-S5直至获取所有分块特征图子块的池化结果。
需要说明的是,AM(Array Memory),是指阵列存储器,属于向量处理器上的片上存储空间,可以支持M路VPEs的数据同时存取,速度较快。
DMA(Direct Memory Access)是指直接存储访问,由向量处理器上的标量处理单元SPU来进行初始化,负责标量存储器SM与片外DDR、阵列存储器AM与片外DDR之间的数据传输。
本技术方案用广泛使用的分块特征图作为池化的输入输出,不用再对特征图进行重排,极大地减少了数据预处理的时间,提升平均值池化的效率;而且本技术方案通过分区后,对分块特征图子块每个区域分别进行池化处理,从而支撑非方形特征图、非方形移动步长、非方形池化窗口;同时,分区的预设规则是根据填充情况制定的。因此,本技术方案既能支持非方形特征图、非方形移动步长、非方形池化窗口,又能支持特征图填充,无需对特征图重排,可以显著提高池化处理效率。
优选地,AM空间参数具体为AM空间大小;
池化窗口预设参数具体为池化窗口高度、宽度、水平移动步长和垂直移动步长;
输入分块特征图每次传入AM空间的传输分块参数具体为输入分块特征图传输子块的高度和宽度。
实际运用过程中,采用广泛使用的分块特征图作为池化的输入输出,输入数据布局为I[N][Cdl][Hi][Wi][L],池化输出结果也为[N][Cdl][Ho][Wo][L],其中N表示小批量大小,Hi和Wi表示池化输入分块特征图的高度和宽度,Ho和Wo表示池化输出分块特征图的高度和宽度,L表示向量处理器向量单元并行处理的数据宽度,Cdl表示特征图的通道数上的分块数,特征图的通道数为Cdl×L。
优选地,单个分块特征图子块具体为输入分块特征图传输子块的高度、输入分块特征图传输子块的宽度与向量处理器向量单元并行处理的数据宽度的乘积大小的输入特征图元素。
实际运用过程中,根据AM空间的大小、池化窗口高度HP和宽度WP、水平Sw和垂直Sh移动步长,计算输入分块特征图的高度和宽度上的传输分块参数Hib和Wib,基于DMA操作将分块特征图子块数据Hib×Wib×L,加载到AM空间。
优选地,步骤S3具体为:
对单张分块特征图按照填充情况分为上、中、下、左、右共五个区;
步骤S4中预设顺序为上、下、左、右、中。
请参照图2,实际运用过程中,对单张特征图按照填充(Padding)情况分为上(Top)、下(Bottom)、左(Left)、右(Right)以及中(Middle)等5个区,对已经导入到AM空间的分块特征图子块,按照其覆盖的区依次进行处理。按照上(Top)、下(Bottom)、左(Left)、右(Right)以及中(Middle)的顺序分别进行处理。上(Top)、下(Bottom)、左(Left)以及右(Right)的填充(Padding)大小分别为Ptop、Pbottom、Pleft以及Pright。图2中,黑色实线所围成的区域表示原始特征图,灰色虚线表示填充后的情况,灰色实线表示分区情况。
请参照图3,优选地,步骤S4具体包括:
A1.获取当前所在区的池化窗口非填充向量个数;
A2.初始化向量寄存器V0与i=0;
A3.从当前池化窗口中加载第i个L长的数据到向量寄存器V1中,其中L具体为向量处理器单元并行处理的数据宽度;
A4.根据池化模式选取预设计算规则,获取池化结果,并将池化结果存储在向量寄存器V0中;
A5.递增i,若i<非填充向量个数则返回步骤A3;
A6.根据池化模式处理向量寄存器V0中的每个元素,并将处理结果存储在向量寄存器V0中;
A7.存储向量寄存器V0至AM空间中。
优选地,步骤A1还包括:若当前所在区为上区或下区,则获取第一个池化窗口的非填充向量个数与最后一个池化窗口的非填充向量个数。
实际运用过程中,对于步骤A1获取当前所在区的池化窗口非填充向量个数具体的实施操作为:
上(Top)区处理
对于需要上部填充(Top padding)的池化窗口均划分为Top区;
先进行Top区第一个池化窗口的处理,其不仅需要Top padding,还需要左边填充(Left padding),采用向量加载第一个池化窗口中所有非填充的元素,并根据池化模式的不同选取不同的预设计算规则进行计算,共计计算(Hp-Ptop)×(Wp-Pleft)次,将该计算结果根据池化模式的不同选取不同的预设计算规则进行处理得到池化结果。
根据水平移动步长Sw,移动到下一个池化窗口位置;
采用向量加载当前池化窗口中所有非填充的元素,并根据池化模式的不同选取不同的预设计算规则进行计算,共计计算(Hp-Ptop)×Wp次,将该计算结果根据池化模式的不同选取不同的预设计算规则进行处理得到池化结果。
重复移动与计算步骤,直至完成只需Top padding的所有池化窗口的处理;
进行Top区最后一个池化窗口的处理,其不仅需要Top padding,还需要右边填充(Right padding),采用向量加载Top区最后一个池化窗口中所有非填充的元素,并根据池化模式的不同选取不同的预设计算规则进行计算,共计计算(HP-Ptop)×(WP-Pright)次,将该计算结果根据池化模式的不同选取不同的预设计算规则进行处理得到池化结果。
下(Bottom)区处理
对于需要下部填充(Bottom padding)的池化窗口均划分为Bottom区;
先进行Bottom区第一个池化窗口的处理,其不仅需要Bottom padding,还需要Left padding,采用向量加载第一个池化窗口中所有非填充的元素,并根据池化模式的不同选取不同的预设计算规则进行计算,共计计算(HP-Pbottom)×(WP-Pleft)次,将该计算结果根据池化模式的不同选取不同的预设计算规则进行处理得到池化结果。
根据水平移动步长Sw,移动到下一个池化窗口位置;
采用向量加载当前池化窗口中所有非填充的元素,并根据池化模式的不同选取不同的预设计算规则进行计算,共计计算(HP-Pbottom)×Wp次,将该计算数据根据池化模式的不同选取不同的预设计算规则进行处理得到池化结果。
重复移动与计算步骤,直至完成只需Bottom padding的所有池化窗口的处理;
进行Bottom区最后一个池化窗口的处理,其不仅需要Bottom padding,还需要Right padding,采用向量加载Bottom区最后一个池化窗口中所有非填充的元素,并根据池化模式的不同选取不同的预设计算规则进行计算,共计计算(HP-Pbottom)×(WP-Pright)次,将该计算结果根据池化模式的不同选取不同的预设计算规则进行处理得到池化结果。
左(Left)区处理
对于需要左部填充(Left padding)并且只需Left padding的池化窗口均划分为Left区;
采用向量加载当前池化窗口中所有非填充的元素,并根据池化模式的不同选取不同的预设计算规则进行计算,共计计算HP×(WP-Pleft)次,将该计算结果根据池化模式的不同选取不同的预设计算规则进行处理得到池化结果。
根据垂直移动步长Sh,移动到下一个池化窗口位置;
重复移动与计算步骤,直至完成只需Left padding的所有池化窗口的处理。
右(Right)区处理
对于需要右部填充(Right padding)并且只需Right padding的池化窗口均划分为Right区;
采用向量加载当前池化窗口中所有非填充的元素,并根据池化模式的不同选取不同的预设计算规则进行计算,共计计算HP×(WP-Pright)次,将该计算结果根据池化模式的不同选取不同的预设计算规则进行处理得到池化结果。
根据垂直移动步长Sh,移动到下一个池化窗口位置;
重复计算与移动步骤,直至完成只需Right padding的所有池化窗口的处理;
中(Middle)区处理
对于不需要任何填充(padding)的池化窗口均划分为Middle区;
采用向量加载当前池化窗口中所有的元素,并根据池化模式的不同选取不同的预设计算规则进行计算,共计计算HP×WP次,将该计算结果根据池化模式的不同选取不同的预设计算规则进行处理得到池化结果。
根据水平移动步长Sw,移动到下一个池化窗口位置;
重复计算与移动步骤,直至完成一行所有池化窗口的处理;
根据垂直移动步长Sh,移动到下一个池化窗口位置;
重复计算与移动步骤,直到完成Middle区所有行的所有池化窗口的处理。
优选地,池化模式具体为:平均值池化与最大值池化;
步骤A4中根据池化模式选取预设计算规则,获取池化结果具体为:
若池化模式为平均值池化,则获取向量寄存器V0与向量寄存器V1之和;
若池化模式为最大值池化,则获取向量寄存器V0与向量寄存器V1中分别对应的元素最大值。
实际运用过程中,在步骤A4中,根据池化模式的不同选取不同的预设计算规则,若是平均值池化,则求v0+v1;若是最大池化,则求v0和v1中对应元素的最大值max(v0,v1)。
优选地,步骤A6中根据池化模式,处理向量寄存器V0中的每个元素具体为:若池化模式为平均值池化,则获取向量寄存器V0中的每个元素与池化窗口宽度、高度的乘积之间的商值;
若池化模式为最大值池化,则跳过处理步骤。
实际运用过程中,在对当前所在区根据池化模式的不同选取不同的预设计算规则进行计算后,将该计算结果根据池化模式的不同选取不同的预设计算规则进行处理得到池化结果具体为:若池化模式为平均值池化,则将累加结果与1/(Hp×Wp)相乘,得到处理后的池化结果;若池化模式为最大值池化,则跳过处理向量寄存器V0中的每个元素的步骤。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令及相关的硬件来完成,前述的程序指令可以存储于计算机可读取存储介质中,该程序指令在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种面向向量处理器的池化向量化实现方法进行了详细介绍。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种面向向量处理器的池化向量化实现方法,其特征在于,包括如下步骤:
S1.根据AM空间参数、池化窗口预设参数,获取输入分块特征图每次传入AM空间的传输分块参数;
S2.基于DMA操作将所述输入分块特征图的子块加载至所述AM空间;
S3.根据预设规则将单个所述输入分块特征图的子块进行分区;
S4.根据预设顺序依次对所述输入分块特征图的子块的每个区域进行池化处理;
S5.基于DMA操作将处理后获得的输出分块特征图的子块从所述AM空间中导出至存储器中;
S6.重复步骤S1-S5直至获取所有所述输出分块特征图的子块的池化结果;
所述步骤S3具体为:
对单个所述输入分块特征图的子块,按照填充情况分为上、中、下、左、右共五个区;
所述步骤S4的预设顺序具体为:上、下、左、右、中;
所述步骤S4包括:
A1.获取当前所在区的池化窗口非填充向量个数;
A2.初始化向量寄存器V0与i=0;
A3.从当前池化窗口中加载第i个L长的数据到向量寄存器V1中,其中L具体为向量处理器单元并行处理的数据宽度;
A4.根据池化模式选取预设计算规则,获取池化结果,并将池化结果存储在所述向量寄存器V0中;
A5.递增i,若i<非填充向量个数则返回步骤A3;
A6.根据所述池化模式处理所述向量寄存器V0中的每个元素,并将处理结果存储在所述向量寄存器V0中;
A7.存储所述向量寄存器V0至所述AM空间中;
其中,所述池化模式具体为:平均值池化与最大值池化。
2.如权利要求1所述的面向向量处理器的池化向量化实现方法,其特征在于,所述AM空间参数具体为AM空间大小;
所述池化窗口预设参数具体为:池化窗口高度、宽度、水平移动步长和垂直移动步长;
所述输入分块特征图每次传入AM空间的传输分块参数具体为:所述输入分块特征图的子块的高度和所述输入分块特征图的子块的宽度。
4.如权利要求1所述的面向向量处理器的池化向量化实现方法,其特征在于,所述步骤A1还包括:若所述当前所在区为上区或下区,则获取第一个池化窗口的非填充向量个数与最后一个池化窗口的非填充向量个数。
5.如权利要求1所述的面向向量处理器的池化向量化实现方法,其特征在于,所述步骤A4中根据池化模式选取预设计算规则,获取池化结果具体为:
若所述池化模式为平均值池化,则获取所述向量寄存器V0与所述向量寄存器V1之和;
若所述池化模式为最大值池化,则获取所述向量寄存器V0与所述向量寄存器V1中分别对应的元素最大值。
6.如权利要求5所述的面向向量处理器的池化向量化实现方法,其特征在于,所述步骤A6中根据所述池化模式,处理所述向量寄存器V0中的每个元素具体为:若所述池化模式为平均值池化,则获取所述向量寄存器V0中的每个元素与所述池化窗口宽度、高度的乘积之间的商值;若所述池化模式为最大值池化,则跳过处理步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111178180.9A CN113806261B (zh) | 2021-10-09 | 2021-10-09 | 一种面向向量处理器的池化向量化实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111178180.9A CN113806261B (zh) | 2021-10-09 | 2021-10-09 | 一种面向向量处理器的池化向量化实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113806261A CN113806261A (zh) | 2021-12-17 |
CN113806261B true CN113806261B (zh) | 2023-06-20 |
Family
ID=78897516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111178180.9A Active CN113806261B (zh) | 2021-10-09 | 2021-10-09 | 一种面向向量处理器的池化向量化实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113806261B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114265801B (zh) * | 2021-12-21 | 2023-07-25 | 中国科学院深圳先进技术研究院 | 一种通用、可配置的高能效池化计算多行输出方法 |
CN115114575B (zh) * | 2022-08-30 | 2023-01-31 | 中国人民解放军国防科技大学 | 面向向量处理器的图像到矩阵行转换方法、装置及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086244A (zh) * | 2018-07-11 | 2018-12-25 | 中国人民解放军国防科技大学 | 一种基于向量处理器的矩阵卷积向量化实现方法 |
CN112149694A (zh) * | 2020-08-28 | 2020-12-29 | 特斯联科技集团有限公司 | 一种基于卷积神经网络池化模块的图像处理方法、系统、存储介质及终端 |
-
2021
- 2021-10-09 CN CN202111178180.9A patent/CN113806261B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086244A (zh) * | 2018-07-11 | 2018-12-25 | 中国人民解放军国防科技大学 | 一种基于向量处理器的矩阵卷积向量化实现方法 |
CN112149694A (zh) * | 2020-08-28 | 2020-12-29 | 特斯联科技集团有限公司 | 一种基于卷积神经网络池化模块的图像处理方法、系统、存储介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN113806261A (zh) | 2021-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11580377B2 (en) | Method and device for optimizing neural network | |
CN107844828B (zh) | 神经网络中的卷积计算方法和电子设备 | |
CN108108811B (zh) | 神经网络中的卷积计算方法和电子设备 | |
US20220383067A1 (en) | Buffer Addressing for a Convolutional Neural Network | |
US10810483B2 (en) | Superpixel methods for convolutional neural networks | |
CN113806261B (zh) | 一种面向向量处理器的池化向量化实现方法 | |
CN111758107B (zh) | 用于基于硬件的池化的系统和方法 | |
CN109885407B (zh) | 数据处理方法和装置、电子设备、存储介质 | |
CN108629406B (zh) | 用于卷积神经网络的运算装置 | |
CN110989920B (zh) | 能量高效的存储器系统和方法 | |
KR20080042083A (ko) | 그래픽 처리 유닛 상에서 콘볼루션 신경망을 트레이닝하는방법 | |
CN112991142B (zh) | 图像数据的矩阵运算方法、装置、设备及存储介质 | |
US10402196B2 (en) | Multi-dimensional sliding window operation for a vector processor, including dividing a filter into a plurality of patterns for selecting data elements from a plurality of input registers and performing calculations in parallel using groups of the data elements and coefficients | |
KR102470027B1 (ko) | 다수 컨벌루션 윈도우 중의 이미지 데이터를 추출하는 방법, 장치, 기기 및 컴퓨터 판독 가능한 저장매체 | |
KR20230081697A (ko) | 팽창 컨볼루션 계산 가속화 방법 및 장치 | |
US11164032B2 (en) | Method of performing data processing operation | |
CN114995782A (zh) | 数据处理方法、装置、设备和可读存储介质 | |
CN110490308B (zh) | 加速库的设计方法、终端设备及存储介质 | |
JP7251354B2 (ja) | 情報処理装置、情報処理プログラム、及び情報処理方法 | |
CN108415881A (zh) | 卷积神经网络的运算装置及方法 | |
CN117730328A (zh) | 高效池化方法及其装置 | |
CN116090518A (zh) | 基于脉动运算阵列的特征图处理方法、装置以及存储介质 | |
CN113469333A (zh) | 执行神经网络模型的人工智能处理器、方法及相关产品 | |
CN118503205B (zh) | 用于处理张量数据的方法和装置 | |
US20240296520A1 (en) | Parameter optimizing method of neural network and computing apparatus |
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 |