CN106528490B - 一种fpga异构加速计算装置及系统 - Google Patents
一种fpga异构加速计算装置及系统 Download PDFInfo
- Publication number
- CN106528490B CN106528490B CN201611085794.1A CN201611085794A CN106528490B CN 106528490 B CN106528490 B CN 106528490B CN 201611085794 A CN201611085794 A CN 201611085794A CN 106528490 B CN106528490 B CN 106528490B
- Authority
- CN
- China
- Prior art keywords
- calculation
- data
- host
- svd
- fpga
- 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
- 230000001133 acceleration Effects 0.000 title claims description 23
- 238000004364 calculation method Methods 0.000 claims abstract description 69
- 238000004891 communication Methods 0.000 claims abstract description 37
- 239000011159 matrix material Substances 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 5
- 238000000354 decomposition reaction Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/76—Architectures of general purpose stored program computers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种FPGA异构加速计算装置及系统,该装置包括FPGA芯片及通信接口,FPGA芯片包括用于实现SVD算法的SVD计算电路;其中:通信接口,用于与主机连接并与主机进行数据通信;FPGA芯片,用于获取主机通过通信接口发送的待计算数据,并利用SVD计算电路对待计算数据进行计算得到对应计算结果后,将计算结果通过通信接口返回至主机。本发明基于FPGA芯片实现与SVD算法对应的SVD计算,也即实现基于FPGA异构计算平台的SVD计算,而FPGA异构计算平台具有高速计算的特性,因此,基于该平台实现SVD计算能够大大增加SVD计算的速度,进而提高SVD计算的计算性能,以满足日益增长的数据处理需求。
Description
技术领域
本发明涉及大数据计算技术领域,更具体地说,涉及一种FPGA异构加速计算装置及系统。
背景技术
Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架,能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法,可用来构建大型的、低延迟的数据分析应用程序。
其中,MLlib是Spark的机器学习库,奇异值分解(Singular ValueDecomposition,SVD)算法是大数据处理中的机器学习库中重要矩阵分解算法,但是发明人发现,目前基于Spark实现SVD算法时计算速度较慢,其计算性能无法满足日益增长的数据处理需求。
综上所述,现有技术中基于Spark实现SVD算法时其计算性能无法满足日益增长的数据处理需求,是本领域技术人员目前需要解决的技术问题。
发明内容
本发明的目的是提供一种FPGA异构加速计算装置及系统,以解决现有技术中基于Spark实现SVD算法时其计算性能无法满足日益增长的数据处理需求的问题。
为了实现上述目的,本发明提供如下技术方案:
一种FPGA异构加速计算装置,包括FPGA芯片及通信接口,所述FPGA芯片包括用于实现SVD算法的SVD计算电路;其中:
所述通信接口,用于与主机连接并与所述主机进行数据通信;
所述FPGA芯片,用于获取所述主机通过所述通信接口发送的待计算数据,并利用所述SVD计算电路对所述待计算数据进行计算得到对应计算结果后,将所述计算结果通过所述通信接口返回至所述主机。
优选的,所述FPGA异构加速计算装置具体为扩展板卡。
优选的,所述通信接口具体为PCIe接口。
优选的,还包括存储器,所述存储器用于存储所述待计算数据供所述FPGA芯片获取,以及用于存储所述计算结果供所述主机获取。
优选的,所述存储器具体为DDR存储器。
一种FPGA异构加速计算系统,包括主机及如上述任一项所述的FPGA异构加速计算装置,所述FPGA异构加速计算装置通过其包括的通信接口与所述主机连接。
优选的,所述主机包括数据处理服务器,所述数据处理服务器用于将其计算要求大于预设要求的待计算数据发送至所述FPGA异构加速计算装置。
本发明提供了一种FPGA异构加速计算装置及系统,该装置包括FPGA芯片及通信接口,所述FPGA芯片包括用于实现SVD算法的SVD计算电路;其中:所述通信接口,用于与主机连接并与所述主机进行数据通信;所述FPGA芯片,用于获取所述主机通过所述通信接口发送的待计算数据,并利用所述SVD计算电路对所述待计算数据进行计算得到对应计算结果后,将所述计算结果通过所述通信接口返回至所述主机。本发明实施例公开的一种FPGA异构加速计算装置中FPGA芯片包括实现SVD算法的SVD计算电路,由此,能够由该装置中的FPGA芯片对主机通过通信接口发送的待计算数据进行计算并返回计算结果。与现有技术相比,本发明基于FPGA芯片实现与SVD算法对应的SVD计算,也即实现基于FPGA异构计算平台的SVD计算,而FPGA异构计算平台具有高速计算的特性,因此,基于该平台实现SVD计算能够大大增加SVD计算的速度,进而提高SVD计算的计算性能,以满足日益增长的数据处理需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种FPGA异构加速计算装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种FPGA异构加速计算装置的结构示意图,可以包括FPGA芯片12及通信接口11,FPGA芯片12包括用于实现SVD算法的SVD计算电路;其中:
通信接口11,用于与主机连接并与主机进行数据通信;
FPGA芯片12,用于获取主机通过通信接口11发送的待计算数据,并利用SVD计算电路对待计算数据进行计算得到对应计算结果后,将计算结果通过通信接口11返回至主机。
大数据场景下SVD算法主要包括格拉姆矩阵与向量乘操作模块、对称矩阵特征值求解模块及迭代控制模块等,其中格拉姆矩阵与向量乘操作模块采用向量求和点积操作、矩阵向量乘加操作和多向量求和操作作为主要操作子模块;而SVD计算电路即为用于实现SVD算法的电路,可以采用现有技术中任一对应技术方案实现,在此不做具体限定。FPGA(现场可编程门阵列)芯片中设置有SVD计算电路,由此,FPGA芯片可以利用该SVD计算电路实现对应的SVD计算。具体来说,主机将待计算数据通过通信接口发送至FPGA芯片,FPGA芯片利用SVD计算电路对该待计算数据进行SVD计算后,将所得的计算结果通过通信结果返回主机,从而实现待计算数据的SVD计算。
本发明实施例公开的一种FPGA异构加速计算装置中FPGA芯片包括实现SVD算法的SVD计算电路,由此,能够由该装置中的FPGA芯片对主机通过通信接口发送的待计算数据进行计算并返回计算结果。与现有技术相比,本发明基于FPGA芯片实现SVD计算,也即实现基于FPGA异构计算平台的SVD计算,而FPGA异构计算平台具有高速计算的特性,因此,基于该平台实现SVD计算能够大大增加SVD计算的速度,进而提高SVD计算的计算性能,以满足日益增长的数据处理需求,提供实时性更优的大数据处理服务。
本发明实施例提供的一种FPGA异构加速计算装置,FPGA异构加速计算装置具体可以为扩展板卡。
本申请中将FPGA异构加速计算装置设置成基于FPGA的主机扩展板卡设计,便于在需要该装置时使其快速实现与主机的连接,当然也便于在不需要该装置时使其快速实现与主机的断开,大大提高了其便利性。
本发明实施例提供的一种FPGA异构加速计算装置,通信接口具体可以为PCIe接口。
本申请中通信接口可以采用PCIe(PCIExpress)接口实现,PCIe接口采用点对点串行连接,可以把数据传输率提高到一个很高的频率,达到高带宽。
对应上述硬件接口,本发明实施例中实现对FPGA异构加速计算装置中SVD算法的调用是基于软件接口实现的,主机可以通过该软件接口实现SVD算法的调用,且该软件接口对上层透明,使得用户无需关心底层实现。
本发明实施例提供的一种FPGA异构加速计算装置,还可以包括存储器,存储器用于存储待计算数据供FPGA芯片获取,以及用于存储计算结果供主机获取。
具体来说,如果待计算数据多于SVD计算电路所能计算的数据量,则将待计算数据存储至存储器中,FPGA芯片每次均由存储器中取出与SVD计算电路所能计算的数据量对应的待计算数据进行计算,并将每次计算所得计算结果存储至存储器中,直至全部待计算数据被计算完毕后,将所得的全部计算结果发送至主机,或者由主机进行主动获取等,均在本发明的保护范围之内。
本发明实施例提供的一种FPGA异构加速计算装置,存储器具体可以为DDR存储器。
存储器包括DDR(Double Data Rate,双倍速率同步动态随机存储器)存储器,该存储器能够实现高速率的数据读写,保证了数据处理的实时性。具体来说DDR存储器可以包括DDR3/DDR4存储器,当然也可以根据实际需要进行其他设定,均在本发明的保护范围之内。
本发明实施例还提供了一种FPGA异构加速计算系统,可以包括主机及如上述任一项的FPGA异构加速计算装置,FPGA异构加速计算装置通过其包括的通信接口与主机连接。
本发明实施例提供的一种FPGA异构加速计算系统具有与上述实施例提供的一种FPGA异构加速计算装置对应的有益效果,在此不再赘述。
本发明实施例提供的一种FPGA异构加速计算系统,主机可以包括数据处理服务器,数据处理服务器用于将其计算要求大于预设要求的待计算数据发送至FPGA异构加速计算装置。
具体来说,预设要求可以根据实际需要进行确定,如设定的具体计算性能值等,由此,将计算要求较高的待计算数据由FPGA异构加速计算装置进行加速计算,计算要求较低的待计算数据由主机进行计算,能够更合理的实现对FPGA异构加速计算装置能够实现的高速计算性能的应用。
另外,在处理不同维度矩阵输入(即待计算数据)时,本发明动态调用针对不同维度、不同规模和精度矩阵相对应的硬件处理核心进行计算,实现对单精度浮点、半精度浮点、定点等不同精度要求下的按需选择;在满足精度要求下,实现性能最优化。且本申请公开的上述技术方案可以基于Spark平台实现,当然还可以根据实际需要进行其他设定,均在本发明的保护范围之内。
本实施例以大数据处理集群中的奇异值分解实现为例,说明基于FPGA异构平台加速的SVD算法实现过程,其中数据处理服务器代表主机,各步骤如下:
Spark机器学习应用启动:预先设计好的Spark机器学习应用即奇异值分解算法在Spark集群中启动,通过任务分发机制,将待处理数据和对应算法分发至各个数据处理服务器。
待处理数据传送:数据处理服务器将获得的计算要求较高的待处理数据及对应算法根据数据量发送至FPGA异构加速计算装置的存储器中。
FPGA异构加速计算装置执行算法:FPGA异构加速计算装置通过迭代的方式逐次获取存储器中的待处理数据,并进行计算,然后将这部分的计算结果暂存于处理器中,依以上步骤反复执行,直至所有数据均已计算完毕。
计算结果返回:待本批次数据处理完毕,将全部计算结果返回给数据处理服务器;如果数据处理服务器还有数据待处理,进行下一批次数据的计算。直至数据处理服务器的本任务内所有数据均被处理完毕。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (5)
1.一种FPGA异构加速计算装置,其特征在于,包括FPGA芯片及通信接口,所述FPGA芯片包括用于实现SVD算法的SVD计算电路;其中:
所述通信接口,用于与主机连接并与所述主机进行数据通信;
所述FPGA芯片,用于获取所述主机通过所述通信接口发送的待计算数据,并利用所述SVD计算电路对所述待计算数据进行计算得到对应计算结果后,将所述计算结果通过所述通信接口返回至所述主机;其中,所述FPGA芯片利用所述SVD计算电路对所述待计算数据进行计算时具体包括在处理不同维度矩阵的待计算数据时,动态调用针对不同维度、不同规模和精度矩阵相对应的硬件处理核心对所述待计算数据进行计算;所述主机通过所述通信接口发送的待计算数据为其计算要求大于预设要求的待计算数据;
所述装置还包括存储器,所述存储器用于存储所述待计算数据供所述FPGA芯片获取,以及用于存储所述计算结果供所述主机获取。
2.根据权利要求1所述的装置,其特征在于,所述FPGA异构加速计算装置具体为扩展板卡。
3.根据权利要求2所述的装置,其特征在于,所述通信接口具体为PCIe接口。
4.根据权利要求3所述的装置,其特征在于,所述存储器具体为DDR存储器。
5.一种FPGA异构加速计算系统,其特征在于,包括主机及如权利要求1至4任一项所述的FPGA异构加速计算装置,所述FPGA异构加速计算装置通过其包括的通信接口与所述主机连接;
所述主机包括数据处理服务器,所述数据处理服务器用于将其计算要求大于预设要求的待计算数据发送至所述FPGA异构加速计算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611085794.1A CN106528490B (zh) | 2016-11-30 | 2016-11-30 | 一种fpga异构加速计算装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611085794.1A CN106528490B (zh) | 2016-11-30 | 2016-11-30 | 一种fpga异构加速计算装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106528490A CN106528490A (zh) | 2017-03-22 |
CN106528490B true CN106528490B (zh) | 2020-02-07 |
Family
ID=58353822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611085794.1A Active CN106528490B (zh) | 2016-11-30 | 2016-11-30 | 一种fpga异构加速计算装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106528490B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106970894A (zh) * | 2017-04-20 | 2017-07-21 | 广东浪潮大数据研究有限公司 | 一种基于Arria10的FPGA异构加速卡 |
CN107506173A (zh) * | 2017-08-30 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种奇异值分解运算的加速方法、装置及系统 |
CN107632957A (zh) * | 2017-09-11 | 2018-01-26 | 南京弹跳力信息技术有限公司 | 一种基于大规模fpga芯片的计算加速系统及其加速方法 |
CN109240978B (zh) * | 2018-09-21 | 2021-10-22 | 郑州云海信息技术有限公司 | 一种搭建加速平台的fpga系统、设备及加速平台 |
CN116382617B (zh) * | 2023-06-07 | 2023-08-29 | 之江实验室 | 基于fpga的带并行排序功能的奇异值分解加速器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105956666A (zh) * | 2016-04-29 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 一种机器学习方法及系统 |
CN106020425A (zh) * | 2016-05-27 | 2016-10-12 | 浪潮(北京)电子信息产业有限公司 | 一种fpga异构加速计算系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8131659B2 (en) * | 2008-09-25 | 2012-03-06 | Microsoft Corporation | Field-programmable gate array based accelerator system |
-
2016
- 2016-11-30 CN CN201611085794.1A patent/CN106528490B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105956666A (zh) * | 2016-04-29 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 一种机器学习方法及系统 |
CN106020425A (zh) * | 2016-05-27 | 2016-10-12 | 浪潮(北京)电子信息产业有限公司 | 一种fpga异构加速计算系统 |
Non-Patent Citations (2)
Title |
---|
基于FPGA的复数长方阵SVD算法;阎波等;《电子科技大学学报》;20150730;第481-486页 * |
基于FPGA的大矩阵奇异值分解的实现;许乔;《电子测量技术》;20140615;第68-71页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106528490A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106528490B (zh) | 一种fpga异构加速计算装置及系统 | |
US11507370B2 (en) | Method and device for dynamically adjusting decimal point positions in neural network computations | |
US11106598B2 (en) | Computing device and method | |
CN112214726B (zh) | 运算加速器 | |
US20230026006A1 (en) | Convolution computation engine, artificial intelligence chip, and data processing method | |
EP3651073B1 (en) | Computation device and method | |
CN112633490B (zh) | 执行神经网络模型的数据处理装置、方法及相关产品 | |
WO2021083101A1 (zh) | 数据处理方法、装置及相关产品 | |
US20200050924A1 (en) | Data Processing Method and Apparatus for Neural Network | |
US20200242468A1 (en) | Neural network computation device, neural network computation method and related products | |
US11775808B2 (en) | Neural network computation device and method | |
CN109711540B (zh) | 一种计算装置及板卡 | |
WO2023221415A1 (zh) | 骨干网络的生成方法、装置、设备以及存储介质 | |
CN111382847A (zh) | 数据处理装置及相关产品 | |
CN113469333B (zh) | 执行神经网络模型的人工智能处理器、方法及相关产品 | |
CN115146226A (zh) | 基于张量压缩方法的流数据处理方法、装置及设备 | |
CN111382852B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN111382856B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN113807489B (zh) | 用于执行反卷积操作的方法、板卡及其计算装置 | |
US20240086719A1 (en) | Sparse encoding and decoding at mixture-of-experts layer | |
CN115221463A (zh) | 进行Winograd卷积的方法、可读存储介质及装置 | |
CN111047027A (zh) | 运算方法、装置及相关产品 | |
CN116152614A (zh) | 特征提取方法、装置、计算机设备及计算机可读存储介质 | |
CN112257323A (zh) | 基于电磁暂态并行计算的自动分网方法、装置及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |