CN110555793B - 高效的深度卷积实现方法及包括该方法的视觉处理方法 - Google Patents

高效的深度卷积实现方法及包括该方法的视觉处理方法 Download PDF

Info

Publication number
CN110555793B
CN110555793B CN201810564402.2A CN201810564402A CN110555793B CN 110555793 B CN110555793 B CN 110555793B CN 201810564402 A CN201810564402 A CN 201810564402A CN 110555793 B CN110555793 B CN 110555793B
Authority
CN
China
Prior art keywords
convolution
data
cmx
input data
copied
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
Application number
CN201810564402.2A
Other languages
English (en)
Other versions
CN110555793A (zh
Inventor
盛文娟
姚寒星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing LLvision Technology Co ltd
Original Assignee
Beijing LLvision Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing LLvision Technology Co ltd filed Critical Beijing LLvision Technology Co ltd
Priority to CN201810564402.2A priority Critical patent/CN110555793B/zh
Publication of CN110555793A publication Critical patent/CN110555793A/zh
Application granted granted Critical
Publication of CN110555793B publication Critical patent/CN110555793B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了一种高效的深度卷积实现方法及包括该方法的视觉处理方法,包括步骤:A、基于卷积输入数据的尺寸对超长指令字矢量处理器的通道数进行划分,确定出每次拷贝到CMX存储单元的最大通道数;B、利用最大通道数,分别将所述卷积输入数据和所述卷积核数据由双倍速率同步动态随机存储器拷贝至所述CMX存储单元;C、将所述卷积输入数据和卷积核数据指针转换为half8*类型,进行卷积计算,计算结果作为卷积输出数据;D、将卷积输出数据拷贝回所述双倍速率同步动态随机存储器。由上,利用CMX存储单元所具有的half8*类型特点,采用8路并行提高深度卷积效率,大大减少了深度卷积在Myriad 2上的计算时间,提升了视觉算法效率。

Description

高效的深度卷积实现方法及包括该方法的视觉处理方法
技术领域
本发明涉及计算机视觉处理技术领域,特别是一种高效的深度卷积实现方法及包括该方法的视觉处理方法。
背景技术
计算机视觉是一种用机器代替人眼,对目标进行检测、定位、追踪、识别等任务的机器视觉技术。当前,卷积神经网络(CNN,Convolutional Neural Network)是计算机视觉领域广泛使用的技术,在很多视觉任务上取得了良好的效果。
CNN由层级状网络结构构成,擅长处理图像特别是大图像的相关机器学习问题。层级主要分为数据输入层、卷积计算层、激活层、池化层、全连接层等。其中,卷积计算层是CNN中最重要的一个层级,主要进行特征提取工作,是后续特征检测的基础。通常,在设计CNN网络结构时,首层为数据输入层,接收图像数据;后面依次包括卷积层、激活层和池化层共同用于提取特征映射(Feature Map),且随着网络的加深,提取的特征映射语义信息不断加强;最后,通常会使用全连接层将提取到的特征映射用于分类或回归任务。在CNN训练阶段,将训练集图像数据输入到CNN模型中学习卷积层中的卷积核参数和偏置值,经过训练的模型收敛后可应用于实际视觉任务。当输入一张图片到CNN模型中,模型会以一定的准确率输出相应的视觉任务结果。卷积层对CNN模型的重要性在于,可以通过大量数据的训练,学习出提取图像数据特征信息的卷积参数,而模型特征提取的越好,后续的特征检测结果越准确。
随着网络模型研究的深入,越来越多类型的卷积操作被提出,主要有标准卷积、深度卷积(Depth-wise Convolution)、分组卷积(Group Convolution)、空洞卷积(DilatedConvolution)、转置卷积(Transposed Convolution)等。其中,深度卷积相当于对标准卷积的优化,主要起到减少参数量的作用,在该卷积被提出后就广泛应用于CNN模型中,并且计算时间在整个模型中占比较大,仅次于标准卷积。
计算机视觉技术的应用不仅局限于计算机客户端,移动端设备,如手机、机器人、无人机等,都需要使用该技术完成图像分析、目标识别等任务。英特尔公司发布的MovidiusMyriad 2(后文简称Myriad 2)是一款系统级芯片,具有高性能、低功耗的特性,用于在设备端处理视觉任务。如图1所示,Myriad 2主要由12个超长指令字矢量处理器(VLIW vectorprocessor)和两个32位精简指令集计算器(RISC,Reduced Instruction Set Computer)组成。其中,12个超长指令字矢量处理器采用SHAVE处理器,32位精简指令集计算器采用LEON计算器。从视觉计算角度而言,两者之间的较优分工方式为:LEON执行控制代码,SHAVE执行计算代码,由LEON调用SHAVE,二者通过直接内存访问方式(DMA,Direct Memory Access)进行直接数据交换。从计算效率上来说,SHAVE处理器擅长执行密集计算任务,通过矢量寄存器堆(VRF,Vector Register File)完成单指令多数据流(SIMD,Single InstructionMultiple Data)指令。在浮点型数据计算优化上表现为,应充分利用half8*类型进行计算,即充分利用矢量寄存器堆。从存储资源上来说,每个SHAVE处理器拥有128KB的CMX存储单元(CMX存储单元是一种片上静态随机存储单元,访问具有高带宽、低功耗的特点),另外有128/512MB的双倍速率同步动态随机存储器DDR(访问速度低于CMX),计算方法的实现应充分利用有限CMX资源,并尽量减少CMX与DDR间的数据传输。从数据存储方式的角度来说,在Myriad 2开发包(MDK,Myriad 2Development Kit)中卷积输入数据按通道优先存储,充分利用这一特点也会提升卷积计算的实现效率。MDK中实现了CNN模型基础层,其中标准卷积、转置卷积等操作使用了基于矩阵乘法的优化实现方法,具有较高的实现效率。但是深度卷积的实现没有充分利用Myriad 2芯片利用half8*类型进行计算的特点,导致现有技术深度卷积计算效率较低。
发明内容
本发明的主要目的在于提供一种高效的深度卷积实现方法及包括该方法的视觉处理方法,充分利用CMX存储单元所具有的half8*类型特点,采用8路并行的方式提高深度卷积的计算效率,可以将现有的深度卷积所消耗的计算时间大大减少,从而提升视觉算法效率。
为实现上述发明目的,所述高效的深度卷积实现方法包括步骤:
A、基于卷积输入数据的尺寸对超长指令字矢量处理器的通道数进行划分;
B、基于各超长指令字矢量处理器,确定出每次拷贝到CMX存储单元的最大通道数;
C、利用最大通道数,分别将卷积核数据和所述卷积输入数据由双倍速率同步动态随机存储器拷贝至所述CMX存储单元;
D、将所述卷积输入数据和卷积核数据指针转换为half8*类型,进行卷积计算,计算结果作为卷积输出数据;
E、将步骤C所述的卷积输出数据拷贝回所述双倍速率同步动态随机存储器。
其中,步骤A中,所述对超长指令字矢量处理器的通道数进行划分包括:基于卷积输入数据的通道数,调用至少一个超长指令字矢量处理器,各所述超长指令字矢量处理器的通道数为N,N=8*n,n取自然数,且各所述超长指令字矢量处理器的通道数平均相等。
由上,依据超长指令字矢量处理器(SHAVE)的特性,其具有的half8*的处理能力,将每8个(N的取值)捆绑为一组,从而可以最大限度的发挥出各SHAVE快速处理数据的能力。而将各SHAVE处理的数据量进行平分,可以保证每个SHAVE所消耗的时间大致相同,总时间最短。
其中,步骤B中,所述确定出每次拷贝到CMX存储单元的最大通道数包括:采用以下公式
Figure BDA0001684015680000041
确定最大通道数,式中cN取整数,表示最大通道组数;kH和kW分别表示卷积核的高度和宽度、eW表示输入数据填充后宽度,eW=iW+pW,其中iW表示卷积输入数据的宽度,pW表示填充宽度;oW表示输出数据宽度,oW=(iW-kW+2*pW)/s+1,s表示偏移量。
由上,确定出CMX存储单元的最大通信能力,以使其可以满负荷工作,从而最大限度的节约时间。
另外,在步骤B后还包括将所述CMX存储单元分段的步骤,分段包括:
用于存储卷积输入数据的为第一分段,尺寸为(kH*eW*cN)*8*2个字节;
用于存储卷积核数据的为第二分段,尺寸为(kH*kW*cN)*8*2个字节;
用于存储卷积输出数据的为第三分段,尺寸为(oW*cN)*8*2个字节。
由上,基于CMX存储单元的最大通信能力划分最合适的存储区域。
其中,步骤C中,所述将所述卷积核数据由双倍速率同步动态随机存储器拷贝至所述CMX存储单元包括:
判断待拷贝数据量是否高于CMX存储单元用于计算的上限,若高于,则将待拷贝数据等分为至少2层,满足等分后的各层数据均低于所述用于计算的上限;
将等分后的各层数据依次通过8*cN个通道拷贝到CMX存储单元的卷积核片段。
由上,由于CMX存储单元的Memory上限为128KB,用于计算的上限为80KB。当待拷贝的输入数据超过80KB的时候,需要将输入数据进行平均分层,使每层数据小于80KB,以便最大限度的利用CMX存储单元的用于计算数据访问高效优势。
其中,步骤C中,所述将所述卷积输入数据由双倍速率同步动态随机存储器拷贝至所述CMX存储单元包括:
将所有待拷贝的卷积输入数据以行为单位进行顺序排列并标号;
首次拷贝时,拷贝kH行卷积输入数据到CMX的输入片段,并对完成拷贝的标号最小行数据在CMX中的存储位置进行标记;
非首次拷贝时,基于前一次待拷贝的卷积输入数据,在竖直方向上进行一次滑窗,并首先查询上一次完成拷贝的标记位置,仅将本次待拷贝kH行中的标号最大的行数据替换查询到的标记位置的行数据,并对完成拷贝的标号最小行数据在CMX中的存储位置进行标记。
由上,通过上述步骤可以提高效率,节省时间。即只有第一次拷贝时需要拷贝kH行数据,此后每次只需拷贝1行数据即可。
其中,步骤D中,所述卷积计算包括:
卷积输入数据中的kH*kW个数据和卷积核中的kH*kW个数据进行卷积计算;
在通道上偏移计算cN组;
在输出数据上横向滑窗计算oW组,最终得到(8*cN)*oW个卷积计算结果。
由上,完成所有卷积输入数据和卷积核的计算。
对应所提供的一种视觉处理方法,包括依次设置的:
数据输入层,用于获取图像数据作为数据输入;
卷积层、激活层和池化层,用于提取数据输入层的特征映射;
所述卷积层至少包括依次进行的标准卷积过程和深度卷积过程,所述标准卷积过程输出数据作为深度卷积的卷积输入数据,所述深度卷积的输出数据作为激活层的输入数据;
所述深度卷积包括上述任一所述高效的深度卷积方法。
附图说明
图1为型号为Movidius Myriad 2的应用于视觉计算任务的单LEON编程范式原理示意图;
图2为本发明的流程图;
图3为SHAVE的通道数分组示意图;
图4为卷积输入数据拷贝至CMX的输入片段示意图。
具体实施方式
下面参见图1~图4对本发明所述的高效的深度卷积实现方法及包括该方法的视觉处理方法进行详细说明。其中提高深度卷积效率的方法包括以下步骤:
S101:对超长指令字矢量处理器进行参数设置。
本步骤包括以下子步骤:
S1011:为深度卷积的输入、卷积核和输出分配双倍速率同步动态随机存储器存储空间。
在双倍速率同步动态随机存储器(后文简称DDR)中,数据以半精度(后文简称half*类型)类型存储。采用half*类型存储是保证计算结果偏差量满足预期的前提下,更有效的节省存储空间。
S1012:划分超长指令字矢量处理器SHAVE的通道数。
本步骤需要在32位精简指令集计算器(由于本申请所采用的是LEON计算器,故后文简称LEON)上执行控制代码,以调用指定可使用的超长指令字矢量处理器(由于本申请所采用的是SHAVE处理器,后文简称SHAVE)。
所指定SHAVE的个数一般为1个、4个或者8个。这主要是基于高效的考虑,由于Myriad 2芯片在进行卷积计算的同时还需要执行其他任务,例如人脸检测、人脸识别或相机调取任务等。为了平衡各个任务的时间以及规避冲突,通常指定SHAVE的个数为4个或者8个。如果指定多个SHAVE,位置应相邻。从而可以防止和别的任务相冲突。以指定4个为例,则所指定的SHAVE序号为第0到第3个SHAVE。
读取卷积输入数据和卷积核的尺寸,并依据所述尺寸中的输入通道数对各SHAVE的卷积输入进行划分。通过划分满足各SHAVE的通道数为N,N=8*n,n取自然数。且各SHAVE间的通道数平均。
以卷积输入数据尺寸为64x64x256、卷积核尺寸为3x3x256、填充数为0、偏移量为1为例。
基于通道数256,对各SHAVE划分通道数,SHAVE0对应通道0-63,SHAVE1对应通道64-127,SHAVE2对应通道128-191,SHAVE3对应通道192-255,LEON调用指定SAHVE0~SAHVE4进行后续计算。
S1013:确定每次拷贝到CMX存储单元上的最大通道组数。
如图3所示,本步骤中,首先对各SHAVE的通道数分组,每8个为一组。以SHAVE0为例,对应通道为0-63,则共分为8组,各组分别对应通道0~7、8~15、16~23、24~31、32~39、40~47、48~55、56~64。
这样分组的目的在于,原有的64个通道分别对应64组half*类型数据,依据SHAVE所具有的half8*的处理能力,将每8个捆绑为一组,从而可以最大限度的发挥出各SHAVE快速处理数据的能力。
计算最大通道组数计算包括:
Figure BDA0001684015680000071
式中cN表示最大通道组数(取整数);kH和kW分别表示卷积核的高度和宽度、eW表示输入数据填充后宽度,eW=iW+pW,其中iW表示卷积输入数据的宽度,pW表示填充宽度;oW表示输出数据宽度,oW=(iW-kW+2*pW)/s+1,s表示偏移量。
仍以前述卷积输入数据尺寸为64x64x256、卷积核尺寸为3x3x256、填充数为0、偏移量为1为例,带入上述公式表示为
Figure BDA0001684015680000072
计算结果为cN<19.46768,故cN取值为19。
S1014:将SHAVE对应的CMX存储单元分段。
本步骤中,将SHAVE对应的CMX存储单元分为三段,第一段存储卷积输入片段,第二段存储卷积核片段,第三段存储卷积输出片段。
卷积输入片段的尺寸为(kH*eW*cN)*8*2个字节,卷积核片段尺寸为(kH*kW*cN)*8*2个字节,卷积输出片段尺寸为(oW*cN)*8*2个字节。
代入上述实施例,卷积输入片段的尺寸为3*(64+0)*19=3648个字节3*3*19=171个字节;卷积核片段尺寸为((64-3+2*0)/1+1)*19=1178个字节。
S102:将深度卷积数据由DDR拷贝至CMX存储单元。
在深度卷积计算前,卷积输入数据和卷积核数据均存储在DDR中,但由于DDR的访问效率较低,需要将数据拷贝至CMX存储单元,利用CMX存储单元自身访问高效的优势,提高深度卷积的计算效率。
CMX存储单元的Memory上限为128KB,用于计算的上限为80KB。当待拷贝的输入数据超过80KB的时候,需要将输入数据进行平均分层,使每层数据小于80KB,以便最大限度的利用CMX存储单元的访问高效优势。将分层后的数据拷贝至CMX存储单元,每次拷贝8*cN个通道,即相当于half*类型数据的总量。
具体拷贝过程包括两次循环:
第一次循环包括:先通过DMA指令加载当前8*cN个通道的卷积核数据到CMX存储单元的卷积核片段。对应上述例子,即循环拷贝8*19个通道,在循环过程中将对应层的卷积核拷入到CMX存储单元的卷积核片段;
第二次循环包括:再通过DMA指令加载当前8*cN个通道的卷积输入数据到CMX存储单元的输入片段。
上述分布拷贝的目的在于:在深度卷积过程中,卷积核数据是重复利用的,如果将卷积核和卷积输入数据一同拷贝,就会导致在每次深度卷积运算时都要进行相同卷积核的拷贝,那么就会耽误大量的时间。本申请将卷积核数据和卷积输入数据分开拷贝存储,这样可以更加节省时间提高效率。
如图4所示,第二次循环中将卷积输入数据拷贝至CMX的输入片段包括:
每次拷贝kH行卷积输入数据到CMX的输入片段,每次拷贝,都要在卷积输入数据的竖直方向上进行一次滑窗。即图4的上部分表示前一次拷贝,图4的下部分表示当前次拷贝。
如果是首次拷贝,则直接拷贝kH行卷积输入数据,并标记首行数据在CMX中的存储位置dirtyBegin。
如果不是首次拷贝,则率先查询上一次的存储位置dirtyBegin,在该位置开始拷贝待填充的当前次最后一行数据。即用所述当前次的最后一行数据覆盖上一次存储位置dirtyBegin所在行的数据,实现剩余行数据的复用。
具体实现方式包括,首先对输入数据的所有行数进行标记,例如第1行、第2行、……、第H行。
对应上述例子,首先将3行(kH行)对应层的卷积输入数据拷贝到CMX,并在已完成的拷贝中找到行数最小的行,即第1行,在该行标记存储位置dirtyBegin。
第二次拷贝时,待拷贝行数为第2~4行,则仅需要将第4行进行拷贝,替换第1行,复用第2行、第3行。此时已完成拷贝中行数最小的行为第2行,在该行标记存储位置dirtyBegin。
第三次拷贝时,待拷贝行数为第3~5行,则仅需要将第5行进行拷贝,替换第2行,复用第3行、第4行。此时已完成拷贝中行数最小的行为第3行,在该行标记存储位置dirtyBegin。
如此循环,通过上述步骤可以提高效率,节省时间。即只有第一次拷贝时需要拷贝kH行数据,此后每次只需拷贝1行数据即可。
S103:对CMX存储单元上的卷积核数据和输入数据进行卷积计算,计算结果存储于输出片段上。
首先,基于CMX存储单元的特性,将卷积输入数据和卷积核数据指针由half*类型转换为half8*类型,从而相邻的8个通道数据将执行同一指令。这也是充分利用CMX存储单元的最大计算量,提高计算效率。
首先,卷积输入数据中的kH*kW个数据和卷积核中的kH*kW个数据进行卷积计算,计算过程与现有相同,包括对应元素相乘,以及对相乘结果的求和;
其次,再在通道上依次偏移计算cN组;
最终,在输出数据上横向滑窗计算oW组,最终得到(8*cN)*oW个卷积输出。
对应上述例子,即计算CMX中的19组通道的卷积,得到8*19个通道、64行的卷积输出。
S104:将卷积计算结果拷贝回DDR。
对应还提供一种视觉处理方法,该视觉处理方法沿用现有处理技术,包括数据输入层、卷积层、激活层、池化层、全连接层等。获取的图像以作为数据输入层。而卷积层、激活层和池化层,用于提取数据输入层的特征映射。卷积层至少包括依次进行的标准卷积过程和深度卷积过程,所述标准卷积过程输出数据作为深度卷积的卷积输入数据,所述深度卷积的输出数据作为激活层的输入数据。本申请只是将提高效率后的深度卷积的计算算法替换现有效率较低的深度卷积算法。
通过本申请,从拷贝策略到充分利用CMX存储单元所具有的half8*类型特点各个方面入手,全面的加快深度卷积的计算效率,经过实验,采用本发明上述步骤可以将现有的深度卷积所消耗的时间缩短十倍,大大减少了深度卷积在Myriad 2上的计算时间,提升了视觉算法效率。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种高效的深度卷积实现方法,其特征在于,包括步骤:
A、基于卷积输入数据的尺寸对超长指令字矢量处理器的通道数进行划分;
B、基于各超长指令字矢量处理器,确定出每次拷贝到CMX存储单元的最大通道数;
C、利用最大通道数,分别将卷积核数据和所述卷积输入数据由双倍速率同步动态随机存储器拷贝至所述CMX存储单元;
D、将所述卷积输入数据和卷积核数据指针转换为half8*类型,进行卷积计算,计算结果作为卷积输出数据;所述half8*表示8个通道的half*类型,所述half*的表示半精度类型;
E、将所述卷积输出数据拷贝回所述双倍速率同步动态随机存储器。
2.根据权利要求1所述的方法,其特征在于,步骤A中,所述对超长指令字矢量处理器的通道数进行划分包括:基于卷积输入数据的通道数,调用至少一个超长指令字矢量处理器,各所述超长指令字矢量处理器的通道数为N,N=8*n,n取自然数,且各所述超长指令字矢量处理器的通道数相等。
3.根据权利要求1所述的方法,其特征在于,步骤B中,所述确定出每次拷贝到CMX存储单元的最大通道数包括:
采用以下公式
Figure FDA0003952867650000011
确定最大通道组数,式中cN取整数,表示最大通道组数;kH和kW分别表示卷积核的高度和宽度、eW表示输入数据填充后宽度,eW=iW+pW,其中iW表示卷积输入数据的宽度,pW表示填充宽度;oW表示输出数据宽度,oW=(iW-kW+2*pW)/s+1,s表示偏移量;
采用8*cN得到所述最大通道数。
4.根据权利要求3所述的方法,其特征在于,在步骤B后还包括将所述CMX存储单元分段的步骤,分段包括:
用于存储卷积输入数据的为第一分段,尺寸为(kH*eW*cN)*8*2个字节;
用于存储卷积核数据的为第二分段,尺寸为(kH*kW*cN)*8*2个字节;
用于存储卷积输出数据的为第三分段,尺寸为(oW*cN)*8*2个字节。
5.根据权利要求4所述的方法,其特征在于,步骤C中,将所述卷积核数据由双倍速率同步动态随机存储器拷贝至所述CMX存储单元包括:
判断待拷贝数据量是否高于CMX存储单元用于计算的上限,若高于,则将待拷贝数据等分为至少2层,满足等分后的各层数据均低于所述用于计算的上限;
将等分后的各层数据依次通过8*cN个通道拷贝到CMX存储单元的卷积核片段。
6.根据权利要求4所述的方法,其特征在于,步骤C中,将所述卷积输入数据由双倍速率同步动态随机存储器拷贝至所述CMX存储单元包括:
将所有待拷贝的卷积输入数据以行为单位进行顺序排列并标号;
首次拷贝时,拷贝kH行卷积输入数据到CMX的输入片段,并对完成拷贝的标号最小行数据在CMX中的存储位置进行标记;
非首次拷贝时,基于前一次待拷贝的卷积输入数据,在竖直方向上进行一次滑窗,并首先查询上一次完成拷贝的标记位置,仅将本次待拷贝kH行中的标号最大的行数据替换查询到的标记位置的行数据,并对完成拷贝的标号最小行数据在CMX中的存储位置进行标记。
7.根据权利要求5所述的方法,其特征在于,步骤D中,所述卷积计算包括:
卷积输入数据中的kH*kW个数据和卷积核中的kH*kW个数据进行卷积计算;
在通道上偏移计算cN组;
在输出数据上横向滑窗计算oW组,最终得到(8*cN)*oW个卷积计算结果。
8.一种视觉处理方法,其特征在于,包括依次设置的:
数据输入层,用于获取图像数据作为数据输入;
卷积层、激活层和池化层,用于提取数据输入层的特征映射;
所述卷积层至少包括依次进行的标准卷积过程和深度卷积过程,所述标准卷积过程输出数据作为深度卷积的卷积输入数据,所述深度卷积的输出数据作为激活层的输入数据;
所述深度卷积采用权利要求1~7任一所述高效的深度卷积实现方法实现。
CN201810564402.2A 2018-06-04 2018-06-04 高效的深度卷积实现方法及包括该方法的视觉处理方法 Active CN110555793B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810564402.2A CN110555793B (zh) 2018-06-04 2018-06-04 高效的深度卷积实现方法及包括该方法的视觉处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810564402.2A CN110555793B (zh) 2018-06-04 2018-06-04 高效的深度卷积实现方法及包括该方法的视觉处理方法

Publications (2)

Publication Number Publication Date
CN110555793A CN110555793A (zh) 2019-12-10
CN110555793B true CN110555793B (zh) 2023-03-14

Family

ID=68735969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810564402.2A Active CN110555793B (zh) 2018-06-04 2018-06-04 高效的深度卷积实现方法及包括该方法的视觉处理方法

Country Status (1)

Country Link
CN (1) CN110555793B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111091188B (zh) * 2019-12-16 2022-03-25 腾讯科技(深圳)有限公司 神经网络的前向计算方法、装置及计算机可读存储介质
CN113052291B (zh) * 2019-12-27 2024-04-16 上海商汤智能科技有限公司 数据处理方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105765623A (zh) * 2013-08-08 2016-07-13 大卫·莫洛尼 计算成像管线
CN106452461A (zh) * 2016-11-25 2017-02-22 江苏宏云技术有限公司 一种通过矢量处理器实现viterbi解码的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105765623A (zh) * 2013-08-08 2016-07-13 大卫·莫洛尼 计算成像管线
CN106452461A (zh) * 2016-11-25 2017-02-22 江苏宏云技术有限公司 一种通过矢量处理器实现viterbi解码的方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Eyes of Things;Oscar Deniz,et al;《sensors》;20170521;正文第1-29页 *
THE MOVIDIUS MYRIAD ARCHITECTURE’S POTENTIAL FOR SCIENTIFIC COMPUTING;Mircea Horea Ionic,et al;《IEEE》;20150112;正文第6-14页 *
基于HSI彩色空间的加权中值滤波算法;杨欧等;《科学技术与工程》;20070715(第14期);正文第3408-3413页 *
基于异构多核构架的双目散斑3维重建;熊伟等;《工程科学与技术》;20170430;正文第153-161页 *

Also Published As

Publication number Publication date
CN110555793A (zh) 2019-12-10

Similar Documents

Publication Publication Date Title
JP7329533B2 (ja) 演算を加速するための方法および加速器装置
CN103336758B (zh) 一种采用带有局部信息的压缩稀疏行的稀疏矩阵存储方法及基于该方法的SpMV实现方法
CN109919311B (zh) 生成指令序列的方法、执行神经网络运算的方法和装置
CN112840356B (zh) 运算加速器、处理方法及相关设备
CN109284130A (zh) 神经网络运算装置及方法
KR20200060302A (ko) 처리방법 및 장치
KR20190029515A (ko) 비트폭이 다른 연산 데이터를 지원하는 연산 유닛, 연산 방법 및 연산 장치
CN110442689A (zh) 一种问答关系排序方法、装置、计算机设备及存储介质
CN110555793B (zh) 高效的深度卷积实现方法及包括该方法的视觉处理方法
CN113010213B (zh) 基于阻变忆阻器的精简指令集存算一体神经网络协处理器
CN110796236A (zh) 多样本多通道卷积神经网络池化的向量化实现方法
Shahshahani et al. Memory optimization techniques for fpga based cnn implementations
CN111553471A (zh) 一种数据分析处理方法及装置
CN114677548A (zh) 基于阻变存储器的神经网络图像分类系统及方法
CN112799599A (zh) 一种数据存储方法、计算核、芯片和电子设备
CN115186796A (zh) 基于fpga的卷积神经网络自动部署方法
CN112200310B (zh) 智能处理器、数据处理方法及存储介质
CN109324984B (zh) 在卷积运算中使用循环寻址的方法和装置
CN113485750B (zh) 数据处理方法及数据处理装置
EP3447690A1 (en) Maxout layer operation apparatus and method
US20210034900A1 (en) Method and apparatus for extracting image data in parallel from multiple convolution windows, device, and computer-readable storage medium
US11599181B1 (en) Systems and methods for reducing power consumption of convolution operations of artificial neural networks
CN110458285B (zh) 数据处理方法、装置、计算机设备和存储介质
CN114021733B (zh) 模型训练优化方法、装置、计算机设备及存储介质
CN113191491B (zh) 多维度并行的人工智能处理器架构

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