[发明专利]一种面向深度神经网络的双FPGA协同工作方法在审
申请号: | 201711306456.0 | 申请日: | 2017-12-07 |
公开(公告)号: | CN108228969A | 公开(公告)日: | 2018-06-29 |
发明(设计)人: | 程陶然;白林亭;文鹏程;郭锋;李亚晖;刘作龙 | 申请(专利权)人: | 中国航空工业集团公司西安航空计算技术研究所 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 中国航空专利中心 11008 | 代理人: | 杜永保 |
地址: | 710000 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 神经网络 协同 并行 嵌入式计算环境 神经网络模型 硬件资源 智能计算 有效地 网络 分析 | ||
本发明属于机载智能计算领域,提出了一种面向深度神经网络的双FPGA协同工作方法。通过对深度神经网络模型进行分析,根据深度神经网络由多个子层构成这一特征,划分计算任务,实现双FPGA芯片协同工作;划分计算任务的方法包括串行划分、并行划分两种。能够有效地突破硬件资源的限制,以空间换时间,大幅度提升神经网络在嵌入式计算环境中的并行程度,进而提升网络的计算速度。类似的,可以更进一步的扩展到多FPGA协同工作方法,实现更大规模的神经网络。
技术领域
本发明属于机载智能计算领域,提出了一种面向深度神经网络的双FPGA协同工作方法。
背景技术
深度神经网络在多个领域的智能计算任务中展现出了越来越好的应用效果,在航空领域同样具有极好的应用前景。然而当前性能优秀的深度神经网络规模都十分庞大,运行在工作站、巨型机乃至计算机集群之上,例如最早的谷歌大脑使用1000台16核的CPU训练深度神经网络认识猫,去年战胜了世界冠军的AlphaGo使用了1920颗CPU和280颗GPU,因此很难在硬件资源有限的嵌入式环境中实现深度神经网络。目前一种解决方案是基于FPGA丰富的可编程逻辑和布线资源进行实现,但是即便当前FPGA的计算资源可以达到数百万个逻辑单元,仍然不能完全满足深度神经网络的计算需求,在进行实现时不得不牺牲算法的并行性,通过复用计算模块来完成整体功能,导致计算时间大幅度上升。在机载嵌入式环境中,对算法的实时性有着极高的要求,尤其是在数据规模不断增长的今天,要想在航空领域应用基于深度神经网络的智能计算技术,就必须提升其计算速度。
发明内容
本发明的目的:
本发明提出了一种面向深度神经网络的双FPGA协同工作方法,通过评估深度神经网络各计算单元的计算复杂度,对网络模型进行划分,实现双FPGA芯片协同工作,以解决单一FPGA芯片硬件资源有限的问题,更好地发挥深度神经网络的并行计算特性,提升计算速度,从而更好地应用于高实时性要求的机载嵌入式环境。
本发明的技术方案:
本发明提出的双FPGA协同工作方法通过对深度神经网络模型进行分析,根据深度神经网络由多个子层构成这一特征,划分计算任务,实现双FPGA芯片协同工作。
所述划分计算任务的方法包括串行划分、并行划分两种。
所述串行划分方法:通过评估神经网络各子层的计算复杂度,依据网络对计算资源的需求,将其划分为前后两部分,均衡两部分的计算量;其中,前部分包括子层1到子层i的计算,由第一个FPGA芯片完成,子层i的计算结果将传入第二个FPGA芯片;后部分包括子层i+1到子层N及最后分类层的计算,由第二个FPGA芯片完成,并输出最终计算结果。
该划分方法中,数据通信过程主要是将第一个FPGA芯片的计算结果传递到第二个FPGA芯片;对于单帧输入图像,只有一次集中的数据传输,两个FPGA几乎不会同时工作;但是在视频流的处理过程中,数据连续输入,第一个芯片可以在第二个芯片工作的同时处理新的图像信息,从而将整体的处理速度提升了接近一倍。
所述并行划分方法:从第一子层开始,将神经网络的每一层都划分成两部分,分别布置在两个FPGA芯片上,原始图像同时传入两个芯片开始并行计算;在子层i-1(1<i<N)计算完成后,根据需要交换中间计算结果,继续并行执行子层i的计算;最后考虑到分类层数据关联度较大,不进行划分,在一个FPGA芯片内完成计算,并输出最终结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航空工业集团公司西安航空计算技术研究所,未经中国航空工业集团公司西安航空计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711306456.0/2.html,转载请声明来源钻瓜专利网。