CN108228969A - 一种面向深度神经网络的双fpga协同工作方法 - Google Patents
一种面向深度神经网络的双fpga协同工作方法 Download PDFInfo
- Publication number
- CN108228969A CN108228969A CN201711306456.0A CN201711306456A CN108228969A CN 108228969 A CN108228969 A CN 108228969A CN 201711306456 A CN201711306456 A CN 201711306456A CN 108228969 A CN108228969 A CN 108228969A
- Authority
- CN
- China
- Prior art keywords
- neural network
- fpga
- deep neural
- sublayer
- calculating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Analysis (AREA)
Abstract
本发明属于机载智能计算领域,提出了一种面向深度神经网络的双FPGA协同工作方法。通过对深度神经网络模型进行分析,根据深度神经网络由多个子层构成这一特征,划分计算任务,实现双FPGA芯片协同工作;划分计算任务的方法包括串行划分、并行划分两种。能够有效地突破硬件资源的限制,以空间换时间,大幅度提升神经网络在嵌入式计算环境中的并行程度,进而提升网络的计算速度。类似的,可以更进一步的扩展到多FPGA协同工作方法,实现更大规模的神经网络。
Description
技术领域
本发明属于机载智能计算领域,提出了一种面向深度神经网络的双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芯片内完成计算,并输出最终结果。
对于单个子层而言,两个FPGA同时计算,处理速度提升一倍;但是在子层计算完之后,大多需要进行数据交换,使两个FPGA芯片共享当前子层的计算结果,用于下一子层的计算,这一过程对数据通信技术的要求比较高;另外根据模型不同,子层之间并不是全互连关系,应当通过合理分布计算单元,减少数据交换量。考虑到最后的分类层数据关联度较大,最好在同一芯片内实现,因此前面若干子层在进行计算任务划分时,可以不完全均等,使得两个芯片的整体计算量基本持平。该划分方法可以很好的满足单幅图像处理过程对速度提升的需求。
不管是串行划分方法还是并行划分方法,两个FPGA芯片之间的通信过程都是一个重要环节,本发明中使用吉比特串行收发器(GTX)进行实现,通信协议可以使用PCI-E、RapidIO等标准协议,也可以使用自定义通信协议,根据网络需求设定传输速率,以便于更好的匹配神经网络计算的数据格式和交换需求。此外,当网络规模进一步扩大时,可以使用类似的方法扩展到三片、甚至四片FPGA芯片协同工作。
本发明具有的优点效果:
本发明提出的双FPGA协同工作方法能够有效地突破硬件资源的限制,以空间换时间,大幅度提升神经网络在嵌入式计算环境中的并行程度,进而提升网络的计算速度。类似的,可以更进一步的扩展到多FPGA协同工作方法,实现更大规模的神经网络。
附图说明
图1为深度神经网络示意图;
图2为串行划分方法示意图;
图3为并行划分方法示意图。
具体实施方式
对本发明做进一步详细说明。
本发明在具体实施时,主要考虑神经网络模型对硬件资源和数据交互的需求,相较于单个FPGA而言,可以在不进行动态重配置的情况下,支持更大规模的神经网络的并行计算。以LeNet5为例,该网络包含输入层、卷积层C1、降采样层P1、卷积层C2、降采样层P2、全连接层F1、全连接层F2、输出层。
串行划分方法:根据网络的计算量,在第一个芯片上实现卷积层C1和降采样层P1,在第二个芯片上实现卷积层C2、降采样层P2和两个全连接层,第二芯片上实现的网络层数较多,但是全连接层的计算量相对卷积层要少很多,整体计算量差别不大。
并行划分方法:LeNet5中,C1层6个特征图,C2层16个特征图,因此在该划分方法中,在第一个芯片实现C1层2个特征图、C2层7个特征图和两个全连接层的计算,在第二个芯片中实现C1层4个特征图、C2层10个特征图的计算,从而使得两个芯片的整体计算量基本持平。
本发明不局限于双FPGA协同工作,可以更进一步的扩展为三片甚至四片FPGA的协同工作,划分方法与双FPGA情况下基本相同。在串行划分方法中,按照计算量的大小,将网络分成三个(四个)部分,由三片(四片)FPGA依次完成相应计算;在并行划分方法中,将每个子层划分成三个(四个)部分,由三片(四片)FPGA并行完成各子层计算。
Claims (5)
1.一种面向深度神经网络的双FPGA协同工作方法,该方法通过对深度神经网络模型进行分析,根据深度神经网络由多个子层构成这一特征,划分计算任务,实现双FPGA芯片协同工作;其特征在于:所述划分计算任务的方法包括串行划分、并行划分两种。
2.根据权利要求1所述一种面向深度神经网络的双FPGA协同工作方法,其特征在于:所述串行划分方法:通过评估神经网络各子层的计算复杂度,依据网络对计算资源的需求,将其划分为前后两部分,均衡两部分的计算量;其中,前部分包括子层1到子层i的计算,由第一个FPGA芯片完成,子层i的计算结果传入第二个FPGA芯片,完成芯片间的数据传输;后部分包括子层i+1到子层N及最后分类层的计算,由第二个FPGA芯片完成,并输出最终计算结果。
3.根据权利要求1所述一种面向深度神经网络的双FPGA协同工作方法,其特征在于:所述并行划分方法:从第一子层开始,将神经网络的每一层都划分成两部分,分别布置在两个FPGA芯片上,原始图像同时传入两个芯片开始并行计算;在子层i-1(1<i<N)计算完成后,根据需要交换中间计算结果,完成芯片间数据传输,继续并行执行子层i的计算;最后考虑到分类层数据关联度较大,不进行划分,在一个FPGA芯片内完成计算,并输出最终结果。
4.根据权利要求2、3任意一项所述一种面向深度神经网络的双FPGA协同工作方法,其特征在于:芯片间数据传输使用吉比特串行收发器(GTX)实现,其通信协议可自定义。
5.根据权利要求1所述的一种面向深度神经网络的双FPGA协同工作方法,其特征在于:所述划分计算任务的方法可扩展为三片甚至四片FPGA的协同工作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711306456.0A CN108228969A (zh) | 2017-12-07 | 2017-12-07 | 一种面向深度神经网络的双fpga协同工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711306456.0A CN108228969A (zh) | 2017-12-07 | 2017-12-07 | 一种面向深度神经网络的双fpga协同工作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108228969A true CN108228969A (zh) | 2018-06-29 |
Family
ID=62654075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711306456.0A Pending CN108228969A (zh) | 2017-12-07 | 2017-12-07 | 一种面向深度神经网络的双fpga协同工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108228969A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739802A (zh) * | 2019-04-01 | 2019-05-10 | 上海燧原智能科技有限公司 | 计算集群及计算集群配置方法 |
CN110209472A (zh) * | 2018-08-29 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 任务数据处理方法和板卡 |
CN110717574A (zh) * | 2018-07-11 | 2020-01-21 | 杭州海康威视数字技术股份有限公司 | 一种神经网络运行方法、装置及异构智能芯片 |
CN114880101A (zh) * | 2022-07-01 | 2022-08-09 | 成都登临科技有限公司 | 一种ai处理器、电子部件及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1991019267A1 (en) * | 1990-06-06 | 1991-12-12 | Hughes Aircraft Company | Neural network processor |
US6434541B1 (en) * | 1996-10-23 | 2002-08-13 | Ford Global Technologies, Inc. | Automotive engine misfire detection system including a bit-serial based recurrent neuroprocessor |
CN105354160A (zh) * | 2015-10-09 | 2016-02-24 | 中国科学院上海高等研究院 | 一种速率可配式fpga片间通信的连接方法及系统 |
CN106343607A (zh) * | 2016-11-04 | 2017-01-25 | 郑州大学 | 一种基于fpga的烟叶分级方法和装置 |
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速系统 |
US20170185890A1 (en) * | 2015-12-28 | 2017-06-29 | International Business Machines Corporation | Digitial stdp synapse and lif neuron-based neuromorphic system |
CN107430679A (zh) * | 2015-01-29 | 2017-12-01 | 尤尼伐控股有限公司 | 计算机视觉系统 |
-
2017
- 2017-12-07 CN CN201711306456.0A patent/CN108228969A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1991019267A1 (en) * | 1990-06-06 | 1991-12-12 | Hughes Aircraft Company | Neural network processor |
US6434541B1 (en) * | 1996-10-23 | 2002-08-13 | Ford Global Technologies, Inc. | Automotive engine misfire detection system including a bit-serial based recurrent neuroprocessor |
CN107430679A (zh) * | 2015-01-29 | 2017-12-01 | 尤尼伐控股有限公司 | 计算机视觉系统 |
CN105354160A (zh) * | 2015-10-09 | 2016-02-24 | 中国科学院上海高等研究院 | 一种速率可配式fpga片间通信的连接方法及系统 |
US20170185890A1 (en) * | 2015-12-28 | 2017-06-29 | International Business Machines Corporation | Digitial stdp synapse and lif neuron-based neuromorphic system |
CN106343607A (zh) * | 2016-11-04 | 2017-01-25 | 郑州大学 | 一种基于fpga的烟叶分级方法和装置 |
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速系统 |
Non-Patent Citations (2)
Title |
---|
JEFFREY DEAN: "Large Scale Distributed Deep Networks", 《RESEARCHGATE》 * |
王鹤澎: "面向新型处理器的数据密集型计算", 《软件学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110717574A (zh) * | 2018-07-11 | 2020-01-21 | 杭州海康威视数字技术股份有限公司 | 一种神经网络运行方法、装置及异构智能芯片 |
CN110209472A (zh) * | 2018-08-29 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 任务数据处理方法和板卡 |
CN109739802A (zh) * | 2019-04-01 | 2019-05-10 | 上海燧原智能科技有限公司 | 计算集群及计算集群配置方法 |
CN114880101A (zh) * | 2022-07-01 | 2022-08-09 | 成都登临科技有限公司 | 一种ai处理器、电子部件及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228969A (zh) | 一种面向深度神经网络的双fpga协同工作方法 | |
CN109685819B (zh) | 一种基于特征增强的三维医学图像分割方法 | |
CN108416436A (zh) | 使用多核心处理模块进行神经网络划分的方法及其系统 | |
CN110210539A (zh) | 多级深度特征融合的rgb-t图像显著性目标检测方法 | |
CN108197532A (zh) | 人脸识别的方法、装置及计算机装置 | |
CN104112053B (zh) | 一种面向图像处理的可重构架构平台设计方法 | |
WO2020143513A1 (zh) | 一种超分辨率图像的重构方法、装置及设备 | |
CN109726822B (zh) | 运算方法、装置及相关产品 | |
CN105653484A (zh) | 一种数据分块压缩多通道传输方法 | |
CN112541924B (zh) | 眼底图像生成方法、装置、设备以及存储介质 | |
CN111667005A (zh) | 一种采用rgbd视觉传感的人体交互系统 | |
CN106776461A (zh) | 数据处理装置和服务器 | |
CN105374070B (zh) | 一种3d图形处理算法建模仿真方法 | |
CN110351397A (zh) | 一种匹配ip网段的方法及装置 | |
CN109409509A (zh) | 一种针对基于fpga的卷积神经网络加速器的数据结构和加速方法 | |
Li et al. | AlphaGo policy network: A DCNN accelerator on FPGA | |
CN109657794A (zh) | 一种基于指令队列的分布式深度神经网络性能建模方法 | |
Gao et al. | SSA-ICL: Multi-domain adaptive attention with intra-dataset continual learning for Facial expression recognition | |
CN104123253B (zh) | 一种实现待验证芯片互联的方法和装置 | |
CN110166759A (zh) | 图像的处理方法和装置、存储介质、电子装置 | |
CN113887501A (zh) | 行为识别方法、装置、存储介质及电子设备 | |
CN104216970A (zh) | 一种协同数据交换方法 | |
CN104036141B (zh) | 一种基于OpenCL的红黑树加速方法 | |
CN110992320B (zh) | 一种基于双重交错的医学图像分割网络 | |
CN109740407A (zh) | 一种基于图网络的掌静脉特征提取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180629 |
|
RJ01 | Rejection of invention patent application after publication |