论文部分内容阅读
近些年来,卷积神经网络已经成为机器学习领域最为流行的模型之一,在图像分类、目标检测、语义分割等各个领域都得到广泛应用并取得突破性进展。基于卷积神经网络的人工智能应用,分为训练和推理两个阶段的任务,两个任务都是计算密集型的,目前主要在高性能处理器或集群上运行,如服务器CPU和GPU。然而,过高的功耗不仅增加了数据中心的运营成本,还限制了人工智能应用在嵌入式设备、边缘计算设备等低功耗应用场景下的部署。因此,具有高能效比的卷积神经网络加速器设计成为新的研究热点。FPGA(现场可编程门阵列)具有高性能、高能效比、高灵活性等特点,非常适合作为加速器设计平台。本文针对基于FPGA平台的卷积神经网络加速器设计中的关键技术展开研究,包括不同的任务、不同的实现算法、不同的应用场景、不同的设计和实现方法。面向卷积神经网络的推理任务,本文第二章研究了基于常规空间卷积的加速器设计,深入分析了执行推理任务时每一层的计算特点和访存特点,并提出了加速器设计的并行框架,可以在任务级、层级、循环级和操作级四个层次上挖掘算法的并行性。执行网络模型推理任务时,针对不同的网络模型需要定制不同的加速器。我们提出了设计空间搜索算法,可以根据网络模型的结构参数和目标平台的资源约束情况,找出最优的加速器设计参数。随着网络模型变得越来越深,中间结果数据量持续增加,单个芯片的片上存储容量不足以支撑多个推理任务的部署,甚至不足以支撑单个推理任务的层间流水展开。此时,任务级和层级的并行性将会相继消失。为了更好的挖掘循环级和操作级并行性,本文第三章中研究了基于通用矩阵乘法的加速器设计,设计了高效的特征矩阵映射模块,消除了将输入特征图像转为特征矩阵时的数据膨胀,并采用二维乘累加阵列高效的执行矩阵乘法。该加速器还设置了以基本功能层为单位的宏指令集,可以支持对不同网络模型的推理任务进行加速。结合智能边缘计算端设备对低功耗、低成本的需求,同时兼顾性能和通用性,本文第四章中以典型的人脸检测与识别应用为例分析了边缘计算端人工智能应用的特点,提出了RISC-V处理器、卷积神经网络加速器和专用加速模块协同的异构处理器结构。卷积神经网络加速器沿用了第三章中的设计,结合边缘计算需求添加了芯片面积约束和访存带宽约束,同时丰富了宏指令集以支持更多的网络模型,并开发了自动化工具链方便开发者在边缘计算端快速部署基于卷积神经网络的人工智能应用。面向卷积神经网络的训练任务,本文第五章中研究了基于常规空间卷积的加速器设计,深入分析了训练任务在反向传播过程中每一层的计算模式,结合前向传播过程中各层的计算模式,设计了一致的计算引擎,并通过循环展开的方式挖掘算法并行性。此外,还设计了以层为单位的宏指令集,每一层在前向过程中的计算和在反向过程中不同梯度的计算都有对应的指令表示,支持以宏指令序列的方式执行不同网络模型的训练任务。