CN111488051A - 基于cpu和fpga协同计算的云端深度神经网络优化方法 - Google Patents

基于cpu和fpga协同计算的云端深度神经网络优化方法 Download PDF

Info

Publication number
CN111488051A
CN111488051A CN202010153250.4A CN202010153250A CN111488051A CN 111488051 A CN111488051 A CN 111488051A CN 202010153250 A CN202010153250 A CN 202010153250A CN 111488051 A CN111488051 A CN 111488051A
Authority
CN
China
Prior art keywords
neural network
acceleration
fpga
cpu
data
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
CN202010153250.4A
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.)
Fudan University
Original Assignee
Fudan University
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 Fudan University filed Critical Fudan University
Priority to CN202010153250.4A priority Critical patent/CN111488051A/zh
Publication of CN111488051A publication Critical patent/CN111488051A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)

Abstract

本发明属于计算机体系结构设计技术领域,具体为一种基于CPU和FPGA协同计算的云端深度神经网络优化方法。该方法实现分为前端和后端两部分;前端是CPU为核心的服务器端,负责流程控制、数据接收和部分处理;后端是以FPGA为核心的加速部件,包括大规模并行处理器阵列、图形处理单元、专用集成电路以及PCI‑E接口,负责深度神经网络关键层的并行加速处理等。先将深度神经网络按不同层次划分为分别适合前端和后端处理的两个部分。前端将接收到的数据以数据流的形式,由DDR穿梭于前后端之间处理各个层或组合层。前端灵活的流程控制配合后端高效的并行结构,可大幅提高神经网络计算的能效比。

Description

基于CPU和FPGA协同计算的云端深度神经网络优化方法
技术领域
本发明属于计算机体系结构设计技术领域,具体涉及一种基于CPU和FPGA协同计算的云端深度神经网络优化方法。
背景技术
在多种交互方式并存的人机交互过程中,会产生不同特点的交互模态数据和所对应不同深度学习模型,如卷积神经网络(Convolutional neural networks,简称CNNs)模型等,而构建深度学习算法需要长时间和大量计算资源。目前主流的计算架构包括以下三种:GPU、FPGA和专用定制芯片(ASIC)。
GPU 最早是为生成基于多边形网络的计算机图形而设计的,实际上这些处理器也非常适用于运行神经网络和矩阵乘法方面的计算。但是每张GPU也会消耗大约 250 瓦的功率并且需要一个完整的计算机来支持运行。FPGA即现场可编程门阵列,是一种半定制电路,可以针对深度神经网络模型构建出定制处理器,但其基本单元的资源有限,无法完整处理大规模深度神经网络模型。ASIC具有速度快能耗低的优点,但其一旦定型就无法更改,不够灵活。
本发明基于CPU和FPGA协同计算架构,通过软硬件优化方法来解决目前大规模服务器集群在处理深度学习算法时存在着耗能高、性价比低、灵活性差、数据通信开销大等问题。
发明内容
本发明的目的在于提供一种基于CPU和FPGA协同计算的云端深度神经网络优化方法,用以解决目前大规模服务器集群在处理深度学习算法时存在着耗能高、性价比低、灵活性差、数据通信开销大等问题。
本发明提供的基于CPU和FPGA协同计算的云端深度神经网络优化方法,利用软硬件全可编程技术,将时序大数据、大规模场景深度信息、海量个体生理信息等数据通过外部存储接口实时调入与云服务器共享的板上内存池中,使CPU与FPGA实现协同异构模式计算。在协同计算过程中,主机中的CPU负责FPGA不擅长的复杂逻辑和事务处理等串行计算;FPGA通过共享内存池高速读取内存数据,充分调动内部的真值表、触发器以及其他硬件资源,动态实现多层次的深度学习模型的关键层(如卷积层和非线性层等),达到在硬件层次中加快模型响应速度的目的。二者各尽所能,充分发挥异构计算系统的处理能力。
本发明提供的优化方法,把深度神经网络按不同层次划分为分别适合前端和后端处理的两个部分;其中:
所述前端,是以CPU为核心的服务器端,包括CPU和PCI-E总线接口的主机、控制划分深度神经网络的程序和加速部件驱动,负责数据接收、流程控制和部分处理;
所述后端,是以FPGA为核心的加速部件,包括现场可编程门阵列(FPGA)、大规模并行处理器阵列、图形处理单元、专用集成电路以及PCI-E接口,负责深度神经网络关键层的并行加速处理。
前端中,数据接收具体可实现为RESTful架构风格的服务端,通过网络接收从外部客户端发来的多模态数据请求。前端根据请求的模态类型和任务要求,选择合适的深度处理模型。再根据数据规模权衡传输开销和加速效果,确定整体控制流程。
通常线性层的传输开销大于加速效果,将由前端完成处理;卷积层、非线性函数、池化层等加速效果显著的划分给后端处理,并参考后端预定义的网络类型,自动将原始处理层优化组合,对应到后端 FPGA的一个独立IP核,以减少数据传输损耗,提高性能。
后端中,加速实现以前端确定的组合层为主。本方法先将权衡加速开销之后可能用于后端加速的层全部筛选出来,再根据层的类型分类组合实现IP核。
前端将接收到的数据以数据流的形式,由DDR穿梭于前端和后端之间处理各个层或组合层。前端灵活的流程控制配合后端高效的并行结构,可大幅提高神经网络计算的能效比。
相比于单层或者完整模型的处理方式,本方法更具有灵活性,能够做到根据数据规模动态调整处理流程,避免频繁的数据交换或FPGA的线性处理。
本发明使用FPGA作为硬件加速,相较于软件加速,性能更高,较ASIC,更具有一定的灵活性,较GPU,功耗低,从而达到提升性能和降低功耗的效果。采用异构计算节点构建高性能分布式共享存储架构服务器,结合通用计算和算法硬件加速,适用于一定应用领域,兼顾了性能、功耗和应用灵活性,另外本发明设计的服务器占用空间小,价格相对商用CPU和GPU低,具有一定成本优势。
附图说明
图1是本发明方法流程示意图。
图2是后端加速处理示例流程图。
图3是后端并行处理示例图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
本发明提供了一种在服务器部件上实现深度神经网络的优化方法,所述服务器部件包括具有CPU的主机部件和连接到所述主机部件的硬件加速部件;所述深度神经网络包括多个层。所述方法包括:划分成分别适合前后端的两个部分。前端将接收到的数据以数据流的形式,由DDR穿梭于前后端之间处理各个层和组合层。
如图1所示,为在加速部件上实现深度神经网络加速的操作过程。首先在前端主机基于HTTP的RESTful架构接收外部数据,根据数据的模态类型和任务要求,选择合适的深度处理模型。再根据数据规模权衡传输开销和加速效果,分析深度神经网络模型参数,确定整体控制流程。将网络模型划分为两个部分。例如,可以将接收到的深度神经网络划分为包含具有较高存储器带宽要求的层(例如线性层)的前端部分,以及包含具有较低存储器带宽要求的层(例如卷积层)的后端部分。配置前端主机部件和后端加速部件穿梭实现相应部分。
其中,虚线代表的融合层是将多个层组合到单个FPGA IP核中。例如在融合卷积层和采样层之后,将卷积和采样两个操作融合到单个FPGA IP核中。这种融合运算不会将卷积层生成的中间结果写入内存,而是直接在FPGA 中完成流式计算,并将最终结果传输给前端。因为减少了额外的数据移动,所以能够提升性能。但是性能和灵活性通常不能兼得,FPGA的资源会限制组合的数量和深度。所以只能预先实现常用的组合层IP核,在前端划分模型时自己加以判断。
图2以卷积层为例展示了当数据穿梭到后端加速部件时的处理流程。FPGA先从存储器中读取数据,将输入数据加载到第一组输入数据缓冲器,再从缓冲器中读取卷积核的权重。将输入数据分割成N个切片,并将输入数据的N个切片加载到第一组输入数据缓冲器中。之后并行执行卷积操作,将结果移位到 FIFO 阵列和环形仲裁器。后端根据前端的命令判断是否将结果放入缓冲器,以执行下一次还是返回处理结果。
图3展示了后端加速部件中用于计算特征值的功能,以说明后端处理的并行特性。该功能包括流处理部件,用于将输入流分流成多个并行的子数据流。然后,特征状态机的集合在子流上并行操作以生成特征值。特征收集部件收集来自特征状态机的特征值,并使其可用于下游加速部件。特征收集部件通常可以用具有存储器存储指令的一个或多个计算机处理器,也可以在FPGA中采用专用逻辑门阵列来实现。在本方法中,特征收集工作由前端处理器完成。
下面结合实验对本发明的应用效果作详细的描述。
1、条件
本次实施实验在由一个Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz,一个NVIDIAGeForce GTX 1080和一个Xilinx KCU1500 FPGA加速平台所组成的异构计算平台上进行。
2、实验内容
在上述异构计算系统中,测试用例选用基于Caffe 框架的手势识别模型,通过摄像头采集到实时图像,分别交由加速部件和 GPU 进行识别,记录计算时间和实时功率。其中加速部件功率由 xbsak query 命令测得,GPU 功率由 nvidia-smi 命令测得。单帧处理时间取测试场景时间段内的平均值,单帧功耗=平均功率*单帧处理时间。实验过程中,选取五个测试场景,测试结果概述如下:
1) 场景一中GPU单帧功耗为14.80mJ/f,加速部件单帧功耗为0.13mJ/f,加速部件与GPU的能效比为1/114;
2) 场景二中GPU单帧功耗为14.95mJ/f,加速部件单帧功耗为0.13mJ/f,加速部件与GPU的能效比为1/115;
3) 场景三中GPU单帧功耗为15.17mJ/f,加速部件单帧功耗为0.13mJ/f,加速部件与GPU的能效比为1/117;
4) 场景四中GPU单帧功耗为15.17mJ/f,加速部件单帧功耗为0.13mJ/f,加速部件与GPU的能效比为1/117;
5) 场景五中GPU单帧功耗为15.17mJ/f,加速部件单帧功耗为0.13mJ/f,加速部件与GPU的能效比为1/117。
3、结果分析
为了更好的展示实验结果,通过能效比参数更加直观的突出本发明在高性能和低能耗方面的提升效果。能效比定义如下:
能效比 = GPU平均功耗 * GPU单帧处理时间 / 加速部件平均功耗 / 加速部件单帧处理时间
= GPU单帧功耗 / 加速部件单帧功耗
从最终效果来看,本发明可以大幅提升性能和降低功耗。
以上所述仅为本发明的一种实施方式,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种基于CPU和FPGA协同计算的云端深度神经网络优化方法,其特征在于,利用软硬件全可编程技术,将时序大数据、大规模场景深度信息、海量个体生理信息等数据通过外部存储接口实时调入与云服务器共享的板上内存池中,使CPU与FPGA实现协同异构模式计算;在协同计算过程中,主机中的CPU负责FPGA不擅长的复杂逻辑和事务处理串行计算;FPGA通过共享内存池高速读取内存数据,充分调动内部的真值表、触发器以及其他硬件资源,动态实现多层次的深度学习模型的关键层,从而在硬件层次中加快模型响应速度。
2.根据权利要求1所述的基于CPU和FPGA协同计算的云端深度神经网络优化方法,其特征在于,把深度神经网络按不同层次划分为分别适合前端和后端处理的两个部分,其中:
所述前端,是以CPU为核心的服务器端,包括CPU和PCI-E总线接口的主机、控制划分深度神经网络的程序和加速驱动部件,负责数据接收、流程控制和部分处理;
所述后端,是以FPGA为核心的加速部件,包括现场可编程门阵列、大规模并行处理器阵列、图形处理单元、专用集成电路以及PCI-E接口,负责实现深度神经网络关键层的并行加速;
前端中,数据接收采用RESTful架构的服务端,通过网络接收从外部客户端发来的多模态数据请求;根据请求的模态类型和任务要求,选择合适的深度处理模型;再根据数据规模权衡传输开销和加速效果,确定整体控制流程;
线性层的传输开销大于加速效果,划分给前端处理;卷积层、非线性函数、池化层等加速效果显著的划分给后端处理,并参考后端预定义的网络类型,自动将原始处理层优化组合,对应到后端 FPGA的一个独立IP核,以减少数据传输损耗,提高性能;
后端中,加速实现以前端确定的组合层为主;先将权衡加速开销之后可能用于后端加速的层全部筛选出来,再根据层的类型分类组合实现IP核;
前端将接收到的数据以数据流的形式,由DDR穿梭于前端和后端之间处理各个层或组合层;前端灵活的流程控制配合后端高效的并行结构,大幅提高神经网络计算的能效比。
CN202010153250.4A 2020-03-06 2020-03-06 基于cpu和fpga协同计算的云端深度神经网络优化方法 Pending CN111488051A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010153250.4A CN111488051A (zh) 2020-03-06 2020-03-06 基于cpu和fpga协同计算的云端深度神经网络优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010153250.4A CN111488051A (zh) 2020-03-06 2020-03-06 基于cpu和fpga协同计算的云端深度神经网络优化方法

Publications (1)

Publication Number Publication Date
CN111488051A true CN111488051A (zh) 2020-08-04

Family

ID=71812447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010153250.4A Pending CN111488051A (zh) 2020-03-06 2020-03-06 基于cpu和fpga协同计算的云端深度神经网络优化方法

Country Status (1)

Country Link
CN (1) CN111488051A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112925741A (zh) * 2021-03-29 2021-06-08 上海西井信息科技有限公司 异构计算方法和系统
CN113609068A (zh) * 2021-08-10 2021-11-05 中国人民解放军61646部队 一种基于混合异构处理器的云服务架构
CN113778040A (zh) * 2021-11-11 2021-12-10 西安热工研究院有限公司 一种基于火电厂嵌入式智能控制的装置及方法
CN113900793A (zh) * 2021-07-29 2022-01-07 苏州浪潮智能科技有限公司 一种服务器集群及其深度学习的集合通信系统和方法
WO2022037490A1 (zh) * 2020-08-21 2022-02-24 北京灵汐科技有限公司 神经网络的运算方法、装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142845A (zh) * 2014-07-21 2014-11-12 中国人民解放军信息工程大学 基于OpenCL-To-FPGA的CT图像重建反投影加速方法
CN106020425A (zh) * 2016-05-27 2016-10-12 浪潮(北京)电子信息产业有限公司 一种fpga异构加速计算系统
CN106339351A (zh) * 2016-08-30 2017-01-18 浪潮(北京)电子信息产业有限公司 一种sgd算法优化系统及方法
US20180005082A1 (en) * 2016-04-11 2018-01-04 A2Ia S.A.S. Systems and methods for recognizing characters in digitized documents
CN110333946A (zh) * 2019-05-14 2019-10-15 王娅雯 一种基于人工智能cpu数据处理系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142845A (zh) * 2014-07-21 2014-11-12 中国人民解放军信息工程大学 基于OpenCL-To-FPGA的CT图像重建反投影加速方法
US20180005082A1 (en) * 2016-04-11 2018-01-04 A2Ia S.A.S. Systems and methods for recognizing characters in digitized documents
CN106020425A (zh) * 2016-05-27 2016-10-12 浪潮(北京)电子信息产业有限公司 一种fpga异构加速计算系统
CN106339351A (zh) * 2016-08-30 2017-01-18 浪潮(北京)电子信息产业有限公司 一种sgd算法优化系统及方法
CN110333946A (zh) * 2019-05-14 2019-10-15 王娅雯 一种基于人工智能cpu数据处理系统及方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022037490A1 (zh) * 2020-08-21 2022-02-24 北京灵汐科技有限公司 神经网络的运算方法、装置、计算机设备及存储介质
CN112925741A (zh) * 2021-03-29 2021-06-08 上海西井信息科技有限公司 异构计算方法和系统
CN112925741B (zh) * 2021-03-29 2023-01-24 上海西井信息科技有限公司 异构计算方法和系统
CN113900793A (zh) * 2021-07-29 2022-01-07 苏州浪潮智能科技有限公司 一种服务器集群及其深度学习的集合通信系统和方法
CN113900793B (zh) * 2021-07-29 2023-11-10 苏州浪潮智能科技有限公司 一种服务器集群及其深度学习的集合通信系统和方法
CN113609068A (zh) * 2021-08-10 2021-11-05 中国人民解放军61646部队 一种基于混合异构处理器的云服务架构
CN113778040A (zh) * 2021-11-11 2021-12-10 西安热工研究院有限公司 一种基于火电厂嵌入式智能控制的装置及方法
CN113778040B (zh) * 2021-11-11 2022-02-15 西安热工研究院有限公司 一种基于火电厂嵌入式智能控制的装置及方法

Similar Documents

Publication Publication Date Title
CN111488051A (zh) 基于cpu和fpga协同计算的云端深度神经网络优化方法
US11675943B2 (en) Tool to create a reconfigurable interconnect framework
US11227086B2 (en) Reconfigurable interconnect
CN108268941B (zh) 深度卷积网络异构架构
US20200301898A1 (en) Systems and methods for accelerating data operations by utilizing dataflow subgraph templates
CN108764466B (zh) 基于现场可编程门阵列的卷积神经网络硬件及其加速方法
CN108268940B (zh) 用于创建可重新配置的互连框架的工具
EP3346425B1 (en) Hardware accelerator engine and method
EP3346427B1 (en) Configurable accelerator framework, system and method
CN106503791A (zh) 用于有效神经网络部署的系统和方法
US20180181503A1 (en) Data flow computation using fifos
JP7381429B2 (ja) ストレージ周辺の階層的ソート加速のためのストレージシステム及び方法
CN110222818A (zh) 一种用于卷积神经网络数据存储的多bank行列交织读写方法
Biookaghazadeh et al. Toward multi-fpga acceleration of the neural networks
CN112950656A (zh) 一种基于fpga平台的按通道进行预读取数据的分块卷积方法
US20220101086A1 (en) Reconfigurable hardware buffer in a neural networks accelerator framework
CN109472734B (zh) 一种基于fpga的目标检测网络及其实现方法
Kim et al. A 118.4 gb/s multi-casting network-on-chip with hierarchical star-ring combined topology for real-time object recognition
Huang et al. IECA: An in-execution configuration CNN accelerator with 30.55 GOPS/mm² area efficiency
CN111752879B (zh) 一种基于卷积神经网络的加速系统、方法及存储介质
US11797280B1 (en) Balanced partitioning of neural network based on execution latencies
Xiong et al. Deep‐Sea: A Reconfigurable Accelerator for Classic CNN
Qiu et al. An FPGA‐Based Convolutional Neural Network Coprocessor
CN113961249A (zh) 基于卷积神经网络的risc-v协处理系统和方法
Cai et al. A Parallel Programming Model Research Based on Heterogeneous Multi-core Embedded Processor

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200804

WD01 Invention patent application deemed withdrawn after publication