基于FPGA的多卷积神经网络任务实时切换方法
发布时间:2020-12-23 17:58
使用硬件平台实现卷积神经网络的计算可以获得良好的加速效果和功耗,但由于卷积神经网络模型庞大、计算复杂、硬件平台资源有限,在实际应用中多个卷积神经网络任务之间只能串行计算,这导致系统在处理多个任务时的实时性较差.为提升硬件系统的实时性,提出一种多卷积神经网络任务实时切换方法 .基于FPGA(Field Programmable Gate Array)平台进行卷积神经网络部署,根据功能划分系统模块.采用"任务序列+控制模块"的设计结构,控制系统根据卷积神经网络任务的优先级进行计算和切换;在计算模块中,复用可配置的卷积单元减少资源开销;提出一种多任务层级切换机制以提升系统的实时性.利用手写数字识别网络进行验证,实验结果表明:可配置的设计减少了除BRAM(Block Random Access Memory)外50%以上的资源开销;在50 MHz的工作频率下,FPGA的识别速度是CPU(Central Processing Unit)的4. 51倍,功耗比为CPU的2. 84倍;采用实时切换机制最快可使最高优先级任务提前57. 26 ms被响应,提升了串行计算系统的实时性.
【文章来源】:南京大学学报(自然科学). 2020年02期 北大核心
【文章页数】:8 页
【部分图文】:
手写数字识别网络结构
根据研究的内容和卷积神经网络的计算特点,本文设计的总体架构如图2所示,共包含CPU、任务序列、控制模块、计算模块、片上存储[16]以及片外存储六个模块,其中APB(Advanced Peripheral Bus)与AXI(Advanced eXtensible Interface)为总线协议.由于FPGA的存储空间有限,卷积神经网络的权值参数和隐藏层的计算结果均存放在片外存储DDR(Double Data Rate)中.当有任务请求时,CPU会将待识别的图像任务存储到片外存储DDR中,并在任务序列中添加一个任务;控制模块在检测到任务序列中有待执行的任务后,开始配置计算模块,并从片外存储中读取输入图像,进行卷积神经网络的推理,计算和数据读写操作由控制模块发起和控制.通常在设计中CPU会参与卷积神经网络计算的整个过程,包括计算数据的读取与存储、计算控制等,是控制的核心.而在本文设计中的CPU仅用于输入图像的存储和任务序列的配置,其余工作由硬件实现的控制模块完成.在卷积神经网络的推理计算过程中,硬件控制的引入使得CPU可以处于空闲状态或者执行其他操作.
任务序列用来存储待计算的卷积神经网络任务的相关信息.每个卷积神经网络任务在任务序列中都对应一组寄存器,如图3所示,主要存储卷积神经网络任务的优先级、配置计算模块所需的网络参数、输入存储地址和输出存储地址等信息.其中任务优先级是系统进行任务切换的判断依据,网络结构信息包含了输入特征图通道数、输入特征图尺寸、卷积核或采样核数量、卷积核或采样核尺寸、步长等内容.控制模块主要负责配置计算模块、片外存储的读写、各模块间的状态交互以及任务间的切换.系统遵循高优先级任务先计算的原则,在计算过程中控制模块会检查任务序列中其他待计算任务的优先级,若优先级高于当前计算的任务,则保存当前任务的计算结果,切换计算优先级更高的任务.图4为任务切换流程图,当计算任务发生切换时,控制模块需根据任务序列中的任务信息重新配置计算模块.
【参考文献】:
期刊论文
[1]深度学习FPGA加速器的进展与趋势[J]. 吴艳霞,梁楷,刘颖,崔慧敏. 计算机学报. 2019(11)
[2]一种基于FPGA的卷积神经网络加速器的设计与实现[J]. 张榜,来金梅. 复旦学报(自然科学版). 2018(02)
本文编号:2934113
【文章来源】:南京大学学报(自然科学). 2020年02期 北大核心
【文章页数】:8 页
【部分图文】:
手写数字识别网络结构
根据研究的内容和卷积神经网络的计算特点,本文设计的总体架构如图2所示,共包含CPU、任务序列、控制模块、计算模块、片上存储[16]以及片外存储六个模块,其中APB(Advanced Peripheral Bus)与AXI(Advanced eXtensible Interface)为总线协议.由于FPGA的存储空间有限,卷积神经网络的权值参数和隐藏层的计算结果均存放在片外存储DDR(Double Data Rate)中.当有任务请求时,CPU会将待识别的图像任务存储到片外存储DDR中,并在任务序列中添加一个任务;控制模块在检测到任务序列中有待执行的任务后,开始配置计算模块,并从片外存储中读取输入图像,进行卷积神经网络的推理,计算和数据读写操作由控制模块发起和控制.通常在设计中CPU会参与卷积神经网络计算的整个过程,包括计算数据的读取与存储、计算控制等,是控制的核心.而在本文设计中的CPU仅用于输入图像的存储和任务序列的配置,其余工作由硬件实现的控制模块完成.在卷积神经网络的推理计算过程中,硬件控制的引入使得CPU可以处于空闲状态或者执行其他操作.
任务序列用来存储待计算的卷积神经网络任务的相关信息.每个卷积神经网络任务在任务序列中都对应一组寄存器,如图3所示,主要存储卷积神经网络任务的优先级、配置计算模块所需的网络参数、输入存储地址和输出存储地址等信息.其中任务优先级是系统进行任务切换的判断依据,网络结构信息包含了输入特征图通道数、输入特征图尺寸、卷积核或采样核数量、卷积核或采样核尺寸、步长等内容.控制模块主要负责配置计算模块、片外存储的读写、各模块间的状态交互以及任务间的切换.系统遵循高优先级任务先计算的原则,在计算过程中控制模块会检查任务序列中其他待计算任务的优先级,若优先级高于当前计算的任务,则保存当前任务的计算结果,切换计算优先级更高的任务.图4为任务切换流程图,当计算任务发生切换时,控制模块需根据任务序列中的任务信息重新配置计算模块.
【参考文献】:
期刊论文
[1]深度学习FPGA加速器的进展与趋势[J]. 吴艳霞,梁楷,刘颖,崔慧敏. 计算机学报. 2019(11)
[2]一种基于FPGA的卷积神经网络加速器的设计与实现[J]. 张榜,来金梅. 复旦学报(自然科学版). 2018(02)
本文编号:2934113
本文链接:https://www.wllwen.com/kejilunwen/dianzigongchenglunwen/2934113.html