EdgeBoard嵌入式AI解决方案中NHWC数据格式的性能分析-设计应用_第1页
EdgeBoard嵌入式AI解决方案中NHWC数据格式的性能分析-设计应用_第2页
EdgeBoard嵌入式AI解决方案中NHWC数据格式的性能分析-设计应用_第3页
EdgeBoard嵌入式AI解决方案中NHWC数据格式的性能分析-设计应用_第4页
EdgeBoard嵌入式AI解决方案中NHWC数据格式的性能分析-设计应用_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑EdgeBoard嵌入式AI解决方案中NHWC数据格式的性能分析-设计应用EdgeBoard简介

EdgeBoard是百度基于FPGA芯片研发的嵌入式AI解决方案,高性能的加速引擎可提供3.6Tops的强大算力,完整的嵌入式参考设计使硬件集成轻松便捷。目前EdgeBoard提供了FPGA软核和计算卡模块两种形态供硬件集成,面向项目部署也提供了抓拍机和计算盒两种基础硬件产品。EdgeBoard深度兼容百度大脑模型资源与工具平台(EasyDL/AIStudio),极大降低了开发验证、产品集成、科研教学、项目部署门槛,适用于安防监控、工业质检、医疗诊断、农作物生长监控、无人驾驶、无人零售等场景

数据格式的逻辑表示与物理表示

深度学习中经常会使用NCHW、NHWC和CHWN数据格式来表示数据,其中N、H、W、C定义如下:

N:一个batch内图片的数量,处理的图片数量

H:垂直高度方向的像素个数,图片的高

W:水平宽度方向的像素个数,图片的宽

C:通道数。例如灰度图像为1,彩色RGB图像为3

下图表示N=2,C=16,H=5,W=4的数据排列,其中左图是逻辑表示,右图是物理表示。

EdgeBoard嵌入式AI解决方案中NHWC数据格式的性能分析

以NCHW为例,其逻辑表示如左上图,n=0时,三个坐标分别标识了C、H、W的方向。个元素是000,第二个元素沿着w方向,即001,随后是002,003;然后沿H方向,即004,005,006,007.。.如此反复到019后;再沿C方向,020,021,022。..。.一直到319;再沿N方向,也就是n=1,然后重复W方向,H方向和C方向。

根据以上NCHW的划分,物理地址表示定义如下(如右上图):

[a:0]表示W方向,在一行内从左到右

[a:1]表示从H方向,一行一行的从上到下

[a:2]表示在C方向,从一个通道到另外一个通道

[a:3]表示从N方向,从n=0到n=1

终NCHW数据格式的物理分布(在内存中的一维表示)表示为000001002003004。..018019020。..318319320。..。..637638639。可以理解成把一个通道的所有像素一行一行地排列起来,然后排下一个通道,即n=0排列完后再排n=1。

同理NHWC表示是先沿C方向,再沿W方向,再沿H方向,沿N方向。所以在内存的存放顺序是,个元素是000,第二个沿C方向,即020,040,060。..一直到300,之后切换到W方向,001021041061.。.301.。到了303后再切换到H方向,即004,024。..304,到了319,再切换到N方向,320,340。..一直到639。

[b:0]表示C方向,个像素从一个通道到另外一个通道

[b:1]表示从W方向,一个通道个像素回到个通道的第二个像素

[b:2]表示在H方向,一个通道行一个像素回到个通道的第二行的个像素

[b:3]表示从N方向,从n=0到n=1

NHWC其物理表示为000020。..300001021。..283303004。..319320340。..。..339359。..639。可以理解成把一个batch的一个像素的所有通道先排列起来,然后排下一个像素。n=0排列完成后,再排n=1。

同理CHWN其逻辑表示,先沿N方向,再沿W方向,再沿H方向,是沿C方向。

[c:0]表示从N方向,从n=0的个像素到n=1的个像素

[c:1]表示从N方向,从n=1的个像素回到n=0的第二个像素

[c:2]表示在H方向,从n=1的行一个像素回到n=0的第二行个像素

[c:3]表示从N方向,从n=1的个通道一个像素回到n=0的第二个通道个像素

CHWN其物理表示为000032001321。..003323004324。..。..019339020。..。可以理解成先把一个batch中N幅图像的个通道个像素排列起来,然后排第二个像素;再排第二个通道,第三个通道。..

数据在内存中的偏移地址

深度学习中涉及大量的数据计算,计算需要从内存中取出数据,因此需要计算出数据的偏移地址以便进行取数。有了上面的逻辑表示和物理表示,可以推导出4维逻辑表示(n,c,h,w)映射到一维内存中偏移地址的公式。

定义位置(n,c,h,w)表示第n个batch的第c通道的第h行的第w列,那么该位置在不同数据格式下,在内存中的偏移地址计算公式如下:NCHW:offset_nchw(n,c,h,w)=n*CHW+c*HW+h*W+wNHWC:offset_nhwc(n,c,h,w)=n*HWC+h*WC+w*C+cCHWN:offset_chwn(n,c,h,w)=c*HWN+h*WN+w*N+n其中N、C、H、W为常量,n、c、h、w为变量

在NCHW中,CHW=C*H*W,表示一个Batch,可以理解成一个BGR3通道的图片,表达的是一个立方体。HW=H*W,表示一个平面,可以理解成是BGR3通道图片的一个通道(灰度图就是一个通道图片)。W是一行,可以理解成一个通道上的一行。

以上图为例,如果想计算出绿色圈,即341的位置(n=1,c=1,h=0,w=1)。我们需要先跳过n=0的数据(CHW),图中箭头1指向的蓝色框区域;再跳过n=1的个通道(HW),图中箭头2指向蓝色框区域;这时进入到了n=1的第二个通道,跳过h=0行(0*W);跳过w个数到达偏移位置。

EdgeBoard为何使用NHWC

下面来分析EdgeBoard选择NHWC数据格式的原因。

上图表示卷积的计算过程。根据卷积的运算特点,相同位置窗口所有通道数与卷积的参数相乘后累加,可以有下面两种计算方式:

先像素后通道:先把一个通道滑动窗口与卷积参数相乘后累加,再进行下一个通道,直到所有通道乘累加完成。比如次滑窗计算公式:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论