一种基于FPGA的国产平台数据库加速系统及方法与流程

文档序号:17641348发布日期:2019-05-11 00:41阅读:1366来源:国知局
一种基于FPGA的国产平台数据库加速系统及方法与流程

本发明涉及数据库加速技术领域,具体涉及一种基于fpga的国产平台数据库加速系统及方法。



背景技术:

cpu内核的计算过程需要大量数据,而片外ddr不仅带宽有限,还具有较长的访问延迟。片上缓存虽然可以一定程度上缓解这一问题,但容量极为有限。intel通过数据预读、乱序执行、超线程等大量技术,解决带宽瓶颈,尽可能跑满cpu,但复杂的调度设计和缓存占用了大量的cpu硅片面积,使真正用来做运算的逻辑,所占面积甚至不到1%。同时,保证程序对之前产品兼容性的约束,在一定程度上制约了cpu构架的演进。

相比于cpu面对的通用多任务计算,目前出现的深度学习、数据分析具有以下特点:任务单一,计算密度大,较高的数据可复用率。对计算构架的要求在于大规模的计算逻辑和数据带宽,而不在于复杂的任务调度,因此在cpu上并不能跑出较好的性能。

fpga在运营成本方面有着绝对的优势,可以根据用户的需求重新配置,适合数据并行和流水并行。fpga的功耗和延时低,io接口丰富,适合进行协议和接口转换。cpu功耗高,cpu只能做数据并行,不能做流水并行。自主cpu性能有限,不支持通用计算,无法做异构处理。国外cpu驱动不开放,无法在自主平台上支持高性能的cpu。



技术实现要素:

为了克服上述现有技术中的不足,本发明提供一种基于fpga的国产平台数据库加速系统及方法,以解决上述技术问题。

本发明的技术方案是:

一种基于fpga的国产平台数据库加速系统,包括主机和与主机连接的fpga板卡,所述的主机包括cpu、pcie驱动、host程序;

fpga板卡通过pcie接口与cpu连接;

pcie驱动程序,用于建立cpu和fpga间的数据传输通路;

host程序,用于负责操作分析和分配,使cpu将计算密集型任务卸载给fpga去执行;

fpga芯片,用于将cpu卸载给的计算密集型任务进行执行操作;

所述的主机还包括kernel.lib模块、运行支持库;

kernel.lib模块,用于利用运行支持库实现并行加速功能文件和算法的下发。

优选地,计算密集型任务包括数据库中连接、排序、分组、聚合操作。

优选地,fpga芯片包括动态重构逻辑模块和静态重构逻辑模块;

静态重构逻辑模块,用于负责配合主机上的pcie驱动建立cpu和fpga芯片间数据传输通路;

动态重构逻辑模块,用于对卸载到fpga的操作执行kernel.lib模块下发的并行加速算法进行加速。

优选地,静态重构逻辑模块,用于针对建立cpu和fpga芯片间数据传输通路的操作在fpga上实现具体的加速算法;

静态重构逻辑模块还设有配置文件。

优选地,所述主机还连接有存储器和主机内存;

所述的fpga板卡还设有pcie控制器、内存控制器和srio串口;

pcie控制器与pcie接口连接;

内存控制器连接有板卡内存。所述板卡内存用于存储通过建立的数据通过复制到fpga的数据,数据依据kernel.lib下发的加速算法进行加速。

优选地,主机上的cpu与fpga板卡通过pcie3.0进行物理连接。

优选地,cpu和fpga之间通过dma实现高速的数据传输。cpu还连接有dma控制器,cpu只须向dma控制器下达指令,让dma控制器来处理数的传送,数据传送完毕再把信息反馈给cpu,这样就很大程度上减轻了cpu资源占有率。

本发明技术方案还提供一种基于fpga的国产平台数据库加速方法,包括如下步骤:

fpga加载静态重构逻辑模块配置文件,与pcie驱动配合建立cpu和fpga之间的数据传输通路;

主机host程序获取平台、设备信息;

主机host程序根据获取的信息建立运行上下文;

将建立的运行上下文的数据复制到板卡内存中;

kernel.lib模块中的文件下发到fpga中的动态可重构逻辑模块中,同时板卡内存中的数据进入动态可重构逻辑模块中,数据依据kernel.lib模块下发的加速算法进行加速。

优选地,步骤将建立的运行上下文的数据复制到板卡内存中具体包括:

复制建立的运行上下文的数据通过建立的数据通路将数据复制到板卡的内存中。

优选地,该方法还包括:

重构逻辑中所有逻辑单元执行后,将数据汇总通过pcie通路,将结果返回主机host程序进行统一输出。

从以上技术方案可以看出,本发明具有以下优点:本专利利用fpga实现了国产平台下(龙芯、申威、飞腾)国产数据库的异构加速,可以有效提高单节点下数据库的执行效率。可以广泛应用于数据中心、边缘计算中的数据库服务中。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。

附图说明

图1为fpga数据库加速系统结构示意图;

图2为fpga数据库加速示意图;

图3为fpga数据库加速执行示意图。

具体实施方式

本发明提供一种基于fpga的国产平台数据库加速系统及方法,通过主机上的cpu与fpga板卡使用pcie3.0进行物理连接,通过dma的方式完成cpu和fpga之间的高速的数据传输。首先配置静态逻辑,建立fpga与cpu的数据通路pcie。pcie完成目标应用在线切换,动态重构逻辑对数据库操作中的连接、排序、分组、聚合(工作负载密集型操作)等进行fpga加速。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

实施例一

如图1-2所示,一种基于fpga的国产平台数据库加速系统,包括主机和与主机连接的fpga板卡,所述的主机包括cpu、pcie驱动、host程序;

fpga板卡通过pcie接口与cpu连接;

pcie驱动程序,用于建立cpu和fpga间的数据传输通路;

host程序,用于负责操作分析和分配,使cpu将计算密集型任务卸载给fpga去执行;

fpga芯片,用于将cpu卸载给的计算密集型任务进行执行操作;

所述的主机还包括kernel.lib模块、运行支持库;

kernel.lib模块,用于利用运行支持库实现并行加速功能文件和算法的下发。

pcie驱动程序负责建立cpu和fpga间的数据传输通路。host程序主要是负责操作分析和分配,负责将数据库中连接、排序、分组、聚合等操作剥离出来,offload给fpga。kernel.lib主要是利用opencl运行支持库实现并行加速功能和算法。

fpga主要包括fpga动态重构逻辑、静态重构逻辑。静态重构逻辑负责配合主机上的pcie驱动建立cpu和fpga间数据传输通路。主要是针对以上操作实现具体的加速算法,在fpga上执行。动态重构逻辑中的每个逻辑单元对offload到fpga执行kernel.lib下发到并行加速算法;静态重构逻辑模块还设有配置文件。

所述主机还连接有存储器和主机内存;

所述的fpga还设有pcie控制器、内存控制器和srio串口;

pcie控制器与pcie接口连接;

内存控制器连接有板卡内存。所述板卡内存用于存储通过建立的数据通过复制到fpga的数据,数据依据kernel.lib下发的加速算法进行加速。

主机上的cpu与fpga板卡通过pcie3.0进行物理连接。

cpu和fpga之间通过dma实现高速的数据传输。cpu还连接有dma控制器,cpu只须向dma控制器下达指令,让dma控制器来处理数的传送,数据传送完毕再把信息反馈给cpu,这样就很大程度上减轻了cpu资源占有率。

主机上的cpu与fpga板卡使用pcie3.0进行物理连接,通过dma的方式完成cpu和fpga之间的高速的数据传输。首先配置静态逻辑,建立fpga与cpu的数据通路pcie。pcie完成目标应用在线切换,动态重构逻辑对数据库操作中的连接、排序、分组、聚合(工作负载密集型操作)等进行fpga加速。

实施例二

如图3所示,本发明实施例提供一种基于fpga的国产平台数据库加速方法,包括如下步骤:

s1:fpga加载静态重构逻辑模块配置文件,与pcie驱动配合建立cpu和fpga之间的数据传输通路;

s2:主机host程序获取平台、设备信息;

s3:主机host程序根据获取的信息建立运行上下文;

s4:将建立的运行上下文的数据复制到板卡内存中;本步骤中,数据通过步骤s1中建立的数据通路将数据复制到板卡的内存中。

s5:kernel.lib模块中的文件下发到fpga中的动态可重构逻辑模块中,同时板卡内存中的数据进入动态可重构逻辑模块中,数据依据kernel.lib模块下发的加速算法进行加速。

该方法还包括:

s6:重构逻辑中所有逻辑单元执行后,将数据汇总通过pcie通路,将结果返回主机host程序进行统一输出。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。

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

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