A convolution neural network acceleration system based on field programmable gate array is disclosed. The acceleration system comprises a general purpose processor, a field programmable gate array, a storage module, a data bus and a control bus, wherein a general purpose processor is a soft core with a reduced instruction set, which is responsible for starting the accelerator, and a control bus. Host-side communication and time measurement; DDR3 DRAM as the external memory of the accelerator system; AXI4_Lite bus for command transmission; AXI4 bus for data transmission; Field Programmable Gate Array contains multiple processing engines (PE), each of which uses the most appropriate piecewise deployment strategy. It corresponds to the computation of one layer in the convolutional neural network; all processing engines are mapped to the same FPGA chip, so that different layers can work simultaneously in a pipelined manner. Compared with the existing convolution neural network acceleration system, the invention can achieve higher energy efficiency gains.
【技术实现步骤摘要】
基于现场可编程门阵列的卷积神经网络加速系统
本专利技术涉及一种算法的硬件加速平台,具体涉及一种通用性好和灵活性高的基于现场可编程门阵列的卷积神经网络加速系统及其设计方法。
技术介绍
卷积神经网络(CNN)隶属于人工神经网络,是一种前馈的深度神经网络,已经得到了广泛的应用,如字符识别,图片分类和自然语言理解。由于卷积神经网络的特定计算方法,因此在通用处理器(CPU)上效率并不高,并且很难达到很高的性能。在实践中,图形处理器(GPU)被广泛应用于卷积神经网络的训练和分类任务中,然而,它受限于较低的能效收益。除了GPU被应用于卷积神经网络加速以外,基于专用集成电路(ASCI)和现场可编程门阵列(FPGA)的卷积神经网络加速器也被提出。综合比较这些平台(CPU,GPU,ASIC和FPGA),基于FPGA的加速器因为具有可重构性高,开发周期短和高能效等优点,越来越受欢迎。但是,使用FPGA来加速卷积神经网络仍然存在很多挑战。众所周知,FPGA平台主要受限于有限的计算资源和昂贵的片外内存访问。然而,在最先进的卷积神经网络模型中,存在大量的计算操作(>1G)和大量的参数(>50M),这将需要消耗大量的能量。并且,卷积层参数的高可变特性也损害了硬件资源的充分利用。随着技术的发展,为了达到更高的精度,卷积神经网络模型会变得越来越大,越来越复杂,这将加剧这种情况。因此,需要设计一个高能效的CNN加速器。在使用CNN模型进行推断之前,需要对CNN模型进行训练。对CNN的训练一般都采用离线的方式将模型预先训练好,然后利用训练好的模型做实时的推断处理。由 ...
【技术保护点】
1.基于现场可编程门阵列的卷积神经网络加速系统,其特征在于,包括:通用处理器,与现场可编程门阵列进行通信;存储模块,用于通用处理器与现场可编程门阵列的数据交互;现场可编程门阵列,用于加速卷积神经网络的计算过程;还包括统一的编程接口,供用户调用所述加速系统完成相应的任务;整个加速系统的执行过程分为以下几步:S1:通用处理器端通过提供的编程接口选择合适的加速器,并把计算过程中需要使用的输入数据和权值数据写入存储器中;S2:现场可编程门阵列中的加速器从存储器中读取输入数据和权值数据并开始计算,并把最后的计算结果写入存储器中;S3:通用处理器从存储器中读取计算完成以后的结果输出到屏幕。
【技术特征摘要】
1.基于现场可编程门阵列的卷积神经网络加速系统,其特征在于,包括:通用处理器,与现场可编程门阵列进行通信;存储模块,用于通用处理器与现场可编程门阵列的数据交互;现场可编程门阵列,用于加速卷积神经网络的计算过程;还包括统一的编程接口,供用户调用所述加速系统完成相应的任务;整个加速系统的执行过程分为以下几步:S1:通用处理器端通过提供的编程接口选择合适的加速器,并把计算过程中需要使用的输入数据和权值数据写入存储器中;S2:现场可编程门阵列中的加速器从存储器中读取输入数据和权值数据并开始计算,并把最后的计算结果写入存储器中;S3:通用处理器从存储器中读取计算完成以后的结果输出到屏幕。2.根据权利要求1所述的基于现场可编程门阵列的卷积神经网络加速系统,其特征在于,所述现场可编程门阵列中,包括多个处理引擎(PE),每一个处理引擎都使用了一种分片展开策略来与卷积神经网络中一层的计算对应;所有的处理引擎都映射到同一个FPGA芯片上,这样不同的层能够以流水线的方式同时工作。3.根据权利要求2所述的基于现场可编程门阵列的卷积神经网络加速系统,其特征在于,所述处理引擎包括卷积层处理引擎、池化层处理引擎和全连接层处理引擎。4.根据权利要求3所述的基于现场可编程门阵列的卷积神经网络加速系统,其特征在于,所述卷积层处理引擎,在卷积层的计算中,使用了循环分片和循环展开,所述循环分片是将较大的循环空间划分成为几个较小的循环空间,循环展开是把循环内的程序段重复多次完成,在没有数据依赖的循环体中能够实现并行计算。5.根据权利要求4所述的基于现场可编程门阵列的卷积神经网络加速系统,其特征在于,所述卷积层处理引擎中,使用了双缓冲机制来预取下一次执行计算所需要的数据;卷积层处理引擎的执行过程分为以下几步:S01:将输入数据读取到处理引擎的输入缓冲区中,将权值数据读取到处理引擎的权值缓冲区中;S02:处理引擎执行并行的乘法计算,并行的乘法计算后跟着一个加法树的结构完成累加计算;S03:将完成累加计算后的结果写入处理引擎的输出缓冲区中,如果当前层不是卷积神经网络中的...
【专利技术属性】
技术研发人员:李曦,周学海,王超,孙凡,万波,
申请(专利权)人:中国科学技术大学苏州研究院,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。