论文部分内容阅读
深度神经网络在计算机视觉和语音识别领域取了巨大成就,同时也激发起了新一轮研究深度学习算法及深度学习加速硬件的热潮,尤其是基于深度学习的各种神经网络专用处理器(加速芯片)应运而生。深度学习应用兼具计算密集和访存密集的特点,设计神经网络加速芯片的关键在于平衡计算和访存。然而,计算机芯片系统中的计算单元数增长速度比芯片的片外存储器带宽(或引脚数)快得多,存储器带宽瓶颈给神经网络加速芯片的设计带来了极大的挑战。随着大数据时代的到来,数据规模急剧增加,神经网络规模也越来越大,神经网络加速芯片访存所造成的瓶颈问题也愈发严重。另外,神经网络模型超参数(卷积核大小、网络分组方式等)的多样性也对通用神经网络加速芯片的访存效率提出了新的挑战。尽管当前最先进的神经网络加速芯片已经实现了较高的吞吐率,但是其性能很不稳定,通用性较差,一旦应用到一个拥有不同超参数的新网络,其固定的硬件结构和新的数据流不再吻合,导致较低的带宽利用率,极大的降低了神经网络加速芯片的能效比。综上,如果上述数据访问带宽问题得不到有效的优化,必将极大地增加神经网络加速芯片及其在嵌入式或数据中心的应用成本。 本论文研究神经网络加速芯片的数据访问带宽优化技术,以实现在不损失神经网络算法精度的前提下,减少数据访问,最大化神经网络加速芯片的能效比。为了实现这一目标,本文从三个方面开展研究:优化片外存储和片上缓存之间的数据访问;优化片上缓存和神经计算单元之间的数据交互;实现嵌入式低功耗环境下的多类神经网络联合带宽优化。论文的主要工作和研究成果包括: 1,片外带宽优化技术——基于新型存储器STT-RAM设计了一种容量和精度可调的神经网络加速芯片存储系统,极大的降低了片外访存。片上存储系统是很多加速芯片的一个性能瓶颈,尤其是片外存储到片上缓存之间的长距离访存,严重降低了处理器芯片的能效比。针对这一问题,本文首先利用神经网络应用的天然容错性,将最新的多级STT-RAM应用于神经网络加速芯片,获得超高存储密度。其次,提出一种容量动态可调的存储方案,可以根据不同神经网络模型的特点动态适配缓存容量,最优化能效比。最后,提出一种精度可配置的数据映射方案,根据近似计算应用的不同精度限制,在多种位宽模式之间切换,最大化存储效率。实验结果表明,相对于基于SRAM的传统存储系统,能效比提高了5.47-18.64倍。 2,片上带宽优化技术——提出了一套适配众多卷积神经网络超参数的数据并行化方案,极大的优化了片上访存。现有神经网络加速芯片的并行方案不能适配拥有众多超参数的神经网络模型,导致片上带宽利用率低下。本文首先剖析了现有并行方案导致的数据带宽浪费问题,提出了一种卷积核切分的数据并行方法,有效提高了大卷积核神经网络层的有效片上访存比例。其次,针对小卷积核神经网络层,优化三维卷积窗口计算模式,极大的减少了权重存取。最后,提出一种自适应方案,可以针对不同神经网络以及单个神经网络中的不同网络层,自动适配最优的数据并行方式。经实验验证,单层性能提高5.8倍,整体系统性能提高1.43倍,减少93.8%的片上存储访问。 3,面向多类神经网络算法的带宽优化技术——结合具体应用融合多种类型神经网络,并在嵌入式低功耗环境下进行超低比特带宽优化。在实际应用场景中通常需要多类神经网络相互配合,然而现有神经网络加速芯片不能同时较好的支持不同类型的神经网络,导致其能效比不高。为了优化本问题,在前文工作的基础上,修改神经计算部件结构,增加分组计算模式并设计了相应的数据映射和调度方案,在有效加速CNN和DNN的同时,实现了对RNN的支持。经实验验证,性能提升2.45倍,功耗减少67.37%。另外,针对嵌入式环境下的低功耗需求,进行超低比特优化,在基本不损失精度的情况下,将数据由16bit定点优化至4bit定点,从根本上减少了75%的片上存储和带宽访问需求。