论文部分内容阅读
得益于神经网络算法研究的进步,神经网络在许多场景下的精度表现优异,被广泛应用在图像识别、语音识别、自然语言理解、广告推荐乃至计算机围棋中。神经网络本身具有数据密集和计算密集的特性,传统的处理平台上如通用CPU/GPU上难以高效处理神经网络。因此本文对新型的专用神经网络加速器结构进行了探索。具体主要包括以下三方面的贡献: 神经网络算法硬件化的比较:目前,神经网络加速器研究者所关注的神经网络算法来自两个截然不同的领域:机器学习领域和神经生物学。这两类神经网络算法具有极其不一样的特性,哪类神经网络算法更加适合实现成为硬件加速器也是一个存在争议的问题。我们首次从硬件角度系统地比较了这两类神经网络算法的研究,实现了两类神经网络算法的硬件逻辑设计,并完成后端布局布线工作,在此基础上比较这两类方法的硬件相关参数,如能耗、速度、面积开销、精度和功能性。我们的研究结果表明:在同样的精度需求下,神经生物学启发的神经网络(如SNN+STDP)的面积开销显著大于机器学习启发的神经网络(如MLP+BP)。另外,我们也发现,对于非常大规模的神经网络和对于精度要求不高的应用,SNN+STDP相较于MLP+BP的硬件开销更小。 CNN加速器:传统认为神经网络加速器的能效和性能受到内存访问的限制。为规避此限制,我们专门针对图像识别领域中处在领先地位的算法卷积神经网络(Convolutional Neural Networks,CNN)设计了一款加速器,名为ShiDianNao。卷积神经网络具有一个重要的性质:突触连接的权值被多个神经元共享,这大大的减少了神经网络的权值数量,从而大大的降低了卷积神经网络的内存占用。这使得片上SRAM能够容纳下整个CNN,从而消除掉所有对权重的SRAM访问。进一步,将ShiDianNao放置在图像传感器的旁边,也即能够消除剩余的所有由输入图像引起的内存访问。在65nm工艺下,我们完成单核设计直至后端进行评估,得到ShiDianNao的面积为5.94mm2,功耗为336mW,比高端GPU(Nvidia K20M)快约30倍。对于实时处理具有更高的分辨率和帧率的视频流,我们进一步提出了多核ShiDianNao(ShiDianNao+)来提升性能。 非精确神经网络加速器:对于许多能够容忍一定结果误差的应用程序来说,非精确计算(inexact computing)被认为是降低能耗最有效的手段之一。但过去的研究中,非精确加速器应用范围狭窄且对不精确度的耐受性往往是固定的,缺乏灵活性。为应对此问题,我们提出将非精确计算与硬件神经网络相结合,从而设计出非精确神经网络加速器,从而扩大应用范围,提高错误恢复能力和资源节约的规模。得益于我们的重训练方法,我们的非精确神经网络加速器相比于精确的神经网络加速器,可以实现42.82%-62.55%的能源消耗节约(延时和面积分别节省18.70%和31.51%),同时精度损失的代价则很小(均方误差MSE平均从0.14增加到0.20)。