本发明涉及大数据处理技术领域,特别是涉及一种FPGA异构加速计算装置。本发明还涉及一种FPGA异构加速计算系统。
背景技术:
Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架,能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法,可用来构建大型的、低延迟的数据分析应用程序。Spark作为计算框架,为上层多种应用提供服务。MLlib是Spark的机器学习库,是Spark的核心部件之一,MLlib机器学习的性能、功耗等等指标,不仅涉及大数据处理系统的价值,而且直接影响大数据处理平台的任务调度和管理以及数据吞吐率。GMM(Gaussian Mixture Model,高斯混合聚类)算法是大数据处理中的机器学习库中重要聚类算法,所以提GMM算法的实现速度有利于提高MLlib机器学习的性能。
现有技术中在进行大数据处理时主要是通过服务器(例如CPU)来实现GMM算法。一般情况下,CPU在处理数据时需要接收多条指令,并依次执行各条指令后才能完成对数据的处理,在处理大量数据时CPU就需要接收并执行更多的指令来完成对大量数据的处理,导致在通过CPU来实现GMM算法时实现有较低的性能极限。
因此,如何提供一种解决上述技术问题的FPGA异构加速计算装置及系统成为本领域的技术人员目前需要解决的问题。
技术实现要素:
本发明的目的是提供一种FPGA异构加速计算装置,在对大数据进行处理时可获得较高的性能,处理周期较短;本发明的另一目的是提供一种包括上述FPGA异构加速计算装置的系统,其在对大数据进行处理时处理可获得较高的性能,处理周期较短。
为解决上述技术问题,本发明提供了一种FPGA异构加速计算装置,所述装置包括FPGA芯片、接口及设置于所述FPGA芯片上的GMM计算电路,其中:
所述GMM计算电路,用于实现GMM算法;
所述FPGA芯片,用于启动后通过所述接口接收主机端发送的待处理数据,并通过所述GMM计算电路对所述待处理数据进行处理,得到处理结果,以便所述主机端通过所述接口获取所述处理结果。
优选的,所述装置还包括板载存储器,用于接收并缓存所述主机端发送的所述待处理数据;及用于存储所述处理结果;
则相应的所述FPGA芯片接收主机端发送的待处理数据的过程具体为:获取所述板载存储器中的所述待处理数据。
优选的,所述GMM计算电路包括:
对称矩阵秩1运算子电路,用于接收所述待处理数据,所述待处理数据为n个元素构成的向量,依据计算公式对所述待处理数据进行逻辑运算,得到本次迭代运算的权值,所述计算公式为A:=alpha*x*x**T+A,其中,alpha为给定实数标量;x为待处理数据,x**T为x的转置,A为n*n对称矩阵;还用于依据第一控制指令结束运算;
GMM权值更新子电路,用于将每一次迭代生成的新权值更新上一次迭代生成的权值;还用于依据第二控制指令结束更新;
迭代控制子电路,用于当运算满足预设条件时生成并发送所述第一控制指令和所述第二控制指令。
优选的,预设条件为运算次数达到第一预设值。
优选的,预设条件为运算得到的权值小于第二预设值。
优选的,所述板载存储器为DDR3存储器或DDR4存储器。
优选的,所述接口为PCIE接口。
优选的,如上述任意一项所述的FPGA异构加速计算装置,所述FPGA异构加速计算装置为扩展卡式设计的装置。
为解决上述技术问题,本发明提供了一种FPGA异构加速计算系统,所述系统包括主机端和如上述任意一项所述的FPGA异构加速计算装置,所述FPGA异构加速计算装置通过该装置中的接口与所述主机端连接。
优选的,所述主机端包括数据传输管理模块,用于获取待处理数据,并判断所述待处理数据是否已缓存在所述FPGA异构加速计算装置的板载存储器中,如果是,不发送所述待处理数据,否则,发送所述待处理数据。
优选的,所述判断所述待处理数据是否已缓存在所述FPGA异构加速计算装置的板载存储器中的过程具体为:
获取所述待处理数据的编号,并以判断所述编号是否已保存在所述数据库中,如果是,则所述待处理数据已缓存在所述FPGA异构加速计算装置的板载存储器中,否则,所述待处理数据未缓存在所述FPGA异构加速计算装置的板载存储器中。
本发明提供了一种FPGA异构加速计算装置及系统,包括FPGA芯片、接口及设置于FPGA芯片上的GMM计算电路;GMM计算电路,用于实现GMM算法;FPGA芯片,用于启动后通过接口接收主机端发送的待处理数据,并通过GMM计算电路对待处理数据进行处理,得到处理结果;接口,还用于主机端通过该接口获取处理结果。本发明将FPGA芯片与实现GMM算法的GMM计算电路相结合,FPGA芯片在接收主机端发送的待处理数据后通过GMM计算电路来实现对待处理数据的处理,能够加快对数据的处理速度,尤其对大数据进行处理时处理可获得较高的性能,处理周期较短。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种FPGA异构加速计算装置的结构示意图。
具体实施方式
本发明的核心是提供一种FPGA异构加速计算装置,在对大数据进行处理时处理可获得较高的性能,处理周期较短;本发明的另一核心是提供一种包括上述FPGA异构加速计算装置的系统,其在对大数据进行处理时处理可获得较高的性能,处理周期较短。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明提供的一种FPGA异构加速计算装置的结构示意图。
该装置包括FPGA芯片1、接口2及设置于FPGA芯片1上的GMM计算电路11,其中:
GMM计算电路11,用于实现GMM算法;
FPGA芯片1,用于启动后通过接口2接收主机端发送的待处理数据,并通过GMM计算电路11对待处理数据进行处理,得到处理结果,以便主机端通过接口2获取处理结果。
简单来说,本申请所提供的FPGA异构加速计算装置通过接口2(硬件接口)与主机端连接,并接收主机端发送待处理数据,对待处理数据进行处理得到处理结果,主机端通过该装置中的接口2获取处理结果。具体的,FPGA异构加速计算装置中的FPGA芯片1为该装置的核心计算部件,FPGA芯片1上设置有GMM计算电路11,通过GMM计算电路11能实现GMM算法。需要说明的是,该电路的电路连接形式可以在设置时进行预先设定。
作为优选的,接口2为PCIE接口。
需要说明的是,该接口2还可以选用其他类型的接口,本发明在此不做特殊的限定,能实现本发明的目的即可。
作为优选的,该装置还包括板载存储器3,用于接收并缓存主机端发送的待处理数据;及用于存储处理结果;
则相应的FPGA芯片1接收主机端发送的待处理数据的过程具体为:获取板载存储器3中的待处理数据。
需要说明的是,FPGA异构加速计算装置中还包括板载存储器3,该存储器将接收到的主机端发送的待处理数据进行缓存,以便FPGA芯片1在进行数据处理时直接从板载存储器3中获取待处理数据,以节省时间。当然,数据处理完毕后FPGA芯片1将处理结果发送至板载存储器3中进行保存,当主机端需要获取处理结果时即可从板载存储器3中进行获取。
具体的,主机端可以定时通过接口2从板载存储器3中获取处理结果,还可以在接收到FPGA芯片1发送的结束指令后主机端通过接口2从板载存储器3中获取处理结果,当然还可以在其他条件下获取处理结果,本发明在此不做特殊的限定,能实现本发明的目的即可。
作为优选的,板载存储器3为DDR3存储器或DDR4存储器。
当然,板载存储器3不仅限于上述两种存储器,还可以选用其他类型的存储器,本发明在此不做特殊的限定,能实现本发明的目的即可。
作为优选的,GMM计算电路11包括:
对称矩阵秩1运算子电路111,用于接收待处理数据,待处理数据为n个元素构成的向量,依据计算公式对待处理数据进行逻辑运算,得到本次迭代运算的权值,计算公式为A:=alpha*x*x**T+A,其中,alpha为给定实数标量;x为待处理数据,x**T为x的转置,A为n*n对称矩阵;还用于依据第一控制指令结束运算;
GMM权值更新子电路112,用于将每一次迭代生成的新权值更新上一次迭代生成的权值;还用于依据第二控制指令结束更新;
迭代控制子电路113,用于当运算满足预设条件时生成并发送第一控制指令和第二控制指令。
作为优选的,预设条件为运算次数达到第一预设值。
需要说明的是,迭代控制子电路113主要是根据预设条件进行判断是否结束运算,当运算次数达到第一预设值时,迭代控制子电路113生成相应的第一控制指令来控制对称矩阵秩1运算子电路111结束运算,生成相应的第二控制指令来控制GMM权值更新子电路112结束权值更新的动作;这里的第一预设值可以人为进行设定,其具体数值根据实际情况和需求来定。
作为优选的,预设条件为运算得到的权值小于第二预设值。
具体的,迭代控制子电路113除了可以依据运算次数是否达到第一预设值来判断是否结束运算之外还可以通过根据运算得到的权值是否小于第二预设值来判断是否结束运算,即当运算得到的权值小于第二预设值时,迭代控制子电路113生成相应的第一控制指令来控制对称矩阵秩1运算子电路111结束运算,生成相应的第二控制指令来控制GMM权值更新子电路112结束权值更新的动作;这里的第二预设值为似然度,是GMM算法既定的一个参数。
作为优选的,如上述所述的FPGA异构加速计算装置,FPGA异构加速计算装置为扩展卡式设计的装置。
需要说明的是,FPGA异构加速计算装置的设计形式主要采用扩展卡式的设计,还可以采用一体化式设计,例如与其他的芯片集成在一起。当然也可以是其他设计形式的装置,本发明在此不做特殊限定,能实现本发明的目的即可。
本发明提供了一种FPGA异构加速计算装置,包括FPGA芯片、接口及设置于FPGA芯片上的GMM计算电路,其中:GMM计算电路,用于实现GMM算法;FPGA芯片,用于启动后通过接口接收主机端发送的待处理数据,并通过GMM计算电路对待处理数据进行处理,得到处理结果,以便主机端通过接口获取处理结果。本发明将FPGA芯片与实现GMM算法的GMM计算电路相结合,FPGA芯片在接收主机端发送的待处理数据后通过GMM计算电路来实现对待处理数据的处理,能够加快对数据的处理速度,尤其对大数据进行处理时处理可获得较高的性能,处理周期较短。
与上述装置实施例相对应的,本发明提供了一种FPGA异构加速计算系统,系统包括主机端和如上述实施例所述的FPGA异构加速计算装置,FPGA异构加速计算装置通过该装置中的接口2与主机端连接。
本发明所提供的FPGA异构加速计算系统在实现GMM算法时所采用的方法与上述FPGA异构加速计算装置所采用的方法相同,具体可以参照上述对FPGA异构加速计算装置的详细说明,本发明在此不再赘述。
作为优选的,主机端包括数据传输管理模块,用于获取待处理数据,并判断待处理数据是否已缓存在FPGA异构加速计算装置的板载存储器3中,如果是,不发送待处理数据,否则,发送待处理数据。
需要说明的是,主机端的数据传输管理模块在接收到上层应用发送的指令后获取待处理数据,并将待处理数据通过FPGA异构加速计算装置中的用于与主机端连接的接口2发送至FPGA异构加速计算装置的板载存储器3中,以便FPGA芯片1行获取待处理数据并对待处理数据进行处理。当数据处理结束后数据传输管理模块还用于获取处理结果,并将该处理结果返回至相应的上层应用。
此外,因为板载存储器3的内存容量有限,而通过GMM算法对待处理数据进行数据处理时需要多次迭代计算,为了避免相同的数据的重复传输,数据传输管理模块还可以对待处理数据是否在板载存储器3中进行了缓存进行判断,当板载存储器3中已缓存了该待处理数据,则不需要再次发送,当板载存储器3为对待处理数据进行缓存时再发送该待处理数据,以便节省存储空间。
作为优选的,判断待处理数据是否已缓存在FPGA异构加速计算装置的板载存储器3中的过程具体为:
获取待处理数据的编号,并以判断编号是否已保存在数据库中,如果是,则待处理数据已缓存在FPGA异构加速计算装置的板载存储器3中,否则,待处理数据未缓存在FPGA异构加速计算装置的板载存储器3中。
需要说明的是,待处理数据的编号与待处理数据是一一对应的关系,并且数据传输管理模块每发送一个待处理数据就会将所发送的待处理数据的编号保存至自身的数据库中,因此只需判断数据库中是否有当前要发送的待处理数据的编号即可得知该待处理数据是否已在板载存储器3中缓存,如果该数据库中保存了待处理数据的编号则不再发生该待处理数据,如果该待处理数据的编号没有保存在数据库中则将该待处理数据发送并将该待处理数据的编号保存在该数据库中。
当然,除了上述判断方法之外还可以采用其他的判断方法来判断板载存储器3是否已缓存待处理数据,本发明在此不做特殊的限定,能实现本发明的目的即可。
需要说明的是,主机端用于实现数据传输管理模块通过一个软件接口实现与上层应用之间的信息交互。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。