李艺煌,马胜,郭阳,陈桂林,徐睿
LI Yihuang,MA Sheng,GUO Yang,CHEN Guilin,XU Rui
摘要:
卷积神经网络已经是公认最好的用于深度学习的算法,被广泛地应用于图像识别、自动翻译和广告推荐。由于神经网络结构规模的逐渐增大,使其具有大量的神经元和突触,所以,使用专用加速硬件挖掘神经网络的并行性已经成为了热门的选择。在硬件设计中,经典的平铺结构实现了很高的性能,但是平铺结构的单元利用率很低。目前,随着众多深度学习应用对硬件性能要求的逐渐提高,加速器对单元利用率也具有越来越严格的要求。为了在平铺数据流结构上获得更高的单元利用率,可以调换并行的顺序,采用并行输入特征图和输出通道的方式来提高计算的并行性。但是,随着神经网络运算对硬件性能要求的提高,运算单元阵列必然会越来越大。当阵列大小增加到一定程度,相对单一的并行方式会使利用率逐渐下降。这就需要硬件可以开发更多的神经网络并行度,从而抑制单元空转。同时,为了适应不同的网络结构,要求硬件阵列对神经网络的运算是可配置的。但是,可配置硬件会极大地增加硬件开销和数据的调度难度。提出了一种基于平铺结构加速器的并行度可配置的神经网络加速器。为了减少硬件复杂度,提出了部分配置的技术,既能满足大型单元阵列下单元利用率的提升,也能尽可能地减少硬件额外开销。在阵列大小超过512之后,硬件单元利用率平均可以维持在82%~90%。同时加速器性能与单元阵列数量基本成线性比例上升。