0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA加速图数据库查询执行

OSC开源社区 来源:OSCHINA 社区 2023-02-23 10:22 次阅读

来源 | OSCHINA 社区

作者 | KaiwuDB

导读

本篇博客主要讲解发布于 Microprocessors and Microsystems 的文章《Semi-static Operator Graphs for Accelerated Query Execution on FPGAs》,介绍它所提出的算法与试验结果,并结合实际情况给出一些思考。

一、背景介绍

在当今的数据化场景越来越丰富的大环境下,涌现出的非结构化数据存储分析被应用于多数领域。 为了使机器能够自动分析数据,语义网络的概念被创建,元数据被用来描述和链接任何类型的数据和资源。

面对存储和处理大规模的数据,除了不断被优化的数据结构外,硬件也是需要被极大优化的。 海量数据的持续存储在当今硬件环境下是没有问题的,但是要实现在一个可以被接受的、被允许的时间范围内进行处理和分析则变得愈发艰难。

因此,许多数据库系统逐渐倾向于异构,由专门的计算内核来有效地执行特定的任务。

那么不得不提的,便是高性能计算常用到的 GPU (图形处理器)。 GPU 最突出的优点是高性能,即高密度运算和高效并行性,非常适合处理计算密集型的任务; 同时,其易于连接到处理器端的属性也是它可以被广泛应用的原因。 然而,其缺点也是显而易见的,就是高功耗。

在 GPU 之外,还存在为特定任务设计的专有硬件加速器,其对于指定的任务拥有较高的性能,但是其使用非常的不灵活,只能处理特定的任务,重新扩展的性能几乎为零。

最后,则是最近被广泛使用的 FPGA,它具有动态部分重配置的能力,可以缩小 CPU 的灵活性和专用硬件加速器的性能之间的差距,并且还拥有低功耗、高并发的优势。

a6a86fde-b2e3-11ed-bfe3-dac502259ad0.png

FPGA 卡的核心部分示意图

如上图所示,一块 FPGA 芯片由可配置逻辑模块(CLB)构成,每个 CLB 都包含特定的结构,如:查找表(LUT)、多路复用器、进位链、触发器等。 除此之外,一块 FPGA 卡上还有 BRAM(Block RAM),可以将其想象成 CPU 中 cache 的角色,以及 DSP (数字信号处理器)和一些通信接口(PCIe 等)。

这篇文章通过引入半静态操作符图,设计了一个 FPGA-CPU 异构的图数据库系统,加速了在大规模语义数据集上的查询性能。

二、相关工作

a6ca9d3e-b2e3-11ed-bfe3-dac502259ad0.png

上图为一个 FPGA-CPU 混合处理运算的基本架构,客户端应用程序向混合数据库服务器发送查询,该服务器使用基于 FPGA 的硬件加速器透明地确定结果。

文中主要引用的内容为:

Dennl 等人提出了关系型数据库 MySQL 中 SQL 查询的实时硬件加速的概念,但他们主要关注限制和聚合操作符,因此无法在 FPGA 上执行完整的查询。

Becher 等人添加了更复杂的运算符(例如:归并连接、小数据集上的排序)。 对于一个包含一个 Join 的简单的查询,它们的性能与标准的基于 x86 的系统相当,不过能源效率更高一些。

Woods 等人提出了 Ibex,一种用于关系数据库 MySQL 的智能存储引擎,可以支持使用 FPGA 卸载复杂的查询操作符。

Wang 等人使用 OpenCL high level synthesis (HLS) 将数据库操作符实现为 FPGA 的 Kernel。 但是查询只用到了范围检查和一个 Join,相对简单。

Heinrich 等人提出了一种混合索引结构,它在 FPGA 上存储包括根节点在内的高层 B+ 树,在主机上存储包括叶子节点在内的低层。

而本文是第一个针对语义 Web 数据库完全集成的基于 FPGA 的查询引擎。

在介绍本文的混合数据库系统之前,先介绍一下本文用到的图数据库基础。 论文的工作是基于一个开源的图数据库系统 LUPOSDATE,它支持完整的 SPARQL 1.0 和 SPARQL 1.1 标准查询语言。 论文通过引入基于 FPGA 的查询引擎,与 LUPOSDATE 系统结合在一起。

LUPOSDATE 使用 RDF 三元组作为基本数据格式来描述 Web 资源,RDF 三元组表示为 ,其中 s 是 subject (主语)、p 是 predicate (谓词)、o 是 object (宾语)。

相应的,LUPOSDATE 存储的 B+ 树索引结构有六种:SPO、SOP、PSO、POS、OSP、OPS,可以在检索时方便的得到有序的三元组。 除此之外,LUPOSDATE 还维护一个 ISTree 和一个 SITree,用于 RDF 字符串和整数 id 之间的映射,这有利于 FPGA 模块的设计,因为 FPGA 无法处理不定长度的字符串。

如下图所示,对于给定的一个 SPARQL 查询:

a6ee090e-b2e3-11ed-bfe3-dac502259ad0.png

LUPOSDATE 语法分析器会产生相应的变量数组和操作符图:

a711905e-b2e3-11ed-bfe3-dac502259ad0.png

三、论文解决的问题

a72463f0-b2e3-11ed-bfe3-dac502259ad0.png

本文实现的混合数据库系统是一个 LUPOSDATE 的扩展,由 CPU 主机和 FPGA 异构而成,如上图所示。 主机提供更高层级的功能,如用户界面、查询优化、评估指标维护等,而 FPGA 被用作查询执行时的自适应加速器。 主机和 FPGA 之间的通信是基于外设原件 PCIe 的。

FPGA 区域被划分为静态逻辑和许多个小 RP,每个 RP 可以配置任意类型的运算符,每个运算符作为一个可配置模块是提前生成的。 静态逻辑包含与实际查询结构独立的模块,包括 PCIe 接口、一个管理模块和查询协调器(QC)。

QC 的主要任务是将传入的三元组交给最上层的 RP 进行相应索引结构的导入,以及检索和序列化变量数组用以生成最终结果。 此外,每个 RP 之间的互联也位于静态逻辑中。 每个实现的查询操作符都使用了如下图所示的一个公共模板:

a73a378e-b2e3-11ed-bfe3-dac502259ad0.png

每个操作符至多有两个前向操作符和一个后向操作符,如果一个操作符只需要一个前向操作符,那么只有左边的输入被启用。 每一个输入或输出都有如下参数:一个 data 向量对应输入输出的数组,一个 valid 信号表示数据的有效性,一个 finished 参数指定数据的结尾,一个反向 read 信号通知前向操作符数据已经被读取,并且在新数据到来之前不会进行操作。 最后,数据的宽度也必须作为一个参数传入,因为 FPGA 无法支持变长的数据类型。

下面介绍一下论文实现的操作符:

RDF3XIndexScan:RDF3XIndexScan 是 QC 和内部操作符之间的联系。 这个操作符的主要目标是从 QC 中接收三元组,并将它们所需的组件映射到变量数组的某个位置。 它维护三个 one-hot 编码的向量,每个向量的第 i 位代表第 i 个变量,如果某一个元素是常量,那么就将其所有位置为 1。

Join:Join 操作符是自然连接,本文使用的是 MergeJoin 的方式。 它维护一个 one-hot 编码的向量,向量的第 i 位代表第 i 个变量,指代要 Join 的变量。

Filter:Filter 操作符是用于执行条件查询。 复杂的 Filter 表达式将被分解为多个简单的 VALUE COND VALUE 的 Filter 操作符。 其中,VALUE 可以是一个值、一个变量或一个式子,COND 是比较条件。 但由于 FPGA 无法处理字符串的问题,所以通过将字符串映射为整数 id 之后,系统只能支持相等和不相等的比较。

Projection:Projection 操作符是用于将需要的变量结果从变量数组中投影出来。

Union:Union 操作符就是简单的将两个前向操作符得到的结果做一个并集操作。

Limit 和 offset:Limit 操作符会转发特定数量的结果给变量数组。 而 offset 操作符会跳过特定数量的结果。 它们一般作为操作符图的最后几步。

a75ed274-b2e3-11ed-bfe3-dac502259ad0.png

从混合系统结构图中可以看到,每个 RP 之间并不是直接输入输出互联,而是通过了一个上图所示的半静态路由元素(SRE)结构。 论文以一个两路复用 SRE 为例,当 succ_sel 信号为 0 时,数据流会直接向下路由,为 1 时,会向另一侧路由。 SRE 的存在使得可以用更少的 RP 组成一个支持查询范围更大的半静态操作符图。

四、混合系统工程流程

a770b412-b2e3-11ed-bfe3-dac502259ad0.png

上图给出了混合系统的工作流程图,可以将其分为部署阶段和系统运行时。 在部署阶段,除了需要导入数据之外,整个静态逻辑必须部署在 FPGA 上,每个操作符对应的 RM 也需要提前生成并存储在 RM 库中。

在系统运行时,主机通过分析输入的 SPARQL 查询,将其解析成相应的操作符图,检测其是否可以用配置在 FPGA 上,如果有不支持的操作符存在,那么会直接 CPU 端执行查询,如果所有操作符都支持,那么 ICAP 会选择对应操作符的 RM 配置在 FPGA 的半静态操作符图上。 主机通过 PCIe 向 FPGA 端提供输入三元组,并接收 FPGA 端发回的结果进行后处理,FPGA 端负责具体的计算任务。

五、实验结果

本文使用的是 Xilinx 的 Virtex-6 FPGA 卡和 PCIe 2.0 八通道通信接口,在 SP2Bench 三个不同大小的数据集(66M,131M 和 262M 个三元组)上进行了实验。 下图是他们采用的 SPARQL 查询示例:

a7a6d880-b2e3-11ed-bfe3-dac502259ad0.png

a7dbb8b6-b2e3-11ed-bfe3-dac502259ad0.png

Query 1 是用到了 Filter 操作符的查询,Query 2 是用到了 Union 操作符的查询,Query 3-5 分别是用到了不同数量的 Join 操作符。 他们在 FPGA 端部署的半静态操作符图如下:

a802df5e-b2e3-11ed-bfe3-dac502259ad0.png

最后的实验结果表明,加入了 FPGA 的混合系统比原来的 LUPOSDATE 系统的查询执行速度更快。 并且随着数据规模的增大,加速比会更大,说明混合系统更加适合大规模的数据集上的查询。

a81d49c0-b2e3-11ed-bfe3-dac502259ad0.png

六、总结

在这篇文章中,作者在 FPGA 上引入了半静态运算符图(SOG)的概念,为语义网数据库中的查询执行提供灵活的硬件加速器。 作者没有为给定的查询系统运行时生成一个 FPGA 配置,而是以一定程度的灵活性部署了通用查询结构。

SOG 由多个具有公共接口的 RP 组成。 在为每个 RP 部署系统期间,会生成一组部分位文件的 RM,并将其存储到存储库中。 在系统运行时,作者的混合系统针对给定的 SPARQL 查询选择 RM,并通过 ICAP 将其配置为 RP,RP 设置 FPGA 上运算符图的最终结构。 作为这项工作的主要贡献,耗时的 RM 生成在系统运行时之前执行,并且信号大大减少了查询执行期间的重新配置。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1643

    文章

    21929

    浏览量

    612876
  • 存储
    +关注

    关注

    13

    文章

    4480

    浏览量

    86976
  • 数据库
    +关注

    关注

    7

    文章

    3886

    浏览量

    65652
  • 图形处理器
    +关注

    关注

    0

    文章

    202

    浏览量

    25934
  • gpuz
    +关注

    关注

    0

    文章

    4

    浏览量

    3577

原文标题:FPGA加速图数据库查询执行

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
    相关推荐
    热点推荐

    数据库查询

    数据库查询
    发表于 10-06 16:06

    数据数据库,按时间查询数据库

    数据数据库,在数据里新建表,按时间查询数据库
    发表于 01-09 16:08

    基于数据库查询过程优化设计

    在大型关系数据库管理与开发中,优化设计极大地提高数据库的性能。通过对一大型数据库查询语句执行过程的讨论,提出了对同一表格进行多个选择运算的优
    发表于 02-27 16:05 18次下载

    查询数据库的最完美技巧

    查询数据库的最完美技巧.rar
    发表于 03-15 14:15 24次下载

    数据库查询优化方法的研究与探索

    SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。不同的实现方法之间可能存在的性能差异,这种性能差异在大
    发表于 08-08 14:43 0次下载

    JAVA教程之查询数据库

    JAVA教程之查询数据库,很好的JAVA的资料,快来学习吧。
    发表于 04-12 17:49 6次下载

    基于循环神经网络的数据库查询开销预测

    数据库负载管理、性能调优中,开销预测模型是提高其效率的关键技术.首先,由于数据库系统的复杂性和计算机资源的竞争。很难精确地估计不同操作的开销.其次。由于查询计划结构的复杂性,现有研究更多使用笼统
    发表于 12-18 15:45 1次下载
    基于循环神经网络的<b class='flag-5'>数据库</b><b class='flag-5'>查询</b>开销预测

    基于Greenplum数据库查询优化

    针对分布式数据库查询效率随着数据规模的增大而降低的问题,以Greenplum分布式数据库为研究对象,从优化查询路径的角度提出一个基于代价的最
    发表于 03-29 17:46 0次下载

    数据库系统概论之如何进行关系查询处理和查询优化

    本文档的主要内容详细介绍的是数据库系统概论之如何进行关系查询处理和查询优化主要内容包括了:1、关系数据库系统的查询处理 2、关系
    发表于 11-15 15:12 11次下载
    <b class='flag-5'>数据库</b>系统概论之如何进行关系<b class='flag-5'>查询</b>处理和<b class='flag-5'>查询</b>优化

    数据库教程---Oracle表的查询

    数据库教程---Oracle表的查询(现代高频开关电源技术及应用刘凤君 百度网盘)-文档为数据库教程---Oracle表的查询总结文档,是一份不错的参考资料,感兴趣的可以下载看看,,,
    发表于 09-17 14:41 7次下载
    <b class='flag-5'>数据库</b>教程---Oracle表的<b class='flag-5'>查询</b>

    数据库插入查询删除操作教程

    数据库插入查询删除操作教程
    发表于 12-07 09:57 2次下载

    浅析FPGA加速数据库查询执行的步骤

    在当今的数据化场景越来越丰富的大环境下,涌现出的非结构化数据存储分析被应用于多数领域。
    的头像 发表于 02-23 10:21 1246次阅读

    python读取数据库数据 python查询数据库 python数据库连接

    python读取数据库数据 python查询数据库 python数据库连接 Python是一门高级编程语言,广泛应用于各种领域。其中,Pyt
    的头像 发表于 08-28 17:09 2084次阅读

    数据库数据恢复-Oracle数据库truncate table数据恢复案例

    北京某单位Oracle 11g R2数据库执行truncate table CM_CHECK_ITEM_HIS,表数据丢失,查询该表时报错。
    的头像 发表于 09-11 15:30 731次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复-Oracle<b class='flag-5'>数据库</b>truncate table<b class='flag-5'>数据</b>恢复案例

    多线程并发查询oracle数据库

    多线程并发查询Oracle数据库是指在同一时间内有多个线程同时执行数据库查询操作。这种并发查询的方式可以提高系统的吞吐量和响应速度,提高
    的头像 发表于 11-17 14:22 4585次阅读

    有几种电平转换电路,适用于不同的场景

    一.起因一般在消费电路的元器件之间,不同的器件IO的电压是不同的,常规的有5V,3.3V,1.8V等。当器件的IO电压一样的时候,比如都是5V,都是3.3V,那么其之间可以直接通讯,比如拉中断,I2Cdata/clk脚双方直接通讯等。当器件的IO电压不一样的时候,就需要进行电平转换,不然无法实现高低电平的变化。二.电平转换电路常见的有几种电平转换电路,适用于

    张飞实战电子官方
    1天前
    285

    瑞萨RA8系列教程 | 基于 RASC 生成 Keil 工程

    对于不习惯用 e2 studio 进行开发的同学,可以借助 RASC 生成 Keil 工程,然后在 Keil 环境下愉快的完成开发任务。

    RA生态工作室
    05-01 10:00
    538

    共赴之约 | 第二十七届中国北京国际科技产业博览会圆满落幕

    作为第二十七届北京科博会的参展方,芯佰微有幸与800余家全球科技同仁共赴「科技引领创享未来」之约!文章来源:北京贸促5月11日下午,第二十七届中国北京国际科技产业博览会圆满落幕。本届北京科博会主题为“科技引领创享未来”,由北京市人民政府主办,北京市贸促会,北京市科委、中关村管委会,北京市经济和信息化局,北京市知识产权局和北辰集团共同承办。5万平方米的展览云集

    芯佰微电子
    1天前
    627

    道生物联与巍泰技术联合发布 RTK 无线定位系统:TurMass™ 技术与厘米级高精度定位的深度融合

    道生物联与巍泰技术联合推出全新一代 RTK 无线定位系统——WTS-100(V3.0 RTK)。该系统以巍泰技术自主研发的 RTK(实时动态载波相位差分)高精度定位技术为核心,深度融合道生物联国产新兴窄带高并发 TurMass™ 无线通信技术,为室外大规模定位场景提供厘米级高精度、广覆盖、高并发、低功耗、低成本的一站式解决方案,助力行业智能化升级。

    道生物联
    1天前
    497

    智能家居中的清凉“智”选,310V无刷吊扇驱动方案--其利天下

    炎炎夏日,如何营造出清凉、舒适且节能的室内环境成为了大众关注的焦点。吊扇作为一种经典的家用电器,以其大风量、长寿命、低能耗等优势,依然是众多家庭的首选。而随着智能控制技术与无刷电机技术的不断进步,吊扇正朝着智能化、高效化、低噪化的方向发展。那么接下来小编将结合目前市面上的指标,详细为大家讲解其利天下有限公司推出的无刷吊扇驱动方案。▲其利天下无刷吊扇驱动方案一

    其利天下技术
    05-10 16:29
    1.4k

    电源入口处防反接电路-汽车电子硬件电路设计

    一、为什么要设计防反接电路电源入口处接线及线束制作一般人为操作,有正极和负极接反的可能性,可能会损坏电源和负载电路;汽车电子产品电性能测试标准ISO16750-2的4.7节包含了电压极性反接测试,汽车电子产品须通过该项测试。二、防反接电路设计1.基础版:二极管串联二极管是最简单的防反接电路,因为电源有电源路径(即正极)和返回路径(即负极,GND),那么用二极

    张飞实战电子官方
    05-09 19:34
    922

    半导体芯片需要做哪些测试

    首先我们需要了解芯片制造环节做⼀款芯片最基本的环节是设计->流片->封装->测试,芯片成本构成⼀般为人力成本20%,流片40%,封装35%,测试5%(对于先进工艺,流片成本可能超过60%)。测试其实是芯片各个环节中最“便宜”的一步,在这个每家公司都喊着“CostDown”的激烈市场中,人力成本逐年攀升,晶圆厂和封装厂都在乙方市场中“叱咤风云”,唯独只有测试显

    汉通达
    05-09 10:02
    868

    解决方案 | 芯佰微赋能示波器:高速ADC、USB控制器和RS232芯片——高性能示波器的秘密武器!

    示波器解决方案总述:示波器是电子技术领域中不可或缺的精密测量仪器,通过直观的波形显示,将电信号随时间的变化转化为可视化图形,使复杂的电子现象变得清晰易懂。无论是在科研探索、工业检测还是通信领域,示波器都发挥着不可替代的作用,帮助工程师和技术人员深入剖析电信号的细节,精准定位问题所在,为创新与发展提供坚实的技术支撑。一、技术瓶颈亟待突破性能指标受限:受模拟前端

    芯佰微电子
    05-09 10:36
    1.6k

    硬件设计基础----运算放大器

    1什么是运算放大器运算放大器(运放)用于调节和放大模拟信号,运放是一个内含多级放大电路的集成器件,如图所示:左图为同相位,Vn端接地或稳定的电平,Vp端电平上升,则输出端Vo电平上升,Vp端电平下降,则输出端Vo电平下降;右图为反相位,Vp端接地或稳定的电平,Vn端电平上升,则输出端Vo电平下降,Vn端电平下降,则输出端Vo电平上升2运算放大器的性质理想运算

    张飞实战电子官方
    05-08 19:34
    616

    ElfBoard技术贴|如何调整eMMC存储分区

    ELF 2开发板基于瑞芯微RK3588高性能处理器设计,拥有四核ARM Cortex-A76与四核ARM Cortex-A55的CPU架构,主频高达2.4GHz,内置6TOPS算力的NPU,这一设计让它能够轻松驾驭多种深度学习框架,高效处理各类复杂的AI任务。

    ElfBoard
    05-08 15:01
    1.2k

    米尔基于MYD-YG2LX系统启动时间优化应用笔记

    1.概述MYD-YG2LX采用瑞萨RZ/G2L作为核心处理器,该处理器搭载双核Cortex-A55@1.2GHz+Cortex-M33@200MHz处理器,其内部集成高性能3D加速引擎Mail-G31GPU(500MHz)和视频处理单元(支持H.264硬件编解码),16位的DDR4-1600/DDR3L-1333内存控制器、千兆以太网控制器、USB、CAN、

    米尔电子
    05-08 08:07
    413

    运放技术——基本电路分析

    虚短和虚断的概念由于运放的电压放大倍数很大,一般通用型运算放大器的开环电压放大倍数都在80dB以上。而运放的输出电压是有限的,一般在10V~14V。因此运放的差模输入电压不足1mV,两输入端近似等电位,相当于“短路”。开环电压放大倍数越大,两输入端的电位越接近相等。“虚短”是指在分析运算放大器处于线性状态时,可把两输入端视为等电位,这一特性称为虚假短路,简称

    张飞实战电子官方
    05-07 19:32
    560

    飞凌嵌入式携手中移物联,谱写全国产化方案新生态

    4月22日,飞凌嵌入式“2025嵌入式及边缘AI技术论坛”在深圳成功举办。中移物联网有限公司(以下简称“中移物联”)携OneOS操作系统与飞凌嵌入式共同推出的工业级核心板亮相会议展区,操作系统产品部高级专家严镭受邀作《OneOS工业操作系统——助力国产化智能制造》主题演讲。

    飞凌嵌入式
    05-07 11:26
    1.7k

    ATA-2022B高压放大器在螺栓松动检测中的应用

    实验名称:ATA-2022B高压放大器在螺栓松动检测中的应用实验方向:超声检测实验设备:ATA-2022B高压放大器、函数信号发生器,压电陶瓷片,数据采集卡,示波器,PC等实验内容:本研究基于振动声调制的螺栓松动检测方法,其中低频泵浦波采用单频信号,而高频探测波采用扫频信号,利用泵浦波和探测波在接触面的振动声调制响应对螺栓的松动程度进行检测。通过螺栓松动检测

    Aigtek安泰电子
    05-06 18:44
    1.1k

    MOS管驱动电路——电机干扰与防护处理

    此电路分主电路(完成功能)和保护功能电路。MOS管驱动相关知识:1、跟双极性晶体管相比,一般认为使MOS管导通不需要电流,只要GS电压(Vbe类似)高于一定的值,就可以了。MOS管和晶体管向比较c,b,e—–>d(漏),g(栅),s(源)。2、NMOS的特性,Vgs大于一定的值就会导通,适合用于源极接地时的情况(低端驱动),只要栅极电压达到4V或10V就可以

    张飞实战电子官方
    05-06 19:34
    604