EDA领域的神经网络研究热点

阅读量:491
王超,孙凡,李曦

引言

随着神经网络技术研究的迅速深入,其应用方向不断扩张,在计算机系统结构与专用硬件领域涌现出一批针对各类神经网络进行芯片设计和优化的优秀研究工作(如中科院计算所的DianNao系列论文等),同时带动了电子设计自动化(EDA)技术研究的相应发展。本文对2016EDA领域的三大国际会议(DATEDACICCAD)以及DATE 2017上的相关论文进行了总结,展示了当前EDA领域神经网络研究的新热点和新趋势。

EDA领域的神经网络关注的技术

神经网络是计算密集型和存储密集型的应用。在设计神经网络芯片和专用加速器时,需要综合考虑性能、功耗、面积等多种因素。在2016EDA领域三大会议上收录的论文大都从这些关键问题出发,分别从计算性能优化、访存优化、降低功耗/面积以及编程框架等方面展开研究。

计算性能优化

在使用硬件加速器处理卷积神经网络(CNN)的卷积层操作时,通常存在两种粒度的数据级并行:inter-kernelintra-kernel。前者挖掘的是CNN层间处理的并行性,在处理特征图片较多的卷积层时性能较好,但数据重用率较低;后者是挖掘同层处理的并行性,数据重用度较高,适用于处理特征图片较少的卷积层,但由于不同网络的卷积层参数变化较大,导致数据映射和数据流设计较为繁琐。为了降低设计难度,论文C-Brain[1]提出了一种通过自身数据级并行调整,来处理多种卷积神经网络的深度学习加速器的方法,可以根据卷积层的不同参数来选择合适的方案实现卷积层操作的并行处理。

此外,神经网络不同层的计算模式会有一定差别,例如Caffeine[2]通过分析得出神经网络的卷积层是计算密集型,而全连接层则属于访存密集型。在现场可编程门阵列(FPGA)上对CNN/DNN进行加速时,不能只考虑卷积层的加速,否则全连接层的操作会成为系统新的瓶颈。在此基础上,Caffeine分析研究了适用于卷积层和全连接层的神经网络的统一表示方法,以此来减少中间数据的规模;它还设计了一个软硬件协同计算引擎,并对加速器的带宽进行了优化。

访存优化

如何降低神经网络计算中的存储带宽也是目前的研究热点之一。例如在手机等嵌入式设备上部署神经网络加速器时,由于功耗和面积等因素的制约,片上存储容量十分有限。为避免频繁片外访存,需要对网络权值进行压缩,而传统的基于稀疏矩阵的压缩方法造成的随机访存以及在线的编码、解码过程会使访存的吞吐量受限。从访存优化的角度,论文[3]提出了将奇异值分解和剪枝两种技术相结合的方法,在保存模型结构的同时实现了压缩,能够进一步减少模型参数。论文[4]使用“k-means & base-delta”方法对权值数据进行离线编码,大幅度降低了权值数据的存储容量,使在手机等小型嵌入式设备上部署大规模CNN成为可能。论文[5]提出了一种近似乘法器,利用计算单元共享,探索神经网络应用的容错范围和精度损失等参数,来进一步实现访存优化。

降低功耗/面积

功耗和面积是衡量神经网络加速器的重要指标。硬件加速器与图形处理器(GPU)相比,其核心优势主要体现在低功耗和高效能上。从功耗优化的角度来看,论文[6]针对基于阻变式存储器(RRAM)CNN提出了一种高能效的硬件结构,该结构通过减少模数转换单元,将中间数据用1位来表示,从而将模拟量转换成开关量,以此来降低硬件资源的面积和功耗。论文[7]MIT(Metal-Insulator-Transition)作为压缩振荡神经元(Compact Oscillation Neuron)的基础器件,与复杂的IF神经元(Integrate-and-Fire Neuron)相比,振荡神经元可以大幅减少面积,因此缓解了外围电路的列间距匹配问题,从而达到降低功耗的目的。此外,由于在人工神经网络(ANN)中突触的数量远远多于神经元的数量,而突触的读写操作也是功耗的重要来源,所以论文[8]从数字电路的角度通过降低电压来提高突触存储的能效。由于传统的6T SRAM内存随电压降低表现出的不稳定性,容易导致计算准确度降低,为此该文采用稳定的8T SRAM代替部分6T SRAM,将对计算较重要的数据高位存储在8T SRAM中,在保证计算准确度的基础上进一步降低电压,达到提高能效的目的。

编程框架

加速器结构的异构性给软件编程带来了严峻的挑战,特别是基于FPGA的硬件加速器设计过程复杂,上层应用开发者可能对底层神经网络结构缺乏了解,导致加速器设计难度和编程难度较大。为简化设计过程,DeepBurning[9]提供了一套基于FPGA的神经网络加速器开发框架(如图1所示)。通过分析常见神经网络的拓扑结构,作者总结归纳出了一系列常用组件(如内积单元、累加单元、池化单元等),通过RTL级描述后形成一套组件库。用户只需提供网络拓扑的上层描述和硬件资源约束,框架中的神经网络集成器即可自动分析网络特征,结合硬件约束在组件库中选出合适的组件搭建硬件网络,以及给出对应的控制流、数据流和数据布局方案。从编程框架的角度,Caffeine分析并研究了适用于卷积层和全连接层的神经网络的统一表示方法(如图2所示),设计了一个软硬件协同计算引擎,并将它与Caffe结合起来,相比于传统的CPUGPU,有着可观的性能和能效的提升。

登录后继续浏览全部内容
读完这篇文章后,您心情如何?

作者介绍

王超

  • CCF高级会员,CCF体系结构专委会委员
  • 中国科学技术大学副教授
  • 研究方向:计算机系统结构与FPGA加速系统
  • cswang@ustc.edu.cn

孙凡

李曦

  • CCF高级会员
  • 中国科学技术大学高级工程师
  • 研究方向:操作系统
  • llxx@ustc.edu.cn