论文部分内容阅读
由于散热、工艺等的限制,单个处理器核的性能已经难以大幅提升;而功耗的限制又带来暗硅问题,即芯片上不是所有的电路都可以同时运行。为了在有限的供电条件下获得更高的计算性能,微处理器体系结构逐渐朝着异构多核的趋势发展,即同时包括处理器核和加速器。神经网络加速器同时具有功耗低、性能高、面积小等优势,并具有较宽的加速应用范围,特别是结合近似计算在以识别、挖掘、综合(Recognition,Mining and Synthesis,简称RMS)为代表的新兴应用加速上取得了出众的成绩,是一款非常有应用前景的加速器。RMS这类应用已经占据了目前主要的应用市场,例如机器学习、数据挖掘、互联网搜索等;并且这类应用具有固有的差错容忍能力,因为它们具有统计或概率的计算模式,输入含有一定的噪声,其输出结果可以在一定范围内波动。神经网络加速器不但能很好地加速RMS这类新兴应用,而且它具有硬件故障容忍能力,结合RMS应用的特点,设计的神经网络加速器在功耗、面积、性能上更具优势。 之前的研究表明,神经网络加速器在重训练之后对改变电路逻辑功能的固定型故障和晶体管级故障有很好的故障容忍能力;但是这些工作没有探讨过神经网络加速器对时延故障的容忍能力。不同于逻辑功能故障,时延故障不改变硬件的逻辑功能,但是会引起时序错误,造成芯片性能降级(即不能工作在额定的时钟频率下)。由于先进工艺的发展,工艺偏差、制造缺陷、噪声问题、老化问题一般首先表现为电路中的小时延缺陷,进而引发时延故障,因此,研究时延故障对神经网络加速器的影响,探索神经网络加速器时延故障容忍方法就变得非常有意义。 本文的主要工作和贡献如下: 1、本文建立了探索神经网络加速器的时延故障容忍能力的研究平台。该平台针对一个神经网络加速器的Verilog硬件描述语言设计,并通过综合、布局布线和静态时序分析得到其精确的时延信息,使用带时延信息的电路模拟进行仿真,得到神经网络加速器计算结果的均方差(Mean SquareError,MSE)值和分类精度值。该平台支持通过修改时延信息文件在电路门级网表注入时延故障; 2、本文提出并实现了基于重训练的容忍时延故障的方法。将C语言实现的训练神经网络的后向传播算法,通过可编程逻辑接口与神经网络加速器的门级网表相连接,基于上述平台对神经网络加速器进行重训练和时延故障容忍能力分析。实验表明,随着时延偏差的增大,神经网络加速器得到的MSE值越来越大,分类精度越来越低,说明神经网络加速器被时延故障影响。进一步,通过重新训练注入时延偏差的神经网络加速器,发现它的MSE值和分类精度值都得到很大的改善,特别是在时延偏差不超过30%的情况,重训练后得到的结果基本与无故障的结果相似。此外,硬件训练花费的时间不到软件训练的百分之一,表明神经网络加速器在实际中可以在合理的时间内完成训练,验证了基于重训练的时延故障容忍方法的可行性。