CN112380158B - 一种面向深度学习的计算平台 - Google Patents
一种面向深度学习的计算平台 Download PDFInfo
- Publication number
- CN112380158B CN112380158B CN202011122092.2A CN202011122092A CN112380158B CN 112380158 B CN112380158 B CN 112380158B CN 202011122092 A CN202011122092 A CN 202011122092A CN 112380158 B CN112380158 B CN 112380158B
- Authority
- CN
- China
- Prior art keywords
- deep learning
- fpga
- subsystem
- calculation
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
Abstract
本发明公开了一种面向深度学习的计算平台,包括CPU子系统、若干FPGA子系统;所述CPU子系统与若干FPGA子系统通信连接。本发明通过CPU子系统和FPGA子系统之间的配合,极大提高了深度学习算法计算的效率,为深度学习算法计算提供了足够的算力支持。当深度学习算法计算规模较大时,本计算平台可以通过系统内的并行工作,提供时间上的并行计算;当深度学习算法计算规模不大时,本计算平台可以通过多个FPGA子系统间的并行工作,提供空间上的并行计算,提高深度学习算法处理数据的效率。
Description
技术领域
本发明涉及深度学习算法计算领域,更具体地,涉及一种面向深度学习的计算平台。
背景技术
随着深度学习的不断发展以及在各个领域的推广,其应用需求不断提升,导致算法层数增加,算法容量也越来越大。而硬件平台的算力是支持深度学习应用的一个关键要素,有限的算力限制了深度学习的发展。由于变电设备缺陷智能图像识别基于深度学习,而图像的数量又特别繁多,所以现有硬件极大限制了变电设备缺陷智能图像识别的计算速度。目前,很多机构开始将异构计算平台应用到深度学习当中,比如现在比较火的CPU+FPGA、CPU+GPU等,但由于单个硬件计算平台的计算资源有限,深度学习无法取得足够的算力支持。
在现有技术中,公开号为CN111143272A的中国发明专利,于2020年05月12日公开了一种异构计算平台的数据处理方法、装置及可读存储介质。主机在将FPGA加速板卡在执行数据处理过程中所需的数据存储在预先开辟的区域中,发出开始计算命令后,无需干预整个计算过程乃至计算结果的返回,FPGA加速板卡通过主动访问主机资源,自主完成待计算数据的读入和计算结果的写回,在一定程度上降低了主机和加速卡之间数据传输操作的延迟,对异构计算平台的数据传递效率有所提高;且通过在主机内存和FPGA加速板卡内存上开辟多块内存区域的方式来隐藏主机读写主机内存的时间和加速卡读写主机内存与加速卡内存的时间,整个过程的时间主要集中FPGA加速板卡的计算时间,排除内存的数据访问对加速卡性能的影响,相对提高了FPGA加速板卡的计算性能。但是,该方案并未能解决上述问题,因此,用户急需一种面向深度学习的计算平台,为深度学习算法提供足够的算力支持,以提高算法计算的效率。
发明内容
本发明为解决深度学习应用中硬件平台算力不足的问题,提供了一种面向深度学习的计算平台。
本发明的首要目的是为解决上述技术问题,本发明的技术方案如下:
一种面向深度学习的计算平台,包括CPU子系统、若干FPGA子系统;所述CPU子系统与若干FPGA子系统通信连接。
所述计算平台主要面向深度学习的推理部分,即对输入数据的处理,此过程是单向的,将输入数据从输入层到输出层的顺序进行逐级处理,在每层网络的计算过程中,对权值数据和输入数据进行一系列的运算,然后得出输出值。其中,深度学习算法的数据包括算法信息(网络层数和各层节点数)、网络参数(权值和偏置)、网络的输入数据和输出结果。本方案主要通过优化数据流控制和并行计算来提高平台的计算效率,解决平台算力不足的问题,其中,数据流控制包括网络参数的加载、网络输入数据的发送、网络输出结果的读取等。
优选地,所述CPU子系统通过多线程的方式管理若干FPGA子系统的并行工作,其中一个线程管理一个FPGA子系统。
优选地,相邻两个所述FPGA子系统之间设置有双共享存储区。
优选地,管理相邻两个所述FPGA子系统的线程以轮询的方式对所述共享存储区进行访问。
优选地,任一所述FPGA子系统包括总线控制模块、存储器模块、数据调度模块、若干计算模块;其中:所述总线控制模块与CPU子系统通信连接;所述总线控制模块输出端与存储器模块输入端通信连接;所述存储器模块输出端与数据调度模块输入端通信连接;所述数据调度模块输出端与若干计算模块输入端通信连接;所述通信模块与总线控制模块通信连接。
优选地,所述总线控制模块为PCIe总线控制模块。
优选地,所述存储器模块为DDR4 SDRAM存储器模块。
优选地,相邻所述计算模块之间设置有双缓存器。
优选地,所述双缓存器为寄存器。
优选地,所述数据调度模块处理各个计算模块的参数读取请求。
与现有技术相比,本发明技术方案的有益效果是:
本发明通过CPU子系统和FPGA子系统之间的配合,极大提高了深度学习算法计算的效率,为深度学习算法计算提供了足够的算力支持。
附图说明
图1为本发明结构示意图;
图2为本发明中所述CPU子系统工作流程图;
图3为本发明中所述FPGA子系统工作流程图;
图4为本发明中所述FPGA子系统结构示意图;
图5为本发明中所述双共享存储区示意图;
图6为本发明中所述双缓存器示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
实施例1
如图1所示,一种面向深度学习的计算平台,包括CPU子系统、若干FPGA子系统;所述CPU子系统与若干FPGA子系统通信连接。
上述方案中,如图2所示,CPU子系统的工作流程为:首先进行主机初始化;再者加载深度学习算法信息(网络层数、节点数)以及深度学习网络参数(偏置、权重),并发送至FPGA子系统;然后控制FPGA子系统进行深度学习算法计算(发送输入数据至FPGA子系统、从FPGA子系统获取计算结果);最后对所获取的计算结果进行处理。如图3所示,FPGA子系统的工作流程为:首先进行FPGA初始化;再者接收和存储CPU子系统发送过来的深度学习算法信息(网络层数、节点数);然后接收和转存深度学习网络参数(偏置、权重);最后接收CPU子系统发送过来的输入数据,进行深度学习算法计算,并输出计算结果,返回CPU子系统。
对于深度学习算法信息,若其数据量较大,单个FPGA子系统的计算资源不足,可对算法模型进行分层处理,不同FPGA子系统处理不同网络层的数据,前一个FPGA子系统的输出作为后一个FPGA子系统的输入;若其数据量较小,单个FPGA子系统的计算资源足够,可直接在单个FPGA子系统中独立处理,FPGA子系统之间无需进行数据交互。
对于深度学习网络参数,由于较小,由于其数据量较大,当FPGA子系统内存不足以存放时,可配置外部存储器进行转存。
具体地,所述CPU子系统通过多线程的方式管理若干FPGA子系统的并行工作,其中一个线程管理一个FPGA子系统。
上述方案中,CPU子系统管理多个FPGA子系统之间的数据收发以及并行工作。
如图5所示,具体地,相邻两个所述FPGA子系统之间设置有双共享存储区。
上述方案中,共享存储区的设置可使相邻两个FPGA子系统之间实现数据交互(通过线程对共享存储区进行访问),而本平台所设的双共享存储区,能够避免两个线程同时访问一个存储区而出现冲突的情况,提高了相邻FPGA子系统之间的并行度,从而提高了算法的计算速度和数据处理带宽。线程1和线程2分别控制两个相邻的FPGA子系统,FPGA-1子系统的输出作为FPGA-2子系统的输入,通过共享存储区A和共享存储B进行数据交互。
具体地,管理相邻两个所述FPGA子系统的线程以轮询的方式对所述共享存储区进行访问。
上述方案中,当线程1对共享存储区A进行写数据时,线程2对共享存储区B进行读数据;当线程1对共享存储区B进行写数据时,线程2对共享存储区A进行读数据。这样避免了使用单共享存储区时某个线程出现长时间等待的情况,进一步提高了线程之间的计算并行度。
如图4所示,具体地,任一所述FPGA子系统包括总线控制模块、存储器模块、数据调度模块、若干计算模块;其中:所述总线控制模块与CPU子系统通信连接;所述总线控制模块输出端与存储器模块输入端通信连接;所述存储器模块输出端与数据调度模块输入端通信连接;所述数据调度模块输出端与若干计算模块输入端通信连接;所述通信模块与总线控制模块通信连接。
上述方案中,总线控制模块作为CPU子系统和FPGA子系统之间的数据通信接口;总线控制模块接收CPU子系统发来的算法信息,并进行内部存储;总线控制模块接收网络参数后,转存到存储器模块;总线控制模块接收到网络输入数据时,直接传输到计算模块中进行计算(如图示,先传输到计算模块1,再逐层计算);计算模块在进行计算时,还需要读取内部存储的算法信息以及从转存在存储器模块中的网络参数。
为提高平台的计算效率,计算模块也可以并行的方式进行工作,所以会存在多个计算模块同时向存储器模块获取数据模型参数的情况;因而设计了数据调度模块,以处理各个计算模块的参数读取请求,提高计算模块并行计算的效率;所述参数读取请求主要分为请求处理、读数据控制,其中:请求处理对接收到的参数请求信号进行判断、排序,当存在多个参数读取信号时,首先判断各个参数请求信号上一次得到响应的时间,然后选择当前时间距离最长的请求优先进行响应,避免出现某请求长时间得不到响应的情况;读数据控制根据请求的地址从存储器模块中读取数据并返回。
具体地,所述总线控制模块为PCIe总线控制模块。
上述方案中,PCIe总线控制模块的数据传输效率更快,能够有效减少延迟。
具体地,所述存储器模块为DDR4 SDRAM存储器模块。
上述方案中,DDR4 SDRAM存储器模块提供更高的时钟频率和传输速率,而且工作电压更低,具有低能耗特性。
如图6所示,具体地,相邻所述计算模块之间设置有双缓存器。
上述方案中,为提高平台的计算效率,计算模块也可以并行的方式进行工作,此时由于相邻两个计算模块之间存在数据依赖的关系,故上一个计算模块产生的输出将作为下一个计算模块的输入,这需要上一个计算模块产生输出和下一个计算模块读取输入同时进行;通过在计算模块之间设置双缓存器,能存储计算的中间结果,实现该效果。
具体地,所述双缓存器为寄存器。
上述方案中,选用寄存器作为计算模块之间的双缓存器,相比FPGA芯片内专用的片内存储资源Block RAM,寄存器可以有多个数据端口,而Block RAM往往只有一到两个,这摆脱了数据带宽有限的制约;利用FPGA可编程的特性,还可以灵活定义寄存器的位宽和个数,从而组成任意大小的缓存器,不仅时间性能好,而且资源利用率高。寄存器A、寄存器B作为计算模块之间的共享寄存器,其工作模式为:当计算模块1对寄存器A进行写数据时,计算模块2对寄存器B进行读数据;当计算模块1对寄存器B进行写数据时,计算模块2对寄存器A进行读数据。这样保证了计算模块1产生的数据无间断地传送至计算模块2,从而实现计算模块之间的并行工作。
具体地,所述数据调度模块处理各个计算模块的参数读取请求。
上述方案中,当计算模块以并行的方式进行工作时,会存在多个计算模块同时向存储器模块获取数据模型参数的情况;因而设计了数据调度模块,以处理各个计算模块的参数读取请求,提高计算模块并行计算的效率;所述参数读取请求主要分为请求处理、读数据控制,其中:请求处理对接收到的参数请求信号进行判断、排序,当存在多个参数读取信号时,首先判断各个参数请求信号上一次得到响应的时间,然后选择当前时间距离最长的请求优先进行响应,避免出现某请求长时间得不到响应的情况;读数据控制根据请求的地址从存储器模块中读取数据并返回。
通过总结上述技术方案可知,当深度学习算法计算规模较大时,本计算平台可以通过系统内的并行工作,提供时间上的并行计算;当深度学习算法计算规模不大时,本计算平台可以通过多个FPGA子系统间的并行工作,提供空间上的并行计算,提高深度学习算法处理数据的效率。作为本计算平台的应用,将实现图像识别、语音检测的神经网络算法部署到平台上,可以实现图像识别、语音检测等神经网络计算的加速。
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (5)
1.一种面向深度学习的计算平台,其特征在于,包括CPU子系统、若干FPGA子系统;所述CPU子系统与若干FPGA子系统通信连接;所述CPU子系统通过多线程的方式管理若干FPGA子系统的并行工作,其中一个线程管理一个FPGA子系统;相邻两个所述FPGA子系统之间设置有双共享存储区;管理相邻两个所述FPGA子系统的线程以轮询的方式对所述共享存储区进行访问;
任一所述FPGA子系统包括总线控制模块、存储器模块、数据调度模块、若干计算模块;其中:所述总线控制模块与CPU子系统通信连接;所述总线控制模块输出端与存储器模块输入端通信连接;所述存储器模块输出端与数据调度模块输入端通信连接;所述数据调度模块输出端与若干计算模块输入端通信连接;
所述数据调度模块处理各个计算模块的参数读取请求,所述参数读取请求主要分为请求处理、读数据控制,其中:请求处理对接收到的参数请求信号进行判断、排序,当存在多个参数读取信号时,首先判断各个参数请求信号上一次得到响应的时间,然后选择当前时间距离最长的请求优先进行响应,避免出现某请求长时间得不到响应的情况;读数据控制根据请求的地址从存储器模块中读取数据并返回;
所述CPU子系统的工作流程为:首先进行主机初始化;再者加载深度学习算法信息以及深度学习网络参数,并发送至FPGA子系统;然后控制FPGA子系统进行深度学习算法计算,包括发送输入数据至FPGA子系统、从FPGA子系统获取计算结果;最后对所获取的计算结果进行处理;
所述FPGA子系统的工作流程为:首先进行FPGA初始化;再者接收和存储CPU子系统发送过来的深度学习算法信息;然后接收和转存深度学习网络参数;最后接收CPU子系统发送过来的输入数据,进行深度学习算法计算,并输出计算结果,返回CPU子系统。
2.根据权利要求1所述的一种面向深度学习的计算平台,其特征在于,所述总线控制模块为PCIe总线控制模块。
3.根据权利要求1所述的一种面向深度学习的计算平台,其特征在于,所述存储器模块为DDR4 SDRAM存储器模块。
4.根据权利要求1所述的一种面向深度学习的计算平台,其特征在于,相邻所述计算模块之间设置有双缓存器。
5.根据权利要求4所述的一种面向深度学习的计算平台,其特征在于,所述双缓存器为寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011122092.2A CN112380158B (zh) | 2020-10-20 | 2020-10-20 | 一种面向深度学习的计算平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011122092.2A CN112380158B (zh) | 2020-10-20 | 2020-10-20 | 一种面向深度学习的计算平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112380158A CN112380158A (zh) | 2021-02-19 |
CN112380158B true CN112380158B (zh) | 2022-02-11 |
Family
ID=74581684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011122092.2A Active CN112380158B (zh) | 2020-10-20 | 2020-10-20 | 一种面向深度学习的计算平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112380158B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107402902A (zh) * | 2017-07-31 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种异构计算平台与基于异构计算平台的加速方法 |
CN108563808A (zh) * | 2018-01-05 | 2018-09-21 | 中国科学技术大学 | 基于fpga的异构可重构图计算加速器系统的设计方法 |
CN108776649A (zh) * | 2018-06-11 | 2018-11-09 | 山东超越数控电子股份有限公司 | 一种基于cpu+fpga异构计算系统及其加速方法 |
CN110704360A (zh) * | 2019-09-29 | 2020-01-17 | 华中科技大学 | 一种基于异构fpga数据流的图计算优化方法 |
CN111538698A (zh) * | 2020-04-23 | 2020-08-14 | 中北大学 | 基于fddi光纤令牌总线的片上网络表单化散片式存储系统及方法 |
CN111626403A (zh) * | 2020-05-14 | 2020-09-04 | 北京航空航天大学 | 一种基于cpu-fpga内存共享的卷积神经网络加速器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104133777B (zh) * | 2014-07-24 | 2018-01-16 | 曙光信息产业(北京)有限公司 | 一种共享存储系统及其使用方法 |
US10452444B1 (en) * | 2017-10-19 | 2019-10-22 | Pure Storage, Inc. | Storage system with compute resources and shared storage resources |
-
2020
- 2020-10-20 CN CN202011122092.2A patent/CN112380158B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107402902A (zh) * | 2017-07-31 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种异构计算平台与基于异构计算平台的加速方法 |
CN108563808A (zh) * | 2018-01-05 | 2018-09-21 | 中国科学技术大学 | 基于fpga的异构可重构图计算加速器系统的设计方法 |
CN108776649A (zh) * | 2018-06-11 | 2018-11-09 | 山东超越数控电子股份有限公司 | 一种基于cpu+fpga异构计算系统及其加速方法 |
CN110704360A (zh) * | 2019-09-29 | 2020-01-17 | 华中科技大学 | 一种基于异构fpga数据流的图计算优化方法 |
CN111538698A (zh) * | 2020-04-23 | 2020-08-14 | 中北大学 | 基于fddi光纤令牌总线的片上网络表单化散片式存储系统及方法 |
CN111626403A (zh) * | 2020-05-14 | 2020-09-04 | 北京航空航天大学 | 一种基于cpu-fpga内存共享的卷积神经网络加速器 |
Also Published As
Publication number | Publication date |
---|---|
CN112380158A (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107657581B (zh) | 一种卷积神经网络cnn硬件加速器及加速方法 | |
CN1717645B (zh) | 用于多线程处理器性能控制的装置和方法 | |
CN110546611A (zh) | 通过跳过处理操作来减少神经网络处理器中的功耗 | |
US9703493B2 (en) | Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache | |
EP3938866B1 (en) | Selectively controlling memory power for scheduled computations | |
Biookaghazadeh et al. | Toward multi-fpga acceleration of the neural networks | |
CN111190735A (zh) | 一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统 | |
Min et al. | NeuralHMC: An efficient HMC-based accelerator for deep neural networks | |
CN111860773A (zh) | 处理装置和用于信息处理的方法 | |
CN111124995A (zh) | 通过人工智能处理器处理一维复数数组的方法和设备 | |
US11429299B2 (en) | System and method for managing conversion of low-locality data into high-locality data | |
CN112306951B (zh) | 一种基于fpga的cnn-svm资源高效型加速架构 | |
CN112380158B (zh) | 一种面向深度学习的计算平台 | |
CN116521088A (zh) | 数据处理方法、装置、设备及存储介质 | |
JP2024024607A (ja) | メモリーアクセスのための集積回路、処理方法、電子機器及び媒体 | |
US20220004854A1 (en) | Artificial neural network computation acceleration apparatus for distributed processing, artificial neural network acceleration system using same, and artificial neural network acceleration method therefor | |
CN106776390A (zh) | 多设备访问存储器的实现方法 | |
US20230143270A1 (en) | Apparatus and method with scheduling | |
US11733763B2 (en) | Intelligent low power modes for deep learning accelerator and random access memory | |
KR20210106635A (ko) | 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템 | |
US11442643B2 (en) | System and method for efficiently converting low-locality data into high-locality data | |
WO2023142091A1 (zh) | 计算任务调度装置、计算装置、计算任务调度方法和计算方法 | |
CN111158588B (zh) | 一种双倍速率控制方法及系统 | |
US20240087291A1 (en) | Method and system for feature extraction using reconfigurable convolutional cluster engine in image sensor pipeline | |
CN110826704B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |