CN109767002A - 一种基于多块fpga协同处理的神经网络加速方法 - Google Patents

一种基于多块fpga协同处理的神经网络加速方法 Download PDF

Info

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
Application number
CN201910044478.7A
Other languages
English (en)
Other versions
CN109767002B (zh
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.)
Shandong Inspur Scientific Research Institute Co Ltd
Original Assignee
Jinan Inspur Hi Tech Investment and Development Co Ltd
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 Jinan Inspur Hi Tech Investment and Development Co Ltd filed Critical Jinan Inspur Hi Tech Investment and Development Co Ltd
Priority to CN201910044478.7A priority Critical patent/CN109767002B/zh
Publication of CN109767002A publication Critical patent/CN109767002A/zh
Application granted granted Critical
Publication of CN109767002B publication Critical patent/CN109767002B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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协同处理的神经网络加速方法
技术领域
本发明公开一种基于多块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所述的加速器,其特征是通过高速网口进行神经网络加速板卡间板级互联,所述的加速器能处理更大规模的神经网络。
CN201910044478.7A 2019-01-17 2019-01-17 一种基于多块fpga协同处理的神经网络加速方法 Active CN109767002B (zh)

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)

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

* Cited by examiner, † Cited by third party
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的卷积神经网络加速系统

Patent Citations (3)

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

* Cited by examiner, † Cited by third party
Title
陆维娜等: "面向卷积神经网络加速器吞吐量优化的FPGA自动化设计方法", 《计算机辅助设计与图形学学报》 *

Cited By (6)

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