CN108228969A - 一种面向深度神经网络的双fpga协同工作方法 - Google Patents

一种面向深度神经网络的双fpga协同工作方法 Download PDF

Info

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
Application number
CN201711306456.0A
Other languages
English (en)
Inventor
程陶然
白林亭
文鹏程
郭锋
李亚晖
刘作龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Aeronautics Computing Technique Research Institute of AVIC
Original Assignee
Xian Aeronautics Computing Technique Research Institute of AVIC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Aeronautics Computing Technique Research Institute of AVIC filed Critical Xian Aeronautics Computing Technique Research Institute of AVIC
Priority to CN201711306456.0A priority Critical patent/CN108228969A/zh
Publication of CN108228969A publication Critical patent/CN108228969A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design 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协同工作方法
技术领域
本发明属于机载智能计算领域,提出了一种面向深度神经网络的双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的协同工作。
CN201711306456.0A 2017-12-07 2017-12-07 一种面向深度神经网络的双fpga协同工作方法 Pending CN108228969A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 尤尼伐控股有限公司 计算机视觉系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
JEFFREY DEAN: "Large Scale Distributed Deep Networks", 《RESEARCHGATE》 *
王鹤澎: "面向新型处理器的数据密集型计算", 《软件学报》 *

Cited By (4)

* Cited by examiner, † Cited by third party
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协同工作方法
Pan et al. VCRNet: Visual compensation restoration network for no-reference image quality assessment
CN109685819B (zh) 一种基于特征增强的三维医学图像分割方法
CN108416436A (zh) 使用多核心处理模块进行神经网络划分的方法及其系统
CN110210539A (zh) 多级深度特征融合的rgb-t图像显著性目标检测方法
CN104112053B (zh) 一种面向图像处理的可重构架构平台设计方法
CN110889416B (zh) 一种基于级联改良网络的显著性物体检测方法
WO2020143513A1 (zh) 一种超分辨率图像的重构方法、装置及设备
Bi et al. Cross-modal hierarchical interaction network for RGB-D salient object detection
CN111667005A (zh) 一种采用rgbd视觉传感的人体交互系统
CN108073851A (zh) 一种抓取手势识别的方法、装置及电子设备
CN106776461A (zh) 数据处理装置和服务器
CN110351397A (zh) 一种匹配ip网段的方法及装置
CN109657794A (zh) 一种基于指令队列的分布式深度神经网络性能建模方法
Li et al. AlphaGo policy network: A DCNN accelerator on FPGA
Gao et al. SSA-ICL: Multi-domain adaptive attention with intra-dataset continual learning for Facial expression recognition
CN110166759A (zh) 图像的处理方法和装置、存储介质、电子装置
CN104216970A (zh) 一种协同数据交换方法
CN112836755B (zh) 基于深度学习的样本图像生成方法及其系统
CN104036141B (zh) 一种基于OpenCL的红黑树加速方法
CN110992320B (zh) 一种基于双重交错的医学图像分割网络
CN109740407A (zh) 一种基于图网络的掌静脉特征提取方法
CN101540061A (zh) 基于模拟退火的无序图像拓扑有序化匹配方法
CN112560936A (zh) 模型并行训练方法、装置、设备、存储介质和程序产品
CN110349635A (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