适合通用硬件电路的神经网络数据存储格式转换方法技术

技术编号:35686159 阅读:15 留言:0更新日期:2022-11-23 14:31
本公开揭示了计算机实现的数据处理方法,包括步骤:S100:从源存储器读取图像数据,其中源存储器具有源存储格式,其中对源存储器的读取是以适用于源存储器的模式进行的;S200:把图像数据从源存储格式转置成不同于源存储格式的目的地存储格式,其中源存储格式和目的地存储格式中的一个是HWC8存储格式,而源存储格式和目的地存储格式中的另一个是HWC88存储格式;S300:把图像数据写入到目的地存储器,其中目的地存储器具有目的地存储格式,其中对目的地存储器的读取是以适用于目的地存储器的格式进行的。本公开利用HWC88存储格式具有更好的局部性,可以提高cache中数据的利用率,进而提升数据传输带宽和计算性能。提升数据传输带宽和计算性能。提升数据传输带宽和计算性能。

【技术实现步骤摘要】
适合通用硬件电路的神经网络数据存储格式转换方法


[0001]本公开属于人工智能
,特别涉及一种适合通用硬件电路的神经网络数据存储格式转换方法。

技术介绍

[0002]近些年来随着以卷积神经网络为主导的人工智能技术的发展,越来越多的计算机视觉任务得到了很好的解决,如图像分类,目标检测和语义分割等。并且当前的一个发展趋势是在端侧平台上部署高性能的神经网络模型并能在真实场景中实时(大于30帧)运行,如移动端/嵌入式端设备。这些平台的特点是内存资源少,处理器性能不高,功耗受限,这使得目前精度最高的模型由于对内存和计算资源的超额要求使得根本无法在上面部署且达到实时性的要求。
[0003]在深度学习中,为了提升数据传输带宽和计算性能,会使用NCHW、NHWC和CHWN等数据格式,它们是image或feature map等的逻辑数据格式(数据在内存中的存放顺序)。不同的数据格式可以通过增加局部数据的复用性,提高cache中数据的利用率。在不同的硬件平台上使用不同的数据存储格式直接影响着计算效率,例如TensorFlow中默认的数据格式为NHWC格式,这是因为NHWC格式在CPU平台上相较于NCHW稍快一些,而NCHW则是Nvidia cuDNN默认格式,使用GPU加速时用NCHW格式速度会更快。

技术实现思路

[0004]鉴于此,本公开提供了一种计算机实现的数据处理方法,包括:
[0005]S100:从源存储器读取图像数据,其中所述源存储器具有源存储格式,其中对所述源存储器的读取是以适用于所述源存储器的模式进行的;
[0006]S200:把所述图像数据从所述源存储格式转置成不同于所述源存储格式的目的地存储格式,其中所述源存储格式和所述目的地存储格式中的一个是HWC8存储格式,而所述源存储格式和所述目的地存储格式中的另一个是HWC88存储格式;
[0007]S300:把图像数据写入到目的地存储器,其中所述目的地存储器具有所述目的地存储格式,其中对所述目的地存储器的读取是以适用于所述目的地存储器的格式进行的。
[0008]优选的,
[0009]HWC88存储格式用于实现FM在数据存储中组织格式的重排,且需要满足如下条件:该格式具有良好的局部性,能提高cache中数据的利用率,以及提升数据传输带宽和计算性能。
[0010]优选的,
[0011]所述图像数据是神经网络数据。
[0012]优选的,
[0013]所述图像数据包括FM数据、WT数据、Bias数据和Clip数据。
[0014]优选的,
[0015]所述步骤S200还进一步包括如下步骤:
[0016]S201:每次从双倍速率同步动态随机存储器DDR加载H方向上一整行数据;
[0017]S202:将所述数据顺序依次存储到8个存储区Block Mem中,每个存储区Block Mem存CH*W/8个数据,其中,CH表示通道,W表示宽度;
[0018]S203:将所述8个存储区Block Mem中的数据并行读取,每个存储区Block Mem输出位宽为8B,并将数据存放到双倍速率同步动态随机存储器DDR中。
[0019]优选的,
[0020]所述HWC88存储格式具体为:
[0021]将一行或一行的一部分FM数据平均分为8块,将每块相同位置相同通道组的数据放在内存的相同地址,优先存放每块中相同位置像素点的所有通道。
[0022]优选的,
[0023]8通道为一组。
[0024]优选的,
[0025]FM采用HWC88格式进行卷积运算具体为:将FM上一行FM数据平均分为8块得到并行的8个点,将每块相同位置相同通道组的数据,和卷积核的对应通道相乘。
[0026]优选的,
[0027]FM采用HWC88格式进行depthwise卷积运算具体为:FM上并行的8个点都会和卷积核的对应通道相乘,将卷积核复制成8份,存放在存储区Block Mem供计算使用,复制前后数据格式都是HWC8格式。
[0028]能够理解,上述方案实际上披露了一种适合通用硬件电路的神经网络数据存储格式转换方法。通过上述技术方案,本公开所使用的HWC88存储格式具有更好的局部性,可以提高cache中数据的利用率,进而提升数据传输带宽和计算性能,该方案对于解决人工智能应用推理端推理效率具有重要意义。其中所述神经网络数据在内存中存储格式的变化可以实现FM在数据存储中组织格式的重排。
附图说明
[0029]图1是本公开一个实施例中所提供的一种计算机实现的数据处理方法流程图;
[0030]图2是本公开一个实施例中HWC8格式、HWC32格式及HWC64格式FM数据的存储格式图;
[0031]图3是本公开一个实施例中HWC88格式FM数据的存储格式图;
[0032]图4是本公开一个实施例中一个基本的HWC88的示例图;
[0033]图5是本公开一个实施例中一个将整个输入数据fm的一行进行分段的示例图;
[0034]图6是本公开一个实施例中一个改进的HWC88的示例图;
[0035]图6A是是本公开一个实施例中,多batch的HWC88存储格式的示意图;
[0036]图7是本公开一个实施例中FM采用HWC88格式进行卷积运算时WT数据的存储格式图;
[0037]图8是本公开一个实施例中一张三通道彩色输入图片卷积示意图;
[0038]图9是本公开一个实施例中FM采用HWC格式进行卷积运算图;
[0039]图10是本公开一个实施例中FM采用HWC88格式进行卷积运算图;
[0040]图11是本公开一个实施例中FM进行depthwise卷积运算图;
[0041]图12是本公开一个实施例中FM采用HWC格式进行depthwise卷积运算时WT数据的存储格式;
[0042]图13是本公开一个实施例中FM采用HWC88格式进行depthwise卷积运算时WT数据的存储格式图;
[0043]图14是本公开一个实施例中BC数据的存储格式图;
[0044]图15是本公开一个实施例中INT4、INT8与INT16数据的存储格式图;
[0045]图16是本公开一个实施例中HWC8格式与HWC88格式数据的相互转换图;
[0046]图17是本公开一个实施例中FM数据通过Block Mem进行格式转换图;
[0047]图18是本公开一个实施例中通用数据进行格式转换图。
具体实施方式
[0048]参见图1,在一个实施例中,其公开了一种计算机实现的数据处理方法,包括:
[0049]S100:从源存储器读取图像数据,其中所述源存储器具有源存储格式,其中对所述源存储器的读取是以适用于所述源存储器的模式进行的;
[0050]S200:把所述图像数据从所述源存储格式转置成不同于所述源存储格式的目的地存储格式本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算机实现的数据处理方法,包括:S100:从源存储器读取图像数据,其中所述源存储器具有源存储格式,其中对所述源存储器的读取是以适用于所述源存储器的模式进行的;S200:把所述图像数据从所述源存储格式转置成不同于所述源存储格式的目的地存储格式,其中所述源存储格式和所述目的地存储格式中的一个是HWC8存储格式,而所述源存储格式和所述目的地存储格式中的另一个是HWC88存储格式;S300:把图像数据写入到目的地存储器,其中所述目的地存储器具有所述目的地存储格式,其中对所述目的地存储器的读取是以适用于所述目的地存储器的格式进行的。2.根据权利要求1所述的方法,其中,优选的,HWC88存储格式用于实现FM在数据存储中组织格式的重排,且需要满足如下条件:该格式具有良好的局部性,能提高cache中数据的利用率,以及提升数据传输带宽和计算性能。3.根据权利要求1所述的方法,其中,所述图像数据是神经网络数据。4.根据权利要求1所述的方法,其中,所述图像数据包括FM数据、WT数据、Bias数据和Clip数据。5.根据权利要求1所述的方法,其中,所述步骤S200还进一步包括如下步骤:S201:每次从双倍速率同步动态随机存...

【专利技术属性】
技术研发人员:任鹏举林晓云赵文哲党祺玮刘汉威夏天
申请(专利权)人:西安交通大学
类型:发明
国别省市:

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

1