一种基于神经网络的卷积加速器及其后端实现
【摘要】:近些年来,人工智能在各个领域发展迅速,特别是在物体识别,视频监测等方面发挥着十分重要的作用,人工智能所表现出来的卓越成绩和优秀的学习能力,使得越来越多的学者对人工智能产生了极大的兴趣。人的大脑可以控制生物完成十分复杂的学习行为,受此启发使得神经网络得到了发展,卷积神经网络作为神经网络的重要分支,具有容易实现且易训练的特性,同时,卷积神经网络的运算速度也使其发展面临着更严峻的挑战。因此本文提出了一种提高卷积运算速度的方法,这对于卷积神经网络的发展来说具有十分重要的意义。本文设计了一种基于神经网络的卷积加速器的运算核心,共设置了256个PE单元并行完成卷积运算,且每一行PE单元共享输入数据,每一列PE单元共享输入权值,PE单元内部的卷积运算通过乘法器和加法器实现。除此之外,在PE单元内部加入了控制逻辑,用来控制数据调度。并设置了SIMD单元用来进行最大值池化运算以及激活函数的运算,设计核心模块采用硬件描述语言实现。除去PE单元内部的主要运算模块外,输入数据模块采用串行移位寄存器实现,由PE并行读取其内部数据,该并行性在时间上达到了数据复用的效果。且由于SRAM片计算速度快,读取数据高效便捷,在设计中引入了SRAM片和寄存器组来存储中间结果,采用该方式可以减少片外DRAM的访问,从而减小功耗,且中间结果缓存数据可以重新被PE单元读入进行下一步计算,这数据调度和数据复用十分有利。通过PE单元的并行处理使得卷积运算的速度大大提高,该卷积加速器的运算核心模块的实现采用SMIC55nm工艺完成,并使用DCT工具完成了硬件描述语言到门级网表的映射,使用fm工具进行功能等价性验证。使用ICC工具完成布图布局布线,长成了H型的时钟树网络,且时钟偏差满足约束文件的设置,并对其进行静态时序分析,通过了DRCLVSERC以及天线规则检查,最终生成了卷积加速器的运算核心版图文件。