卷积处理单元、神经网络处理器、电子设备及卷积运算方法技术

技术编号:24011603 阅读:50 留言:0更新日期:2020-05-02 01:56
本申请实施例提供一种卷积处理单元、神经网络处理器、电子设备及卷积运算方法,所述卷积处理单元用于:根据卷积核对输入数据进行一次取窗操作,得到第一窗体区域,所述第一窗体区域沿深度方向包括第一数量层的第一深度数据;获取多个卷积核,所述多个卷积核沿深度方向包括第一数量层的第二深度数据;以及将一层的所述第一深度数据与所述多个卷积核同一层的所述第二深度数据进行乘累加运算,得到第一运算数据。得到的目标运算数据的格式与输入数据的格式相同,不需要变形,可以直接作为下一运算层(如卷积层或池化层)的输入,省去了格式变化步骤,提高了卷积运算的整体效率。

Convolution processing unit, neural network processor, electronic equipment and convolution operation method

【技术实现步骤摘要】
卷积处理单元、神经网络处理器、电子设备及卷积运算方法
本申请涉及电子
,特别涉及一种卷积处理单元、神经网络处理器、电子设备及卷积运算方法。
技术介绍
卷积神经网络(ConvolutionalNeuralNetworks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(FeedforwardNeuralNetworks),是深度学习(deeplearning)的代表算法之一。在卷积神经网络中,卷积运算是卷积神经网络中最主要的计算,卷积运算的效率直接影响卷积神经网络的效率。相关技术中,卷积神经网络中的卷积运算效率不够高。
技术实现思路
本申请实施例提供一种卷积处理单元、神经网络处理器、电子设备及卷积运算方法,可以提高卷积神经网络中卷积运算的效率。本申请实施例公开一种卷积处理单元,所述卷积处理单元用于:根据卷积核对输入数据进行一次取窗操作,得到第一窗体区域,所述第一窗体区域沿深度方向包括第一数量层的第一深度数据;获取多个卷积核,所述多个卷积核沿深度方向包括第一数量层的第二深度数据;以及将一层的所述第一深度数据与所述多个卷积核同一层的所述第二深度数据进行乘累加运算,得到第一运算数据。本申请实施例还公开一种神经网络处理器,其包括:数据缓存单元,存储输入数据;卷积处理单元,所述卷积处理单元通过所述数据缓存单元获取输入数据,所述卷积处理单元为上述所述的卷积处理单元。本申请实施例还公开一种电子设备,其包括:系统总线;以及神经网络处理器,所述神经网络处理器为上述所述的神经网络处理器,所述神经网络处理器与所述系统总线连接。本申请实施例还公开一种卷积运算方法,其包括:根据卷积核对输入数据进行一次取窗操作,得到第一窗体区域,所述第一窗体区域沿深度方向包括第一数量层的第一深度数据;获取多个卷积核,所述多个卷积核沿深度方向包括第一数量层的第二深度数据;将一层的所述第一深度数据与所述多个卷积核同一层的所述第二深度数据进行乘累加运算,得到第一运算数据。将多层的所述第一深度数据对应的多个所述第一运算数据累加得到目标运算数据。本申请实施例中,卷积处理单元对输入数据的卷积运算中,可以将输入数据的第一窗体区域和多个卷积核乘累加运算,具体将第一窗体区域的一层第一深度数据和多个卷积核同一层的第二深度数据进行乘累加运算,得到第一运算数据,得到的目标运算数据的格式与输入数据的格式相同,不需要变形,可以直接作为下一运算层(如卷积层或池化层)的输入,省去了格式变化步骤,提高了卷积运算的整体效率。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。图1为本申请实施例提供的神经网络处理器的第一种结构示意图。图2为本申请实施例提供的神经网络处理器的第二种结构示意图。图3为本申请实施例提供的神经网络处理器的第三种结构示意图。图4为本申请实施例提供的神经网络处理器的第四种结构示意图。图5为本申请实施例提供的神经网络处理器的第五种结构示意图。图6为本申请实施例提供的神经网络处理器的第六种结构示意图。图7为本申请实施例提供的神经网络处理器的第七种结构示意图。图8为本申请实施例提供的神经网络处理器的第八种结构示意图。图9为本申请实施例提供的神经网络处理器的第九种结构示意图。图10为本申请实施例提供的神经网络处理器的第十种结构示意图。图11为本申请实施例提供的神经网络处理器的第十一种结构示意图。图12为本申请实施例提供的神经网络处理器的第十二种结构示意图。图13为本申请实施例提供的神经网络处理器的第十三种结构示意图。图14为本申请实施例提供的神经网络处理器的第十四种结构示意图。图15为本申请实施例提供的神经网络处理器的第十五种结构示意图。图16为本申请实施例提供的神经网络处理器的第十六种结构示意图。图17本申请实施例提供的神经网络处理器中卷积处理单元的输入数据示意图。图18本申请实施例提供的神经网络处理器中卷积处理单元的权重数据示意图。图19本申请实施例提供的神经网络处理器中卷积处理单元的卷积运算示意图。图20本申请实施例提供的神经网络处理器中卷积处理单元的另一卷积运算示意图。图21为本申请实施例提供的芯片的结构示意图。图22为本申请实施例提供的电子设备的结构示意图。图23为本申请实施例提供的卷积运算方法的第一种流程示意图。图24为本申请实施例提供的卷积运算方法的第二种流程示意图。图25为本申请实施例提供的卷积运算方法的第三种流程示意图。具体实施方式本申请实施例提供的技术方案可以应用于各种需要对输入图像进行图像处理以得到相应地输出图像的场景,本申请实施例对此并不限定。诸如,本申请实施例提供的技术方案可以应用于计算机视觉等领域的各种场景,比如:人脸识别、图像分类、目标检测及语义分割等。请参阅图1,图1为本申请实施例提供的神经网络处理器的第一种结构示意图。神经网络处理器(NeuralNetworkProcessUnit,NPU)200可包括第一处理模块210和指令分发模块220。第一处理模块210可包括一个或多个处理单元,诸如第一处理模块210包括卷积处理单元212和向量处理单元214。本申请实施例的第一处理模块210所包括的多个处理单元均可对向量进行处理。需要说明的是,本申请实施例并不对第一处理模块210所处理数据的类型进行限定。卷积处理单元212也可以称为卷积运算单元,卷积处理单元212还可以称为卷积计算引擎。卷积处理单元212内部可包含有多个乘加单元(MultiplicationAddCell,MAC),该乘加单元的个数可以为几千个,诸如卷积处理单元212内部可包含4096个乘加单元,可以分成16个cell,每个cell可以计算最大元素数是256向量内积操作。向量处理单元214也可以称为向量计算单元,还可以称为单指令多数据(SingleInstructionMultipleData,SIMD)处理单元。向量处理单元214是一个元素级向量计算引擎,可以处理常规的向量间的加减乘除等算术操作,同时也可以处理比特级的与、或、非、异或等逻辑操作。需要说明的是,本申请实施例的向量处理单元214还可以支持线性整流函数(RectifiedLinearUnit,ReLU)、PRelu等常见的激活函数操作。还需要说明的是,本申请实施例的向量处理单元214还也可以通过查表法支持非线性激活函数Sigmoid和Tanh。指令分发模块220也可以称为指令预处理模块。指令分发模块220与第一处理模块210连接,指令分发模块220可以与第一处理模块210中的每一个处理单元连接,诸如指令分发模块220与第一处理模块210中的卷积处理单元212和向量处理单元21本文档来自技高网...

【技术保护点】
1.一种卷积处理单元,其特征在于,所述卷积处理单元用于:/n根据卷积核对输入数据进行一次取窗操作,得到第一窗体区域,所述第一窗体区域沿深度方向包括第一数量层的第一深度数据;/n获取多个卷积核,所述多个卷积核沿深度方向包括第一数量层的第二深度数据;以及/n将一层的所述第一深度数据与所述多个卷积核同一层的所述第二深度数据进行乘累加运算,得到第一运算数据。/n

【技术特征摘要】
1.一种卷积处理单元,其特征在于,所述卷积处理单元用于:
根据卷积核对输入数据进行一次取窗操作,得到第一窗体区域,所述第一窗体区域沿深度方向包括第一数量层的第一深度数据;
获取多个卷积核,所述多个卷积核沿深度方向包括第一数量层的第二深度数据;以及
将一层的所述第一深度数据与所述多个卷积核同一层的所述第二深度数据进行乘累加运算,得到第一运算数据。


2.根据权利要求1所述的卷积处理单元,其特征在于,所述卷积处理单元还用于将多层的所述第一深度数据对应的多个所述第一运算数据累加得到目标运算数据。


3.根据权利要求2所述的卷积处理单元,其特征在于,所述输出数据的深度和所述卷积核的深度均为C,所述卷积核的数量为K,所述卷积处理单元包括乘累加阵列,所述乘累加阵列进行乘累加的长度为L;所述卷积处理单元还用于:
将所述输入数据在深度方向上划分为C/L层第一深度数据,以及将多个所述卷积核在深度方向上划分为C/L层第二深度数据;
将第i层所述第一深度数据与K个所述卷积核的第i层所述第二深度数据进行乘累加运算,得到K个第一中间数据;以及
递增i,得到新的K个第一中间数据,并累加之前得到的K个第一中间数据,并得到K个目标运算数据,其中,i从1递增到C/L。


4.根据权利要求2所述的卷积处理单元,其特征在于,所述输出数据的深度和所述卷积核的深度均为C,所述卷积核的数量为K,所述卷积处理单元包括乘累加阵列,所述累加阵列并行计算的单元数为M;所述卷积处理单元还用于:
将多个所述卷积核划分为K/M个卷积核组;
将第i层所述第一深度数据与第f组中所有所述卷积核的第i层所述第二深度数据进行乘累加运算,得到M个第一中间数据;
递增i,得到新的M个第一中间数据,并累加之前得到的M个第一中间数据,并得到M个第二中间数据,其中,i从1递增到C;以及
递增f,得到新的M个第二中间数据,其中,f从1递增到K/M,得到K个目标运算数据。


5.根据权利要求2所述的卷积处理单元,其特征在于,所述输出数据的深度和所述卷积核的深度为C,所述卷积核的数量为K,所述卷积处理单元包括乘累加阵列,所述乘累加阵列为L×M,其中L为进行乘累加运算的长度,M为并行进行乘累加运算的单元数;所述卷积处理单元还用于:
将所述输入数据在深度方向上划分为C/L层第一深度数据;
将多个所述卷积核在深度方向上划分为C/L层第二深度数据;
将多个所述卷积核还划分为K/M个卷积核组;
将第i层所述第一深度数据与第f组中所有所...

【专利技术属性】
技术研发人员:方攀陈岩
申请(专利权)人:OPPO广东移动通信有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1