一种FPGA异构加速计算装置及系统的制作方法

文档序号:12120837阅读:468来源:国知局

本发明涉及大数据计算技术领域,更具体地说,涉及一种FPGA异构加速计算装置及系统。



背景技术:

Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架,能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法,可用来构建大型的、低延迟的数据分析应用程序。

其中,MLlib是Spark的机器学习库,奇异值分解(Singular Value Decomposition,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异构加速计算装置通过迭代的方式逐次获取存储器中的待处理数据,并进行计算,然后将这部分的计算结果暂存于处理器中,依以上步骤反复执行,直至所有数据均已计算完毕。

计算结果返回:待本批次数据处理完毕,将全部计算结果返回给数据处理服务器;如果数据处理服务器还有数据待处理,进行下一批次数据的计算。直至数据处理服务器的本任务内所有数据均被处理完毕。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1