关键词:
乘累加矩阵
Booth算法
Wallace Tree
逻辑综合
物理实现
摘要:
随着卷积神经网络(CNN)的广泛应用,其模型的数据量和计算复杂度变得越来越大,这也对CNN的硬件加速设计提出更高的要求。乘累加矩阵(Multiply Accumulate)作为实现卷积运算的电路模块,承担着整体网络中的绝大部分硬件消耗,其性能和功耗的优劣对整个网络有着至关重要的影响。本文针对MAC矩阵高能效的应用需求,对卷积操作的数据复用特点和Booth算法乘法电路结构进行研究,设计实现了一个基于基-16Booth算法预计算电路和输入寄存器复用的高能效MAC矩阵。本文的研究首先对基16-Booth算法部分积的产生方法进行分析,并对其电路模块进行了设计和实现。之后将卷积操作的数据复用特点和部分积产生电路结构特点相结合,提出一种MAC矩阵中的电路复用结构,将预计算电路模块和相应输入寄存器在MAC矩阵中进行复用,对整体电路功耗进行优化;其次,本文设计了 Wallace Tree和相加的结构对多个部分积之间的累加操作进行实现。在此压缩结构中,为了避免常规乘法器的部分积补位相加操作中的冗余计算,本文将多个选择电路模块输出的高低位部分积直接一同送入压缩树中进行压缩,且采用高低位部分积分别进行压缩的方式完成,将补位相加操作在压缩完成后进行,由此降低Wallace Tree的硬件开销。再次,在MAC矩阵的逻辑综合阶段,通过对MAC矩阵结构和所使用工艺库模型的分析,针对本次设计特点提出基于翻转率的功耗优化方法,在不引入额外开销的情况下对MAC矩阵的功耗进一步优化。最后,对MAC矩阵进行了物理实现,并在实现中针对各阶段出现的问题,提出相应的解决方案,完成了MAC矩阵的各项验证工作,实现了 MAC矩阵在性能,面积和功耗上的优化和收敛。通过以上优化,本文实现了一个高能效的MAC矩阵。设计在SMIC40nm工艺下完成布局布线,最终面积为2.98mm2,在处理网络ResNet18的卷积层Conv1时,能效达到了2.41TOPS/W,面积效率达到206GOPS/mm2。与当前其他CNN加速器相比,在能效方面有着14.2%和26.2%的增加,可以看到本次设计的MAC矩阵作为卷积运算的核心,在当前的卷积运算结构中有着较高的性能,具有一定的优势。