The present invention provides a system to accelerate the depth of convolutional neural network FPGA flow based on the flow acceleration system is mainly composed of the input data distribution module, output data distribution module, convolution module, calculation module, the realization of the pool convolution calculation module, pool calculation module and distribution module convolution calculation results order sequence composition serialization calculation, the flow acceleration system also includes an internal system interface cascade. According to the invention and design of water system can be accelerated, FPGA efficient parallel pipelined implementation, and effectively solves the calculation process due to various filling operation caused by the waste of resources and effective calculation problem of delay, can effectively reduce the power consumption of the system and greatly improve the processing speed of Gao Yunsuan.
【技术实现步骤摘要】
一种基于FPGA的深度卷积神经网络的流水化加速系统
本专利技术属于神经网络计算领域,具体涉及一种基于FPGA的深度卷积神经网络的流水化加速系统。
技术介绍
伴随着深度学习掀起的新的机器学习热潮,深度卷积神经网络已经广泛应用于语音识别、图像识别和自然语音处理等不同的大规模机器学习问题中,并取得了一系列突破性的研究成果,其强大的特征学习与分类能力引起了广泛的关注,具有重要的分析与研究价值。深度卷积神经网络模型具有模型深度高、层次复杂、数据量级大、并行度高、计算密集和存储密集等特征,大批量的卷积运算和池化操作往往使其在应用过程当中成为一大计算瓶颈,大量中间结果的存储也对计算机存储结构提出了较高的要求,这对于实时性较强而投入成本有限的应用场景来说是十分不利的。当下比较常用的两种加速器是CPU和GPU,CPU基于其串行执行的结构特点在计算性能上并不能较理想地满足要求,GPU虽然在计算性能上优势明显但却与CPU一样无法突破功耗壁垒,并且CPU和GPU在可扩展性上都存在较为严重的限制。考虑到诸如上述因素,FPGA基于其配置灵活、高度并行、设计灵活、低功耗和性价比高等特点成为深度卷积神经网络模型十分理想的替代加速器,但如何结合FPGA芯片特点和平台优势充分挖掘出深度卷积神经网络计算模型的并行性以及流水性,合理高效地充分利用FPGA片上的有限资源仍是有待解决的问题。
技术实现思路
本专利技术提供了一种基于FPGA的深度卷积神经网络的流水化加速系统,其目的在于同时结合深度卷积神经网络模型结构特点和FPGA芯片特点及平台优势,对传统软件层中已有实现的深度卷积神经网络计算结构进行重新 ...
【技术保护点】
一种基于FPGA的深度卷积神经网络的流水化加速系统,其特征在于,该系统包括:输入数据分配控制模块、输出数据分配控制模块、卷积计算顺序序列化实现模块、池化计算顺序序列化实现模块、卷积计算模块、池化计算模块和卷积计算结果分配控制模块,此外所述流水化加速系统还包含一个内部系统级联接口;所述输入数据分配控制模块同时与FPGA外围接口和所述内部系统级联接口、卷积计算顺序序列化实现模块相连;所述输出数据分配控制模块同时与FPGA外围接口和所述内部系统级联接口、卷积计算结果分配控制模块以及池化计算模块相连;所述卷积计算结果分配控制模块同时与所述卷积计算模块、输出数据分配控制模块以及池化计算顺序序列化实现模块相连;所述卷积计算顺序序列化实现模块与卷积计算模块之间直接相连;所述池化计算顺序序列化实现模块与池化计算模块之间直接相连;所述输入数据分配控制模块实时监视所述卷积计算顺序序列化实现模块的数据消耗状况,向DDR片外存储器发送相关读数据命令并及时接收FPGA外围接口和所述内部系统级联接口传送来的输入数据,除此之外,所述输入数据分配控制模块还需将接收到的数据传送给所述卷积计算顺序序列化实现模块;所述输出 ...
【技术特征摘要】
1.一种基于FPGA的深度卷积神经网络的流水化加速系统,其特征在于,该系统包括:输入数据分配控制模块、输出数据分配控制模块、卷积计算顺序序列化实现模块、池化计算顺序序列化实现模块、卷积计算模块、池化计算模块和卷积计算结果分配控制模块,此外所述流水化加速系统还包含一个内部系统级联接口;所述输入数据分配控制模块同时与FPGA外围接口和所述内部系统级联接口、卷积计算顺序序列化实现模块相连;所述输出数据分配控制模块同时与FPGA外围接口和所述内部系统级联接口、卷积计算结果分配控制模块以及池化计算模块相连;所述卷积计算结果分配控制模块同时与所述卷积计算模块、输出数据分配控制模块以及池化计算顺序序列化实现模块相连;所述卷积计算顺序序列化实现模块与卷积计算模块之间直接相连;所述池化计算顺序序列化实现模块与池化计算模块之间直接相连;所述输入数据分配控制模块实时监视所述卷积计算顺序序列化实现模块的数据消耗状况,向DDR片外存储器发送相关读数据命令并及时接收FPGA外围接口和所述内部系统级联接口传送来的输入数据,除此之外,所述输入数据分配控制模块还需将接收到的数据传送给所述卷积计算顺序序列化实现模块;所述输出数据分配控制模块接收所述池化计算模块或所述卷积计算结果分配控制模块传送来的输入数据,并根据当前所处的计算阶段将接收到的数据传送给所述内部系统级联接口或所述FPGA外围接口,向所述DDR片外存储器发送相关写数据命令和相关中断通知;除此之外,所述输出数据分配控制模块还实时响应所述FPGA外围接口发送的命令;所述卷积计算顺序序列化实现模块结合调整参数将深度卷积神经网络中相关卷积操作的结构化计算顺序序列化,并为所述卷积计算模块及时传送序列化后的数据集;所述池化计算顺序序列化实现模块结合相关调整参数将深度卷积神经网络中相关池化操作的结构化计算顺序序列化,并为所述池化计算模块及时传送序列化后的数据集;所述卷积计算模块完成深度卷积神经网络中的相关卷积计算,并将计算结果及时传送给所述卷积计算结果分配控制模块;所述池化计算模块主要负责完成深度卷积神经网络中的相关池化操作,并将计算结果及时传送给所述输出数据分配控制模块;所述卷积计算结果分配控制模块接收所述卷积计算模块传来的计算结果数据,并根据当前所处的计算阶段将接收到的数据有组织有规格地传送给所述池化计算顺序序列化实现模块或所述输出数据分配控制模块。所述内部系统级联接口主要负责为所述FPGA片上系统内部子系统之间的级联或内部模块之间的连接提供有效接口,用于连接所述输出数据分配控制模块和输入数据分配控制模块。2.如权利要求1所述的基于FPGA的深度卷积神经网络的流水化加速系统,其特征在于,所述卷积计算顺序序列化实现模块由特征图元组选择功能子模块和卷积核参数选择功能子模块组成。特征图元组选择功能子模块实现特征图元组选择功能,卷积核参数选择功能子模块实现卷积核参数选择功能。所述池化计算顺序序列化实现模块与所述卷积计算顺序序列化实现模块中的特征图元组选择功能子模块的组成结构和实现的功能基本类似。3.如权利要求2所述的基于FPGA的深度卷积神经网络的流水化加速系统,其特征在于,所述特征图元组选择功能子模块主要由特征图元组存储器、新旧选择器、标记参数存储器、地址参数存储器、计算窗口缓冲存储器和特征图元组计数器组成;所述特征图元组存储器采用双端口RAM实现,用于存储所述输入数据分配控制模块送入的特征图元组;所述新旧选择器维护两个地址寄存器,分别为新值地址寄存器和旧值地址寄存器,用于从所述特征图元组存储器中选择相应的特征图元组并输出给所述卷积计算模块;所述标记参数存储器用于存储有效分析序号的新旧值选取标记和窗口计算提前结束标记,所述地址参数存储器用于存储有效分析序号的旧值选取地址,对于一个给定的深度卷积神经网络模型,所述标记参数存储器和所述地址参数存储器一次写入多次循环读取;所述计算窗口缓冲存储器采用双端口RAM实现,用于缓存所述新旧选择器输出的特征图元组并将其输出给所述卷积计算模块;所述特征值图元组计数器用于统计所述新旧选择器选择输出的特征图元组个数;所述特征图元组选择功能子模块每节拍从所述输入数据分配控制模块获取一个特征图元组的KFP个特征值,这KFP个特征值组成一个输入特征值组;所述新旧选择器每次选择特征图元组进行输出时,查看当前新旧值选取标记值,若当前新旧值选取标记值为选新值标记,则从新值地址寄存器提供的起始地址处开始以特征值组为单位进行特征图元组的输出,每输出一个特征组后,新值地址寄存器自动加一,当当前选取的特征图元组输出完毕后,从所述标记参数存储器中顺序获取下一个新旧值选取标记作为当前新旧值选取标记;若当前新旧值选取标记值为选旧值标记,则将当前旧值选取地址送入旧值地址寄存器,并以此地址为起始地址以特征值组为单位进行特征图元组的输出,每输出一个特征组后,旧值地址寄存器自动加一,当当前选取的特征图元组输出完毕后,从所述标记参数存储器中顺序获取下一个新旧值选取标记作为当前新旧值选取标记,并从所述地址参数存储器中顺序获取下一个旧值选取地址作为当前旧值选取地址;每当所述新旧选择器输出完一个特征图元组后,所述特征图元组计数器自动加一,若此时所述新旧选择器选择输出的特征图元组达到一个无填充元素的计算窗口大小,所述新旧选择器将暂停输出,直至位于所述计算窗口缓冲存储器中的当前计算窗口的特征图元组重复使用((DON-1)/KGP+1)次为止;若此时所述新旧选择器选择输出的特征图元组尚未达到一个无填充元素的计算窗...
【专利技术属性】
技术研发人员:李开,邹复好,章国良,黄浩,杨帆,孙浩,
申请(专利权)人:武汉魅瞳科技有限公司,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。