一种图像处理装置及方法制造方法及图纸

技术编号:18051075 阅读:32 留言:0更新日期:2018-05-26 08:42
本发明专利技术公开了一种图像处理装置及方法,装置包括:Eltwise层计算模块,CNN通用层计算模块和内部缓存模块,CNN通用层计算模块分别与Eltwise层计算模块及内部缓存模块连接;其中CNN通用层计算模块对分支图像数据进行CNN计算,确定第一计算结果,根据分支标识信息,判断分支图像数据是否为第一分支数据;如果是,采用第一计算结果对内部缓存模块中缓存的数据更新;如果否,则将第一计算结果发送给Eltwise层计算模块;Eltwise层计算模块与内部缓存模块连接用于根据内部缓存模块中缓存的数据和第一计算结果,进行Eltwise计算,确定第二计算结果,减少了数据读取写出耗时,节省带宽外部存储器资源。

【技术实现步骤摘要】
一种图像处理装置及方法
本专利技术涉及芯片设计
,尤其涉及一种图像处理装置及方法。
技术介绍
随着Resnet(ResidualNeuralNetwork,残差神经网络)网络在图像分类比赛方面的优异表现,Resnet及相关类Resnet卷积神经网络重要性在深度学习学术界和工业界越来越受到重视。Resnet通过跨层(Skip-Layer)的方式,解决了梯度传播的问题,并可以实现深度方面的多模型融合。Resnet中除了卷积、池化等通用CNN(ConvolutionalNeuralNetwork,卷积神经网络)层外,大量使用Eltwise层以实现不同分支的合并及元素级操作,如图1所示为34层Resnet中的一段,包括两个分支的数据,其中3*3conv,64表示卷积计算,Eltwise表示Eltwise计算,使用Eltwise层分别对两个分支的数据进行Eltwise计算并将最后一个分支的计算结果进行输出。Caffe等深度学习工具采用4维数组用于存储和交换数据,维度从低到高为width、height、channels、num,width和height可以简单理解为图像的宽度和高度,channels可以简单理解为颜色通道RGB,num可以简单理解为第几帧数据。Eltwise层所有输入分支的4个维度必须完全一致,主要支持3种操作:product(点乘)、sum(相加减)和max(取最大值)。目前主流的CNN计算硬件对Eltwise层的计算缺乏友好支持:一种是完全不支持Eltwise层的计算,需通过额外的硬件设备,如GPU(GraphicsProcessingUnit,图形处理器)芯片、DSP(DigitalSignalProcessing,数字信号处理)芯片等实现Eltwise层的计算;另一种是对每个分支的CNN层独立进行计算,将每个分支的计算结果分别保存到外部存储设备的不同地址空间中,外部存储设备可以为DDR(DoubleDataRate,双倍速率同步动态随机存储器),最后将每个分支对应的计算结果从外部存储设备中读回,进行Eltwise层的计算后再输往外部存储设备,由外部存储设备进行存储。Resnet网络在某一硬件平台耗时分布如下表所示:层类型层个数耗时(us)时间占比ConvolutionReluLayer25413945.57%PoolingLayer440245554.11%ConcatLayer7184982.49%FullyConnectReluLayer226450.36%SoftmaxLayer123980.32%EltwiseLayer427637437.16%根据上表可知,4个Eltwise层计算耗时占到整个Resnet网络的37%以上。因此可知采用上述方式进行计算时,不但严重消耗带宽及存储器资源,而且由于各分支数据量众多,数据的读取和写出耗时过大,导致Eltwise层成为整个Resnet网络的速度瓶颈。
技术实现思路
本专利技术提供一种图像处理装置及方法,用以解决现有技术中存在在外部存储器中读取和写出数据耗时过大,消耗带宽和外部存储器资源的问题。本专利技术提供一种图像处理装置,所述装置包括:Eltwise层计算模块,卷积神经网络CNN通用层计算模块和内部缓存模块,所述CNN通用层计算模块分别与所述Eltwise层计算模块及所述内部缓存模块连接;其中,所述CNN通用层计算模块,用于在外部存储器中读取待计算的分支图像数据,对所述分支图像数据进行CNN计算,确定第一计算结果,根据所述分支图像数据中包含的分支标识信息,判断所述分支图像数据是否为第一分支数据;如果是,采用所述第一计算结果对所述内部缓存模块中缓存的数据进行更新;如果否,则将所述第一计算结果发送给所述Eltwise层计算模块;所述Eltwise层计算模块与所述内部缓存模块连接,用于根据读取到的所述内部缓存模块中缓存的数据,和所述第一计算结果,进行Eltwise计算,确定第二计算结果。进一步地,所述CNN通用层计算模块,具体用于进行以下至少一种CNN计算:卷积计算、池化计算、BatchNormalization计算、SCALE计算和ReLU计算。进一步地,所述Eltwise层计算模块,还用于根据所述第一计算结果对应的分支图像数据的分支标识信息,判断所述分支图像数据是否为最后一个分支数据,如果否,则采用所述第二计算结果对所述内部缓存模块中缓存的数据进行更新;如果是,则将所述第二计算结果输出到所述外部存储器中。进一步地,所述CNN通用层计算模块,具体用于在所述外部存储器中读取待计算的分支图像数据的数据块,对所述分支图像数据的数据块进行CNN计算。进一步地,所述CNN通用层计算模块,具体用于读取宽度为B_W且高度为B_H的数据块,或读取宽度为D_W且高度为D_H的数据块,其中所述B_W为所述内部缓存模块的容量宽度,B_H为所述内部缓存模块的容量高度,D_W=(B_W–1)*Stride_W+Kernel_W,D_H=(B_H–1)*Stride_H+Kernel_H,Kernel_W为卷积核的横向尺寸,Kernel_H为卷积核的纵向尺寸,Stride_W为卷积核跨度的横向尺寸,Stride_H为卷积核跨度的纵向尺寸。本专利技术提供了一种图像处理方法,所述方法包括:在外部存储器中读取待计算的分支图像数据,对所述分支图像数据进行卷积神经网络CNN计算,确定第一计算结果,根据所述分支图像数据中包含的分支标识信息,判断所述分支图像数据是否为第一分支数据;如果是,采用所述第一计算结果对内部缓存的数据进行更新;如果否,根据读取到的所述内部缓存的数据,和所述第一计算结果,进行Eltwise计算,确定第二计算结果。进一步地,所述对所述分支图像数据进行CNN计算包括以下至少一种CNN计算:卷积计算、池化计算、BatchNormalization计算、SCALE计算和ReLU计算。进一步地,所述确定第二计算结果后,所述方法还包括:根据所述第一计算结果对应的分支图像数据的分支标识信息,判断所述分支图像数据是否为最后一个分支数据;如果否,则采用所述第二计算结果对所述内部缓存的数据进行更新;如果是,则将所述第二计算结果输出到所述外部存储器中。进一步地,所述读取待计算的分支图像数据包括:读取待计算的分支图像数据的数据块;所述对所述分支图像数据进行CNN计算包括:对所述分支图像数据的数据块进行CNN计算。进一步地,所述读取待计算的分支图像数据的数据块包括:读取宽度为B_W且高度为B_H的数据块,或读取宽度为D_W且高度为D_H的数据块,其中所述B_W为所述内部缓存模块的容量宽度,B_H为所述内部缓存模块的容量高度,D_W=(B_W–1)*Stride_W+Kernel_W,D_H=(B_H–1)*Stride_H+Kernel_H,Kernel_W为卷积核的横向尺寸,Kernel_H为卷积核的纵向尺寸,Stride_W为卷积核跨度的横向尺寸,Stride_H为卷积核跨度的纵向尺寸。本专利技术提供一种图像处理装置及方法,所述装置包括:Eltwise层计算模块,卷积神经网络CNN通用层计算模块和内部缓存模块,所述CNN通用层计算模块分别与所述Eltwise层计算模块及所述内部缓存模块连本文档来自技高网
...
一种图像处理装置及方法

【技术保护点】
一种图像处理装置,其特征在于,所述装置包括:Eltwise层计算模块,卷积神经网络CNN通用层计算模块和内部缓存模块,所述CNN通用层计算模块分别与所述Eltwise层计算模块及所述内部缓存模块连接;其中,所述CNN通用层计算模块,用于在外部存储器中读取待计算的分支图像数据,对所述分支图像数据进行CNN计算,确定第一计算结果,根据所述分支图像数据中包含的分支标识信息,判断所述分支图像数据是否为第一分支数据;如果是,采用所述第一计算结果对所述内部缓存模块中缓存的数据进行更新;如果否,则将所述第一计算结果发送给所述Eltwise层计算模块;所述Eltwise层计算模块与所述内部缓存模块连接,用于根据读取到的所述内部缓存模块中缓存的数据,和所述第一计算结果,进行Eltwise计算,确定第二计算结果。

【技术特征摘要】
1.一种图像处理装置,其特征在于,所述装置包括:Eltwise层计算模块,卷积神经网络CNN通用层计算模块和内部缓存模块,所述CNN通用层计算模块分别与所述Eltwise层计算模块及所述内部缓存模块连接;其中,所述CNN通用层计算模块,用于在外部存储器中读取待计算的分支图像数据,对所述分支图像数据进行CNN计算,确定第一计算结果,根据所述分支图像数据中包含的分支标识信息,判断所述分支图像数据是否为第一分支数据;如果是,采用所述第一计算结果对所述内部缓存模块中缓存的数据进行更新;如果否,则将所述第一计算结果发送给所述Eltwise层计算模块;所述Eltwise层计算模块与所述内部缓存模块连接,用于根据读取到的所述内部缓存模块中缓存的数据,和所述第一计算结果,进行Eltwise计算,确定第二计算结果。2.如权利要求1所述的装置,其特征在于,所述CNN通用层计算模块,具体用于进行以下至少一种CNN计算:卷积计算、池化计算、BatchNormalization计算、SCALE计算和ReLU计算。3.如权利要求1或2所述的装置,其特征在于,所述Eltwise层计算模块,还用于根据所述第一计算结果对应的分支图像数据的分支标识信息,判断所述分支图像数据是否为最后一个分支数据,如果否,则采用所述第二计算结果对所述内部缓存模块中缓存的数据进行更新;如果是,则将所述第二计算结果输出到所述外部存储器中。4.如权利要求1或2所述的装置,其特征在于,所述CNN通用层计算模块,具体用于在所述外部存储器中读取待计算的分支图像数据的数据块,对所述分支图像数据的数据块进行CNN计算。5.如权利要求4所述的装置,其特征在于,所述CNN通用层计算模块,具体用于读取宽度为B_W且高度为B_H的数据块,或读取宽度为D_W且高度为D_H的数据块,其中所述B_W为所述内部缓存模块的容量宽度,B_H为所述内部缓存模块的容量高度,D_W=(B_W–1)*Stride_W+Kernel_W,D_H=(B_H–1)*Stride_H+Kernel_H,Kern...

【专利技术属性】
技术研发人员:陆金刚方伟
申请(专利权)人:浙江大华技术股份有限公司
类型:发明
国别省市:浙江,33

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

1