当前位置: 首页 > 专利查询>北京大学专利>正文

基于FPGA-CPU异构环境的大规模数据查询加速装置及方法制造方法及图纸

技术编号:23764815 阅读:101 留言:0更新日期:2020-04-11 19:16
本发明专利技术公布了一种基于FPGA‑CPU异构环境用于图数据库的大规模数据查询加速方法及其在FPGA上的实现装置,将待查询处理的大规模数据表示为资源描述框架RDF格式的大规模图数据集,基于FPGA‑CPU异构环境实现查询加速,解决在大规模数据集上对数据进行快速的查询的问题,加速图数据库查询,可广泛应用于基于图数据处理的应用技术领域。将该方法应用于自然语言问答智能查询中。实施表明,采用本发明专利技术方法,查询加速比例在两倍以上,可达到十倍加速,可以更好地满足对响应时间要求较高的应用需求。

Large scale data query acceleration device and method based on FPGA-CPU heterogeneous environment

【技术实现步骤摘要】
基于FPGA-CPU异构环境的大规模数据查询加速装置及方法
本专利技术属于信息搜索查询
,涉及大规模数据搜索加速技术,尤其涉及一种基于FPGA-CPU异构环境的大规模数据查询加速方法及其在FPGA上的实现装置。
技术介绍
在大规模数据检索与查询中,图数据库是一个使用图结构进行语义查询的数据库,它使用节点、边和属性来表示和存储数据。该系统的关键概念是图,它直接将存储中的数据项,与数据节点和节点间表示关系的边的集合相关联。这些关系使得存储单元中的数据链接在一起,并且可以通过特定的规范化的操作和查询语言进行检索。图数据库中最重要的内容是数据之间的关系,它们永久存储在数据库本身中,查询图数据库中的实体关联关系的速度是评价图数据库性能的主要因素。用户可以使用图数据库直观地显示实体的关联关系,对于处理高度互连的数据不可或缺。诸如电力网络等一系列在现实生活中体现实体之间关系的具有重要意义的数据,对通过图数据库对这些数据进行快速而高效的检索、增删和分析处理。从图数据库中检索数据需要SQL之外的查询语言,SQL是为了处理关系系统中的数据而设计的,因本文档来自技高网...

【技术保护点】
1.一种基于FPGA-CPU异构环境的大规模数据查询加速方法,将待查询处理的大规模数据表示为资源描述框架RDF格式的大规模图数据集,基于FPGA-CPU异构环境实现查询加速;包括如下步骤:/n1)将待查询处理的大规模数据识别为多个要素,包括:实体、实体属性及关系;将实体相应表示为RDF格式中的节点,实体固有的属性表示为RDF格式中的节点的属性,实体和实体之间的关系以及实体和属性的关系表示为RDF格式中的边;RDF格式数据由节点和边组成,图中一条边的源点为主语,边上的标签为谓词,被指向的节点为宾语;/n对以RDF格式表示的大规模数据进行数据预处理,执行如下操作:/n11)将大规模图数据集中的图数...

【技术特征摘要】
1.一种基于FPGA-CPU异构环境的大规模数据查询加速方法,将待查询处理的大规模数据表示为资源描述框架RDF格式的大规模图数据集,基于FPGA-CPU异构环境实现查询加速;包括如下步骤:
1)将待查询处理的大规模数据识别为多个要素,包括:实体、实体属性及关系;将实体相应表示为RDF格式中的节点,实体固有的属性表示为RDF格式中的节点的属性,实体和实体之间的关系以及实体和属性的关系表示为RDF格式中的边;RDF格式数据由节点和边组成,图中一条边的源点为主语,边上的标签为谓词,被指向的节点为宾语;
对以RDF格式表示的大规模数据进行数据预处理,执行如下操作:
11)将大规模图数据集中的图数据按照谓词划分成多个子图,将每个子图数据的邻接矩阵使用优化存储消耗后的CSR格式进行存储;所述邻接矩阵为将所有节点的邻接列表按一定顺序排列构成的二维列表;邻接列表为图中任意节点链接的所有节点的列表;图采用CSR存储格式或CSC存储格式;
12)对每个CSR格式图数据中的邻接列表,使用块编号与二进制段方法BID&BS方法进行压缩,得到压缩后的CSR格式数据;执行如下操作:
121)用二进制串来表示正整数数组,所述正整数数组为CSR中的邻接表,串中的元素取值为0或1,数组中元素是节点的编号;
122)将二进制串划分为多个长度一致的块,每一个块设置同一长度的唯一的编号BlockID;当块内的二进制串均为0,则直接丢弃;
123)当对两个由多个块构成的集合取交集时,首先匹配块编号,对块编号一致的两个块,按位取交,得到交集结果;
2)将预处理得到的CSR格式数据写入FPGA端的存储单元上,得到不同谓词对应的子图被压缩成CSR格式的邻接列表在FPGA端存储单元的物理地址;
3)当用户进行查询时,执行如下操作:
31)对用户查询进行解析后,根据图中数据,得到候选点表数据;
32)通过CPU控制单元将候选点表数据及FPGA端计算单元在运算过程中的控制信号传输给FPGA端的计算单元进行表连接计算计算并优化;执行如下操作:
321)通过分割数据,将数据放到不同的动态随机存取存储器DRAM内存单元端口,提高FPGA硬件上对内存单元的并行访问效率;
322)利用FPGA硬件上的高速片上随机存取存储器BRAM单元,设置数据缓冲区;
323)基于FPGA硬件构建数据读取、计算、写回的三级流水线,在每个计算和读取操作中设置并行处理模块;
33)FPGA端的计算单元完成计算以后,将结果传回给CPU端控制单元,CPU端生成编号结果,再转化成对应的字符串结果,即为输出给用户的查询结果。


2.如权利要求1所述的基于FPGA-CPU异构环境的大规模数据查询加速方法,其特征是,步骤31)中,具体对大规模图数据集gStore使用SPARQL查询中各个变量的度数和边上的标签对各个变量可能的取值进行过滤解析,得到所述候选点表数据。


3.如权利要求1所述的基于FPGA-CPU异构环境的大规模数据查询加速方法,其特征是,步骤32)中,控制信号包括控制FPGA端计算单元开始计算的信号、CSR格式数据在FPGA端存储单元上的硬件地址和辅助信息。


4.如权利要求1所述的基于FPGA-CPU异构环境的大规模数据查询加速方法,其特征是,步骤33)具体包括如下操作:
331)FPGA端计算单元有序处理表的连接操作;CPU控制单元接受FPGA端计算单元返回的结果,返回结果的形式由多个节点ID和一个BID&BS块构成的一个元组;CPU端控制单元同时控制多个FPGA端计算单元;
332)CPU端控制单元将每个FPGA端计算单元的结果转化成连接操作的最...

【专利技术属性】
技术研发人员:邹磊林殷年苏勋斌
申请(专利权)人:北京大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1