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

时间:2025-11-02  作者:Diven  阅读:0

EdgeBoard简介

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

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

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

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

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

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

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

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

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

以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数据格式的物理分布(在内存中的一维表示)表示为000 001 002 003 004 。.. 018 019 020 。.. 318 319 320 。.. 。.. 637 638 639。可以理解成把一个通道的所有像素一行一行地排列起来,然后排下一个通道,即n=0排列完后再排n=1。

同理NHWC表示是先沿C方向,再沿W方向,再沿H方向,最后沿N方向。所以在内存的存放顺序是,第一个元素是000,第二个沿C方向,即020,040, 060 。..一直到300,之后切换到W方向,001 021 041 061.。.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其物理表示为000 020 。.. 300 001 021 。.. 283 303 004 。.. 319 320 340 。.. 。.. 339 359 。.. 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其物理表示为 000 032 001 321 。.. 003 323 004 324 。.. 。.. 019 339 020 。..。可以理解成先把一个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 + w NHWC: offset_nhwc(n, c, h, w) = n * HWC + h * WC + w * C + c CHWN: 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,可以理解成一个BGR 3通道的图片,表达的是一个立方体。HW=H*W,表示一个平面,可以理解成是BGR 3通道图片的一个通道(灰度图就是一个通道图片)。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数据格式的原因。

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

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

可以看出两种方式计算的结果是一样。

而对于NHWC格式,即先通道后像素,是把一个像素的所有通道的数据放在一起。这样对应上图第一个像素的3个通道值,第二个像素的3个通道值,第三个像素的3个通道值,在内存中的地址都是连续的,也就是说一次就可以把kernel第一行需要计算的数取出,3x3的kernel需要3次取数。

而对于NCHW格式,即先像素后通道,是把一个通道的所有像素按顺序排列,这样对于一个3*3的卷积核,需要每取3个数就需要跳跃n个数后,再取3个数。一个通道需要取3次,3个通道需要取9次。

在实际网络中,通常通道数会远大于卷积kernel数(不会像上图只有3个通道,通常是几十、几百个通道)。这样对于NHWC格式来说说,取数的次数会比NCHW少很多。对EdgeBoard来说,为了增加其所支持网络的性,减少对大输入尺寸和高存储量权重网络的限制,采用NHWC的格式可以实现分批次地把Feature Map和Weight数据读取到FPGA的片上缓存,例如对于3x3的Kernel,我们可以只读取三行(3WC)Feature Map的数据到FPGA内进行计算,即可得到一行输出数据,并传输到片外大容量缓存DDR,而不需依赖下一个3WC的Feature Map输入数据就可完成每一批次的输入输出数据传输。

再例如,我们也可将Weight数据根据FPGA片上缓存的不同大小分割成N份,一份一份发送到FPGA分别做卷积运算后,再传输回DDR做相应拼接,这等同于做一次大的卷积运算,好处在于可以根据不同容量的FPGA器件做不同匹配,大大提高了代码的硬件适配性。由于C维度之间数据相关性较弱,采用NHWC格式更能有着FPGA高并行度的计算特点,充分利用FPGA的算力。

下表为EdgeBoard使用NHWC数据格式的网络性能:

猜您喜欢

开关锁具是应用于各个领域的重要安全装置。在家庭生活中,开关锁具被应用于门窗、保险柜等,确保家庭财产的安全。在商业领域,商店、办公室和仓库等场所也离不开开关锁具,...
2014-02-08 00:00:00

PTC热敏电阻作为重要的过流保护和温度检测元件,应用于各种电子设备中。在众多PTC热敏电阻品牌中,KOA(兴亚)凭借其高品质的产品和良好的市场口碑,成为业内受到...
2014-12-06 18:07:50

随着科技的不断进步,模块化设计在各个行业中的应用越来越广泛。MODULE_62X45MM_TM作为一种新型的模块化产品,凭借其独特的设计和优越的性能,逐渐成为市...
2025-02-24 09:49:22

可调电阻作为电子元件中的重要组成部分,应用于各种电路调节和性能优化中。奇力新(CHILISIN)作为知名的电子元件制造品牌,其生产的可调电阻以优异的性能和稳定的...
2018-09-29 17:44:03

进口高压变频器电解电容是现代工业设备中重要的组成部分。在电力电子设备中发挥着关键作用。随着科技进步,市场对这些产品的需求不断增加。本文将探讨进口高压变频器电解电...
2025-03-25 06:30:35

PTC热敏电阻因其独特的自恢复过流保护特性,被应用于电路保护和温度控制领域。大毅(TA-I)作为国内知名的PTC热敏电阻制造商,凭借其技术优势和丰富的产品线,赢...
2022-01-31 14:24:23

IIR滤波器设计(一)冲激响应不变法这种方法是通过将模拟滤波器频率特性H(s)反拉氏变换为h(t),再将h(t)等间隔抽样成h(n)后,对h(n)取Z变换求得H...
2023-06-15 11:00:00

随着物联网应用的采用势头越来越猛,嵌入式开发社区面临的压力也越来越大,他们需要平衡每个设计的可用计算资源、延迟、成本和尺寸。由于其实时性,对云连接的关注也被视为...
2022-08-25 10:04:00

排阻(排阻器)作为重要的电气元件,起到了限流、分压和电流保护的关键作用。Viking(光颉)作为知名的排阻品牌,其产品因高品质和稳定性能受到市场青睐。本文将全面...
2012-01-05 00:05:30

现代科技迅速发展的背景下,USB接口作为一种重要的连接方式,已经成为了电子设备之间不可或缺的桥梁。USB9-TYPEA_14.5X14.2MM_SM作为一种特定...
2025-02-27 06:05:11