您当前的位置: 首页 > 

FPGA硅农

暂无认证

  • 1浏览

    0关注

    282博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

CNN加速器中的NC4HW4内存排布格式

FPGA硅农 发布时间:2022-02-02 21:01:39 ,浏览量:1

传统的存储格式(NCHW和NHWC)

在卷积神经网络(CNN)中,特征图是一个4维的张量,分别为batch维度N,通道维度C,特征图高H和特征图宽W,在不同的深度学习框架中,特征图也有着不同的存储格式,例如NCHW和NHWC,两者的区别就是通道所在的维度不同,在不同的情况下,这两种存储格式都有各自的优点,下图即为两种存储格式的示意图。 在这里插入图片描述 在使用FPGA设计加速器时,由于FPGA的片上BRAM资源十分有限,无法一次性容纳所有的特征图数据,因此往往会采取分片的策略,即对于一个 C × H × W C \times H \times W C×H×W的特征图来说,我们每次只读取 T n × T r × T c T_n\times T_r \times T_c Tn​×Tr​×Tc​个神经元,待该部分数据使用完毕之后,再读取下一块特征图。在这种策略下,NCHW排布比NHWC排布更占优势,因为它往往可以提供更大的突发传输长度(如果 T r > T n T_r>T_n Tr​>Tn​),然而,提高一个系统的内存带宽并非只有这一种方法,其他方法还包括增大数据传输的位宽、增大传输接口数。例如,如果激活值被量化为16bit,而zynq7020开发板每一个HP接口的最大数据位宽为64bit,那么如果仅采用NCHW排布方式,我们只能优化突发传输长度,而无法充分利用AXI HP接口64bit位宽的优势。因此,针对这个问题,我们引出了下面要介绍的NC4HW4内存排布格式。

NC4HW4

如下图所示,这就是我们要介绍的NC4HW4内存排布格式。 在这里插入图片描述 该格式将每四个连续通道的特征图分为一组,在每一组内,这4幅特征图按照NHWC的格式存储。在上图中,经过NC4HW4排布之后,1,2,3,4在内存上相邻,同理,同一像素位置,不同通道的四个神经元5,6,7,8也在内存上相邻。在这种排布方式下,我们可以每次并行的读取4个数据(充分利用了AXI HP接口64bit位宽的优势),同时,相对于传统方法中的NCHW,突发传输长度仍然保持不变( T c T_c Tc​)。

关注
打赏
1658642721
查看更多评论
立即登录/注册

微信扫码登录

0.0357s