CN109767002A - 一种基于多块fpga协同处理的神经网络加速方法 - Google Patents
一种基于多块fpga协同处理的神经网络加速方法 Download PDFInfo
- Publication number
- CN109767002A CN109767002A CN201910044478.7A CN201910044478A CN109767002A CN 109767002 A CN109767002 A CN 109767002A CN 201910044478 A CN201910044478 A CN 201910044478A CN 109767002 A CN109767002 A CN 109767002A
- Authority
- CN
- China
- Prior art keywords
- fpga
- neural network
- flowing water
- parameter
- water series
- 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.)
- Granted
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种基于多块FPGA协同处理的神经网络加速方法,涉及神经网络优化领域;建立神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成。
Description
技术领域
本发明公开一种基于多块FPGA协同处理的神经网络加速方法,涉及神经网络优化领域。
背景技术
神经网络(Neural Networks,NN)是由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学习系统。神经网络具有大规模并行、分布式存储和处理、自组织、自适应和自学能力,特别适合处理需要同时考虑许多因素和条件的、不精确和模糊的信息处理问题。现有的神经网络模型中的一层还不能完善利用一块FPGA上进行并行实现,因此需要进行串行处理时降低了神经网络的处理性能,而采用多块FPGA的流水线分层实现就可以大大提升神经网络的处理性能。本发明提供一种基于多块FPGA协同处理的神经网络加速方法,利用本发明方法将所要实现的神经网络根据需要分层,以FPGA为基本单元进行流水化处理,实现在多块FPGA上分级数据处理,并可根据需要灵活实现最大吞吐量和最小延迟间的转换,提高了神经网络的能效比。
SoC称为系统级芯片,也称片上系统,它是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。
发明内容
本发明针对现有技术的问题,提供一种基于多块FPGA协同处理的神经网络加速方法,可以大大实现提升神经网络的处理性能。
本发明提出的具体方案是:
一种基于多块FPGA协同处理的神经网络加速方法,建立神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,
ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成。
所述的方法中ZYNQ芯片根据参数分解的层次划分FPGA的流水级数,并且每一流水级数不止一个FPGA。
所述的方法中每一流水级数的每个FPGA只实现整个神经网络的部分层的计算处理。
所述的方法中具体步骤为:
ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,判断实现网络模型以及实现神经网络是吞吐量优先还是延迟优先,
ZYNQ芯片根据优先级将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,
ZYNQ芯片将待处理的数据发送到流水级数为第一级的FPGA中,第一级的FPGA进行神经网络某一层或几层的计算处理,处理之后将第一级FPGA处理结果发送到第二级FPGA,第二级FPGA进行神经网络某一层或几层的计算处理,直至流水级数为最后一级的FPGA处理数据完成。
所述的方法中网络模型的参数分解的层次小于设定值时,每一块FPGA只进行神经网络一层的计算处理,使吞吐量最大化。
一种基于多块FPGA协同处理的神经网络加速器,包括神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,
ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成。
所述的加速器中神经网络加速板卡上的ZYNQ芯片根据参数分解的层次划分FPGA的流水级数,并且每一流水级数不止一个FPGA。
所述的加速器中通过高速网口进行神经网络加速板卡间板级互联,所述的加速器能处理更大规模的神经网络。
本发明的有益之处是:
本发明提供一种基于多块FPGA协同处理的神经网络加速方法,建立神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成;
利用本发明方法将所要实现的神经网络根据需要分层,以FPGA为基本单元进行流水化处理,实现在多块FPGA上分级数据处理,并可根据需要灵活实现最大吞吐量和最小延迟间的转换,提高了神经网络的能效比。
附图说明
图1是本发明方法流程示意图;
图2是本发明加速器板卡上芯片连接示意图。
具体实施方式
本发明提供一种基于多块FPGA协同处理的神经网络加速方法,建立神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,
ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成。
同时提供与上述方法相对应的一种基于多块FPGA协同处理的神经网络加速器,包括神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,
ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成。
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
利用本发明方法或加速器,处理某一神经网络的数据,过程如下:
建立神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片同各个FPGA芯片通过高速串行接口连接到互联芯片进行互联,ZYNQ上的ARM处理器运行LINUX系统,
ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,判断实现网络模型以及实现神经网络是吞吐量优先还是延迟优先,
ZYNQ芯片根据优先级将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,每块FPGA实现神经网络所需的卷积、池化、激活等基本单元,按照参数分解的层次ZYNQ芯片下发相应参数到相应流水级数的FPGA的外部存储中,ZYNQ芯片根据网络模型下发指令组合FPGA实现神经网络各层的网络,每一流水级数的每个FPGA只实现整个神经网络的部分层的计算处理,
ZYNQ芯片根据流水级数,将数据处理需要的FPGA依次上电,对不需要的FPGA不启动,同时根据神经网络模型将指令发送到各个FPGA的FIFO中进行存储,以决定每次启动哪些卷积计算单元,
ZYNQ随后将待处理的数据发送到流水级数为第一级的FPGA中,第一级的FPGA进行神经网络某一层或几层的计算处理,期间会根据下发的指令进行外部存储的读写,处理之后将第一级FPGA处理结果发送到第二级FPGA,流水线中进行下一层次的神经网络计算,第二级FPGA进行神经网络某一层或几层的计算处理,同时新的数据会下发到FPGA中,直至流水级数为最后一级的FPGA处理数据完成,最后一级FPGA将处理结果收集并上报。
在上述实施过程中,每一流水级数可以不止一个FPGA,同级的FPGA可以同时处理相似的数据,也可以处理不同的数据。
在上述实施例中,当网络模型的参数分解的层次小于设定值时,每一块FPGA只进行神经网络一层的计算处理,使吞吐量最大化,同时最大程度降低了DDR读写,只在最开始ZYNQ下发时进行读写,降低了系统的能耗。为了减少延迟,可以在一块FPGA中实现多个神经网络的层,减少FPGA间传输的延迟,此时,未用到的FPGA将经过ZYNQ调度,使其不用启动,以此降低整个系统的功耗。同样的如果神经网络的规模较大,现有板卡不能满足吞吐量要求,可以将多块板卡通过高速光网络接口进行级联,以实现更大规模的并行和流水线。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (8)
1.一种基于多块FPGA协同处理的神经网络加速方法,其特征是
建立神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,
ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成。
2.根据权利要求1所述的方法,其特征是ZYNQ芯片根据参数分解的层次划分FPGA的流水级数,并且每一流水级数不止一个FPGA。
3.根据权利要求1或2所述的方法,其特征是每一流水级数的每个FPGA只实现整个神经网络的部分层的计算处理。
4.根据权利要求3所述的方法,其特征是具体步骤为:
ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,判断实现网络模型以及实现神经网络是吞吐量优先还是延迟优先,
ZYNQ芯片根据优先级将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,
ZYNQ芯片将待处理的数据发送到流水级数为第一级的FPGA中,第一级的FPGA进行神经网络某一层或几层的计算处理,处理之后将第一级FPGA处理结果发送到第二级FPGA,第二级FPGA进行神经网络某一层或几层的计算处理,直至流水级数为最后一级的FPGA处理数据完成。
5.根据权利要求4所述的方法,其特征是网络模型的参数分解的层次小于设定值时,每一块FPGA只进行神经网络一层的计算处理,使吞吐量最大化。
6.一种基于多块FPGA协同处理的神经网络加速器,其特征是包括神经网络加速板卡,加速板卡上设置SOC芯片和FPGA,SOC芯片上包含ZYNQ芯片,ZYNQ芯片与每个FPGA互联,
ZYNQ芯片根据神经网络的网络模型的复杂度、延迟要求和吞吐量的需求,将网络模型的参数按照层次分解,并根据参数分解的层次划分FPGA的流水级数,按照参数分解的层次下发参数到相应流水级数的FPGA,根据神经网络模型控制每一流水级数启动的FPGA,直至流水级数为最后一级的FPGA处理数据完成。
7.根据权利要求6所述的加速器,其特征是神经网络加速板卡上的ZYNQ芯片根据参数分解的层次划分FPGA的流水级数,并且每一流水级数不止一个FPGA。
8.根据权利要求6或7所述的加速器,其特征是通过高速网口进行神经网络加速板卡间板级互联,所述的加速器能处理更大规模的神经网络。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910044478.7A CN109767002B (zh) | 2019-01-17 | 2019-01-17 | 一种基于多块fpga协同处理的神经网络加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910044478.7A CN109767002B (zh) | 2019-01-17 | 2019-01-17 | 一种基于多块fpga协同处理的神经网络加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109767002A true CN109767002A (zh) | 2019-05-17 |
CN109767002B CN109767002B (zh) | 2023-04-21 |
Family
ID=66454107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910044478.7A Active CN109767002B (zh) | 2019-01-17 | 2019-01-17 | 一种基于多块fpga协同处理的神经网络加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109767002B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110390385A (zh) * | 2019-06-28 | 2019-10-29 | 东南大学 | 一种基于bnrp的可配置并行通用卷积神经网络加速器 |
CN111274034A (zh) * | 2020-01-19 | 2020-06-12 | 北京奇艺世纪科技有限公司 | 模型推理的资源分配方法、装置、计算机设备和存储介质 |
CN111736986A (zh) * | 2020-05-29 | 2020-10-02 | 浪潮(北京)电子信息产业有限公司 | 一种深度学习模型的fpga加速执行方法及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229670A (zh) * | 2018-01-05 | 2018-06-29 | 中国科学技术大学苏州研究院 | 基于fpga的深度神经网络加速平台 |
US20180204110A1 (en) * | 2017-01-16 | 2018-07-19 | Electronics And Telecommunications Research Institute | Compressed neural network system using sparse parameters and design method thereof |
CN109086867A (zh) * | 2018-07-02 | 2018-12-25 | 武汉魅瞳科技有限公司 | 一种基于fpga的卷积神经网络加速系统 |
-
2019
- 2019-01-17 CN CN201910044478.7A patent/CN109767002B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180204110A1 (en) * | 2017-01-16 | 2018-07-19 | Electronics And Telecommunications Research Institute | Compressed neural network system using sparse parameters and design method thereof |
CN108229670A (zh) * | 2018-01-05 | 2018-06-29 | 中国科学技术大学苏州研究院 | 基于fpga的深度神经网络加速平台 |
CN109086867A (zh) * | 2018-07-02 | 2018-12-25 | 武汉魅瞳科技有限公司 | 一种基于fpga的卷积神经网络加速系统 |
Non-Patent Citations (1)
Title |
---|
陆维娜等: "面向卷积神经网络加速器吞吐量优化的FPGA自动化设计方法", 《计算机辅助设计与图形学学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110390385A (zh) * | 2019-06-28 | 2019-10-29 | 东南大学 | 一种基于bnrp的可配置并行通用卷积神经网络加速器 |
CN110390385B (zh) * | 2019-06-28 | 2021-09-28 | 东南大学 | 一种基于bnrp的可配置并行通用卷积神经网络加速器 |
CN111274034A (zh) * | 2020-01-19 | 2020-06-12 | 北京奇艺世纪科技有限公司 | 模型推理的资源分配方法、装置、计算机设备和存储介质 |
CN111274034B (zh) * | 2020-01-19 | 2023-06-30 | 北京奇艺世纪科技有限公司 | 模型推理的资源分配方法、装置、计算机设备和存储介质 |
CN111736986A (zh) * | 2020-05-29 | 2020-10-02 | 浪潮(北京)电子信息产业有限公司 | 一种深度学习模型的fpga加速执行方法及相关装置 |
CN111736986B (zh) * | 2020-05-29 | 2023-06-23 | 浪潮(北京)电子信息产业有限公司 | 一种深度学习模型的fpga加速执行方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109767002B (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109767002A (zh) | 一种基于多块fpga协同处理的神经网络加速方法 | |
CN205139973U (zh) | 基于fpga器件构建的bp神经网络 | |
CN109740739A (zh) | 神经网络计算装置、神经网络计算方法及相关产品 | |
CN107657316A (zh) | 通用处理器与神经网络处理器的协同系统设计 | |
CN109740754A (zh) | 神经网络计算装置、神经网络计算方法及相关产品 | |
CN107657263A (zh) | 一种用于实现ann的深度处理单元 | |
CN109325591A (zh) | 面向Winograd卷积的神经网络处理器 | |
CN106355244A (zh) | 卷积神经网络的构建方法及系统 | |
CN107862374A (zh) | 基于流水线的神经网络处理系统和处理方法 | |
CN107122243A (zh) | 用于cfd仿真计算的异构集群系统及cfd计算方法 | |
CN111831355B (zh) | 权重精度配置方法、装置、设备及存储介质 | |
CN111831354B (zh) | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 | |
CN107579518A (zh) | 基于mhba的电力系统环境经济调度方法和装置 | |
Zhang et al. | Edge-to-edge cooperative artificial intelligence in smart cities with on-demand learning offloading | |
CN112100155A (zh) | 一种云边协同的数字孪生模型组装与融合方法 | |
CN107766935A (zh) | 多层人造神经网络 | |
CN108345934A (zh) | 一种用于神经网络处理器的激活装置及方法 | |
CN110100255A (zh) | 区域有效、可重新配置、节能、速度有效的神经网络基板 | |
CN106505575A (zh) | 一种基于粒计算的线路潮流经济调度方法 | |
CN108304925A (zh) | 一种池化计算装置及方法 | |
CN108491924A (zh) | 一种面向人工智能计算的神经网络数据串行流水处理装置 | |
CN107944076A (zh) | 一种设备部署方案获取方法及装置 | |
CN107368454A (zh) | 一种大量同构稀疏下三角方程组的gpu加速前推方法 | |
CN109753319A (zh) | 一种释放动态链接库的装置及相关产品 | |
CN112561902A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230328 Address after: 250000 building S02, No. 1036, Langchao Road, high tech Zone, Jinan City, Shandong Province Applicant after: Shandong Inspur Scientific Research Institute Co.,Ltd. Address before: 250100 First Floor of R&D Building 2877 Kehang Road, Sun Village Town, Jinan High-tech Zone, Shandong Province Applicant before: JINAN INSPUR HIGH-TECH TECHNOLOGY DEVELOPMENT Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |