CN113704301A - 异构计算平台的数据处理方法、装置、系统、设备及介质 - Google Patents
异构计算平台的数据处理方法、装置、系统、设备及介质 Download PDFInfo
- Publication number
- CN113704301A CN113704301A CN202110800320.5A CN202110800320A CN113704301A CN 113704301 A CN113704301 A CN 113704301A CN 202110800320 A CN202110800320 A CN 202110800320A CN 113704301 A CN113704301 A CN 113704301A
- Authority
- CN
- China
- Prior art keywords
- data
- processed
- data processing
- memory
- computing platform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 78
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000004364 calculation method Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 7
- 230000001133 acceleration Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004141 dimensional analysis Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种异构计算平台的数据处理方法、装置、系统、电子设备及可读存储介质。其中,方法包括预先在PostgreSQL数据库应用程序中申请预设空间容量的数据内存;调用PostgreSQL数据库应用程序从目标磁盘文件中读取待处理数据,并将待处理数据存储至数据内存中;当检测到满足数据下发条件,通过DMA驱动程序将待处理数据从数据内存中拷贝至操作系统内核空间的DMA缓存;将待处理数据下发至FPGA板卡的板卡内存中,FPGA板卡从板卡内存中读取待处理数据并对其进行相应的数据处理,有效提高异构计算平台的数据处理效率,有利于提高数据库查询效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种异构计算平台的数据处理方法、装置、系统、电子设备及可读存储介质。
背景技术
随着互联网的快速发展,数据库技术与网络通信技术、人工智能技术、并行计算技术等技术进行渗透结合,数据库所承载的数据量与日俱增,对海量数据进行高效、实时、多维分析的需求越来越多,高效地从海量数据中检索出有用的信息,灵活快速地响应各种查询需求,成为数据库技术研究的重要方向。特别是对于PostgreSQL关系型数据库,由于开源特性,其源代码面对所有科技研发开放透明,对PostgreSQL关系型数据库的异构加速的研究也是近年来的热点之一。
为了应对海量的数据查询问题,释放占用CPU(central processing unit,中央处理器)的资源,用于单独计算数据的异构加速计算单元应用而生。目前现有的数据库异构加速方法有三大类,一是CPU+IC(Integrated Circuit Chip,集成电路芯片)专用加速芯片,二是CPU+GPU(graphics processing unit,图像处理器),三是CPU+FPGA(FieldProgrammable Gate Array,现场可编程逻辑门阵列)。对于基于CPU+FPGA这种方式,其实现分为硬件和软件两个方面,在硬件层设计用于数据加速的逻辑电路,在软件层实现数据整合、通过驱动软件下发。
相关技术中的CPU+FPGA结构及数据处理流程请参阅图1所示,其中,主机HOST程序中采用的是PostgreSQL开源数据库,此数据库应用程序会首先读取磁盘文件数据,然后调用Opencl(Open Computing Language,开放运算语言)的API(Application ProgrammingInterface,应用程序接口)将数据拷贝至系统缓存中,最后将数据传递至FPGA板卡中,FPGA板卡对接收到的数据进行加速计算、查询等操作,在操作完成后会将数据处理结果返回至HOST主机端,其过程与写入类似。
在现有方案中,HOST层中PostgreSQL数据库应用程序读取磁盘文件时,每次只能获取8K大小的数据,然后通过Opencl、PCIe驱动等一些列的软件系统调用程序发送给FPGA端,每种系统调用都会消耗一些时间,如在磁盘中遇到50G或100G等这种较大的数据文件,反复进行系统调用,操作效率会非常低。此外,由于其加载了Opencl用作异构系统对上层提供的API系统调用,当磁盘文件中的数据被PostgreSQL数据库程序读到应用层的缓存后,还需要继续将数据搬运至Opencl的缓存中,然后才可启动数据传输。在数据被搬运至Opencl的过程需要消耗的I/O时间太长,效率也会大大降低。
鉴于此,如何提高异构计算平台的数据处理效率,是所属领域技术人员需要解决的技术问题。
发明内容
本申请提供了一种异构计算平台的数据处理方法、装置、系统、电子设备及可读存储介质,有效提高异构计算平台的数据处理效率,有利于提高数据库查询效率。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种异构计算平台的数据处理方法,包括:
预先在PostgreSQL数据库应用程序中申请预设空间容量的数据内存;
调用所述PostgreSQL数据库应用程序从目标磁盘文件中读取待处理数据,并将所述待处理数据存储至所述数据内存中;
当检测到满足数据下发条件,通过DMA驱动程序将所述待处理数据从所述数据内存中拷贝至操作系统内核空间的DMA缓存;
将所述待处理数据下发至FPGA板卡的板卡内存中,以使所述FPGA板卡对所述待处理数据进行相应的数据处理。
可选的,所述检测到满足数据下发条件,包括:
判断所述数据内存的剩余空间容量是否不大于预设容量阈值;
若所述数据内存的剩余空间容量不大于所述预设容量阈值,则满足所述数据下发条件;
若所述数据内存的剩余空间容量大于所述预设容量阈值,则不满足所述数据下发条件。
可选的,所述FPGA板卡对所述待处理数据进行相应的数据处理,包括:
所述FPGA板卡轮询标志寄存器的值,当检测到所述标志寄存器的当前值标识所述待处理数据已下发完成,对所述板卡内存中的待处理数据进行加速计算。
可选的,所述将所述待处理数据下发至FPGA板卡的板卡内存中,包括:
调用所述操作系统内核启动DMA驱动引擎,通过PCIe接口协议将所述DMA缓存中的待处理数据下发至所述FPGA板卡中。
可选的,所述FPGA板卡对所述待处理数据进行相应的数据处理之后,还包括:
所述FPGA板卡将数据处理结果存储至预设存储路径中,向所述DMA驱动程序发送计算完成中断信号;
当接收到所述计算完成中断信号,调用所述PostgreSQL数据库应用程序通过读取中断事件接口从所述DMA驱动程序中读取中断事件;
调用所述PostgreSQL数据库应用程序通过读取DMA数据读取接口从所述DMA驱动程序中读取所述数据处理结果。
可选的,所述调用所述PostgreSQL数据库应用程序通过读取DMA数据读取接口从所述DMA驱动程序中读取所述数据处理结果之后,还包括:
响应查询指令,所述PostgreSQL数据库应用程序输出所述数据处理结果。
本发明实施例另一方面提供了一种异构计算平台的数据处理装置,包括:
内存申请模块,用于预先在PostgreSQL数据库应用程序中申请预设空间容量的数据内存;
数据传输模块,用于调用所述PostgreSQL数据库应用程序从目标磁盘文件中读取待处理数据,并将所述待处理数据存储至所述数据内存中;
数据下发模块,用于当检测到满足数据下发条件,通过DMA驱动程序将所述待处理数据从所述数据内存中拷贝至操作系统内核空间的DMA缓存;
数据处理模块,用于将所述待处理数据下发至FPGA板卡的板卡内存中,以使所述FPGA板卡对所述待处理数据进行相应的数据处理。
本发明实施例还提供了一种电子设备,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述异构计算平台的数据处理方法的步骤。
本发明实施例还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前任一项所述异构计算平台的数据处理方法的步骤。
本发明实施例最后还提供了一种异构计算平台的数据处理装置,包括FPGA板卡和如上所述的电子设备。
本申请提供的技术方案的优点在于,在现有的PostgreSQL数据库应用程序中申请一块数据内存,用于存储PostgreSQL数据库应用程序从磁盘文件中读取的待处理数据,先将每次读取的待处理数据存储至数据内存中,到满足数据下发条件时,再启动接下来的系统调用进行数据的统一下发,避免了频繁的系统调用来进行下发数据,有效节约了CPU资源,有利于提高数据处理效率。进一步的,直接通过PostgreSQL将数据从磁盘读取后发送给DMA缓存,这样就可减少现有技术通过Opencl系统调用方式中的一次数据的拷贝,将会大大提高数据的IO效率,有效提高数据处理效率,缩短数据查询时间,有利于提高数据库查询效率。
此外,本发明实施例还针对异构计算平台的数据处理方法提供了相应的实现装置、系统、电子设备及可读存储介质,进一步使得所述方法更具有实用性,所述装置、系统、电子设备及可读存储介质具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的相关技术中的示例性应用场景的结构框架示意图;
图2为本发明实施例提供的一种异构计算平台的数据处理方法的流程示意图;
图3为本发明实施例提供的另一种异构计算平台的数据处理方法的流程示意图;
图4为本发明实施例提供的再一种异构计算平台的数据处理方法的流程示意图;
图5为本发明实施例提供的异构计算平台的数据处理装置的一种具体实施方式结构图;
图6为本发明实施例提供的电子设备的一种具体实施方式结构图;
图7为本发明实施例提供的异构计算平台的数据处理系统的一种具体实施方式结构图;
图8为本发明实施例提供的异构计算平台的数据处理系统的再一种具体实施方式结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
首先参见图2,图2为本发明实施例提供的一种异构计算平台的数据处理方法的流程示意图,以下是HOST主机侧的PostgreSQL数据库应用层实现流程细节,本实施例适用于PostgreSQL开源数据库,例如可适用于PostgreSQL 11.2开源数据库版本,通过下述流程可提高数据查询速度,可有效节约CPU计算资源,提高数据处理效率。本发明实施例可包括以下内容:
S201:预先在PostgreSQL数据库应用程序中申请预设空间容量的数据内存。
本步骤的预设空间容量可根据PostgreSQL数据库应用程序总的占用空间容量值和实际应用场景来决定,本申请对此不作任何限定。作为一种可选的实施方式,可通过添加钩子即HOOK函数的形式,在HOOK申请一块预设空间容量的数据内存,用于存储PostgreSQL数据库应用程序从主机的磁盘文件中读取的文件数据,预设空间容量例如可为1G。相应的,本申请对PostgreSQL数据库应用程序的数据查询实现方式不采用相关技术中的软件顺序扫描方式,诸如在PostgreSQL11.2源码中,正查的数据查询实现方式是软件顺序扫描,而是使用自定义扫描(即FPGA硬件逻辑加速计算)方式实现数据查询,将这种方式称之为Customscan,添加此扫描方式并不用改变PostgreSQL 11.2的源码,其实现方式可通过添加钩子HOOK函数的形式来完成。
S202:调用PostgreSQL数据库应用程序从目标磁盘文件中读取待处理数据,并将待处理数据存储至数据内存中。
本步骤的目标磁盘文件为待处理数据在主机的磁盘中的存储位置,待处理处理为主机需要发送至FPGA板卡进行加速计算处理的数据。PostgreSQL数据库应用程序从目标磁盘文件中每次读取一定量的如8K的待处理数据,然后将这8K的待处理数据先存储至S101构建的数据内存中。
S203:当检测到满足数据下发条件,通过DMA驱动程序将待处理数据从数据内存中拷贝至操作系统内核空间的DMA缓存。
其中,数据下发条件用于表示何时将数据内存中的数据拷贝至DMA(DirectMemory Access,直接存储器访问)缓存中,数据下发条件可根据实际应用场景对数据计算结果的时间需求、待处理数据的大小、数据内存的大小来共同确定,举例来说,数据下发条件可为数据内存的剩余空间容量与预设容量阈值之间的数据关系,若数据内存的剩余空间容量不大于预设容量阈值,则满足数据下发条件;若数据内存的剩余空间容量大于预设容量阈值,则不满足数据下发条件;预设容量阈值可根据数据计算结果的时间需求、待处理数据的大小、数据内存的大小来共同确定,预设容量阈值例如可为0、1k、2k、10k、100k等。相应的,检测到满足数据下发条件可为判断数据内存的剩余空间容量是否不大于预设容量阈值;若数据内存的剩余空间容量不大于预设容量阈值,则满足数据下发条件;若数据内存的剩余空间容量大于预设容量阈值,则不满足数据下发条件。DMA驱动程序例如可为XDMA(Xilinx Direct Memory Access)驱动程序,XDMA驱动是Xilinx公司开发的一种基于PCIe(peripheral component interconnect express,高速串行计算机扩展总线标准)协议的DMA驱动程序,用来在HOST主机端和FPGA加速板卡之间实现数据的发送和接收。
S204:将待处理数据下发至FPGA板卡的板卡内存中,以使FPGA板卡对待处理数据进行相应的数据处理。
在数据库异构加速方案中,除了优化硬件加速的逻辑部分之外,软件层的加速主要是体现在数据的I/O拷贝上,本步骤可调用操作系统内核启动DMA驱动引擎,通过PCIe接口协议将DMA缓存中的待处理数据下发至FPGA板卡中。本实施例将数据统一下发,且直接从DMA缓存中发送至FPGA板卡。去除了传统上应用层与操作系统驱动层之间的Opencl,会减少一次数据拷贝的过程,如果使用Opencl API进行异构加速方案的设计,数据的I/O效率会大大降低。本发明实施例提出的数据库加速方案中,进行一次数据查询的过程,数据会被进行五次拷贝,之后进行异构加速计算查询,FPGA加速卡完成计算后,计算结果会经过相同的路径返回至主机HOST端。
在本发明实施例提供的技术方案中,在现有的PostgreSQL数据库应用程序中申请一块数据内存,用于存储PostgreSQL数据库应用程序从磁盘文件中读取的待处理数据,先将每次读取的待处理数据存储至数据内存中,到满足数据下发条件时,在启动接下来的系统调用,进行数据的统一下发,避免了频繁的系统调用来进行下发数据,有效节约CPU资源,有利于提高数据处理效率。进一步的,直接通过PostgreSQL将数据从磁盘读取后发送给DMA缓存,这样就可减少现有技术通过Opencl系统调用方式中的一次数据的拷贝,将会大大提高数据的IO效率,有效提高数据处理效率,缩短数据查询时间,有利于提高数据库查询效率。
在上述实施例中,对于如何将FPGA板卡对待处理数据的加速计算结果再反馈给主机并不做限定,本实施例中给出相应的实施方式,如图2和如图3所示,可包括如下步骤:
FPGA板卡将数据处理结果存储至预设存储路径中,向DMA驱动程序发送计算完成中断信号;
当接收到计算完成中断信号,调用PostgreSQL数据库应用程序通过读取中断事件接口从DMA驱动程序中读取中断事件;
调用PostgreSQL数据库应用程序通过读取DMA数据读取接口从DMA驱动程序中读取数据处理结果。
本实施例可添加两个功能寄存器,一个用于标识DMA数据发送完成的标志寄存器,一个用于标识FPGA计算完成的中断寄存器。相应的,FPGA板卡可轮询标志寄存器的值,当检测到标志寄存器的当前值标识待处理数据已下发完成,对板卡内存中的待处理数据进行加速计算。举例来说,当HOST端数据向FPGA侧发送完成时,DMA数据发送完成标志寄存器的bit0位可被置1,此时FPGA轮询得到该值发生改变,紧接着会启动FPGA计算逻辑对获取的数据进行加速计算。当FPGA完成计算并将结果存至指定内存地址DDR_ADDR2后,触发一次中断,FPGA计算完成中断寄存器bit0位置1,该寄存器用来通知XDMA驱动层FPGA板卡完成了一次事件中断,XDMA驱动读取该事件驱动位HOST端提供中断事件通知。预设存储路径例如可为FPGA板卡的DDR(Double Data Rate,双倍速率)的一块儿指定的地址空间中。
在调用PostgreSQL数据库应用程序通过读取DMA数据读取接口从DMA驱动程序中读取数据处理结果之后,还可包括:
响应查询指令,PostgreSQL数据库应用程序输出数据处理结果。
在本实施例中,当接收到用户查询数据处理结果的指令后,主机端的PostgreSQL数据库应用程序根据计算结果给每条元组赋值,并输出查询结果,结束数据库查询操作。
由上可知,本发明实施例可有效提高异构计算平台的数据处理效率,有利于提高数据库查询效率。
需要说明的是,本申请中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图2-图4只是一种示意方式,并不代表只能是这样的执行顺序。
本发明实施例还针对异构计算平台的数据处理方法提供了相应的装置,进一步使得方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的异构计算平台的数据处理装置进行介绍,下文描述的异构计算平台的数据处理装置与上文描述的异构计算平台的数据处理方法可相互对应参照。
基于功能模块的角度,参见图5,图5为本发明实施例提供的异构计算平台的数据处理装置在一种具体实施方式下的结构图,该装置可包括:
内存申请模块501,用于预先在PostgreSQL数据库应用程序中申请预设空间容量的数据内存。
数据传输模块502,用于调用PostgreSQL数据库应用程序从目标磁盘文件中读取待处理数据,并将待处理数据存储至数据内存中。
数据下发模块503,用于当检测到满足数据下发条件,通过DMA驱动程序将待处理数据从数据内存中拷贝至操作系统内核空间的DMA缓存。
数据处理模块504,用于将待处理数据下发至FPGA板卡的板卡内存中,以使FPGA板卡对待处理数据进行相应的数据处理。
可选的,在本实施例的一些实施方式中,上述数据下发模块503可进一步用于:判断数据内存的剩余空间容量是否不大于预设容量阈值;若数据内存的剩余空间容量不大于预设容量阈值,则满足数据下发条件;若数据内存的剩余空间容量大于预设容量阈值,则满足数据下发条件。
作为本实施例的一种可选的实施方式,上述数据处理模块504可进一步用于调用操作系统内核启动DMA驱动引擎,通过PCIe接口协议将DMA缓存中的待处理数据下发至FPGA板卡中。
可选的,在本实施例的另一些实施方式中,上述数据处理模块504可包括FPGA处理单元,该FPGA处理单元用于轮询标志寄存器的值,当检测到标志寄存器的当前值标识待处理数据已下发完成,对板卡内存中的待处理数据进行加速计算。
可选的,在本实施例的其他一些实施方式中,上述装置例如还可包括数据反馈模块,用于FPGA板卡将数据处理结果存储至预设存储路径中,向DMA驱动程序发送计算完成中断信号;当接收到计算完成中断信号,调用PostgreSQL数据库应用程序通过读取中断事件接口从DMA驱动程序中读取中断事件;调用PostgreSQL数据库应用程序通过读取DMA数据读取接口从DMA驱动程序中读取数据处理结果。
作为本实施例的一种可选的实施方式,上述数据反馈模块还包括查询单元,用于响应查询指令,PostgreSQL数据库应用程序输出数据处理结果。
本发明实施例所述异构计算平台的数据处理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例可有效提高异构计算平台的数据处理效率,有利于提高数据库查询效率。
上文中提到的异构计算平台的数据处理装置是从功能模块的角度描述,进一步的,本申请还提供一种电子设备,是从硬件角度描述。图6为本申请实施例提供的电子设备在一种实施方式下的结构示意图。如图6所示,该电子设备包括存储器60,用于存储计算机程序;处理器61,用于执行计算机程序时实现如上述任一实施例提到的异构计算平台的数据处理方法的步骤。
其中,处理器61可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器61可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器61也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器61可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器61还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器60可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器60还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器60至少用于存储以下计算机程序601,其中,该计算机程序被处理器61加载并执行之后,能够实现前述任一实施例公开的异构计算平台的数据处理方法的相关步骤。另外,存储器60所存储的资源还可以包括操作系统602和数据603等,存储方式可以是短暂存储或者永久存储。其中,操作系统602可以包括Windows、Unix、Linux等。数据603可以包括但不限于异构计算平台的数据处理结果对应的数据等。
在一些实施例中,上述电子设备还可包括有显示屏62、输入输出接口63、通信接口64或者称为网络接口、电源65以及通信总线66。其中,显示屏62、输入输出接口63比如键盘(Keyboard)属于用户接口,可选的用户接口还可以包括标准的有线接口、无线接口等。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。通信接口64可选的可以包括有线接口和/或无线接口,如WI-FI接口、蓝牙接口等,通常用于在电子设备与其他电子设备之间建立通信连接。通信总线66可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extendedindustry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本领域技术人员可以理解,图6中示出的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的组件,例如还可包括实现各类功能的传感器67。
本发明实施例所述电子设备的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例可有效提高异构计算平台的数据处理效率,有利于提高数据库查询效率。
可以理解的是,如果上述实施例中的异构计算平台的数据处理方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明实施例还提供了一种可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时如上任意一实施例所述异构计算平台的数据处理方法的步骤。
本发明实施例所述可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本发明实施例还提供了一种异构计算平台的数据处理系统,参见图7,异构计算平台的数据处理系统可包括FPGA板卡701和上任意一个实施例所述的电子设备702。
电子设备702与FPGA板卡701可以通过任何一种接口协议进行数据通信,如PCIe接口协议,当然,也可为其他协议,这均不影响本申请的实现。
作为一种可选的实施方式,异构计算平台的数据处理系统还可包括标志寄存器和中断寄存器,可参阅上述实施例所描述的内容。
为了使所属领域技术人员更加清楚本申请的技术方案,本申请结合图8所示的异构计算平台的数据处理系统的结构,阐述本申请整个技术方案,可包括下述内容:
异构计算平台的数据处理系统使用CPU+FPGA的组成形式,左侧是HOST主机程序运行在CPU上,DMA的驱动程序为XDMA驱动程序,右侧的加速板卡是基于FPGA实现的硬件逻辑,FPGA板卡用来做加速器,其内部通过硬件逻辑实现对数据的加速计算。图中的配置文件是用于配置FPGA板卡的硬件逻辑的文件。本实施例的FPGA板卡例如可为浪潮服务器的F37XFPGA板卡,F37X FPGA板卡与主机通过PCIe接口相连,基于PCIe接口协议进行数据通信。
上述方法实施例侧重点是异构加速方案的软件层实现,即运行于HOST主机CPU上的软件程序。具体的,首先运行于HOST端的PostgreSQL应用程序从磁盘中将8K的文件数据读取到应用层,存储在应用层空间申请的1G大小的内存中,反复读取,直到1G的内存空间填慢为止,然后通过XDMA驱动程序将数据拷贝至操作系统内核空间中DMA缓存中,启动传输,通过PCIe接口协议将数据下发至FPGA加速板卡的DDR内存中,此时FPGA可重构区域的加并行速计算单元会去指定的DDR内存中读取指定的数据,然后开始计算,计算完成后,FPGA板卡会将计算结果存储在DDR的另一个指定地址空间上。
其中,本实施例通过自定义扫描(Custom scan)方式替代PostgreSQL源码数据库中的软件顺序扫描,自定义扫描通过添加钩子(HOOK)函数的来实现,也即在现有的PostgreSQL数据库应用程序中通过添加钩子(HOOK)函数的形式,在HOOK中申请一块1G大小的数据内存,用于存储PostgreSQL数据库应用程序频繁从磁盘文件中读取的8K数据,当1G大小的内存存满之后,在启动接下来的系统调用,进行数据的下发,通过FPGA板卡的DDR控制器将通过PCIe接口下发的数据存储至FPGA板卡的DDR内存中,以此来提高I/O效率,避免了频繁的系统调用来进行下发数据。本实施例去除opencl的部署,删除了传统上PostgreSQL数据库应用层与操作系统驱动层之间的Opencl API,即不采用opencl系统调用的方式,直接通过PostgreSQL将数据从磁盘读取后发送给XDMA驱动层的DMA缓存,这样就可减少一次数据的拷贝,将会大大提高数据的IO效率。
本发明实施例所述电子设备和FPGA板卡的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例可有效提高异构计算平台的数据处理效率,有利于提高数据库查询效率,缩短数据查询时间,可降低研发成本,提高企业效益。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的硬件包括装置及电子设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本申请所提供的一种异构计算平台的数据处理方法、装置、系统、电子设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种异构计算平台的数据处理方法,其特征在于,包括:
预先在PostgreSQL数据库应用程序中申请预设空间容量的数据内存;
调用所述PostgreSQL数据库应用程序从目标磁盘文件中读取待处理数据,并将所述待处理数据存储至所述数据内存中;
当检测到满足数据下发条件,通过DMA驱动程序将所述待处理数据从所述数据内存中拷贝至操作系统内核空间的DMA缓存;
将所述待处理数据下发至FPGA板卡的板卡内存中,以使所述FPGA板卡对所述待处理数据进行相应的数据处理。
2.根据权利要求1所述的异构计算平台的数据处理方法,其特征在于,所述检测到满足数据下发条件,包括:
判断所述数据内存的剩余空间容量是否不大于预设容量阈值;
若所述数据内存的剩余空间容量不大于所述预设容量阈值,则满足所述数据下发条件;
若所述数据内存的剩余空间容量大于所述预设容量阈值,则不满足所述数据下发条件。
3.根据权利要求2所述的异构计算平台的数据处理方法,其特征在于,所述FPGA板卡对所述待处理数据进行相应的数据处理,包括:
所述FPGA板卡轮询标志寄存器的值,当检测到所述标志寄存器的当前值标识所述待处理数据已下发完成,对所述板卡内存中的待处理数据进行加速计算。
4.根据权利要求2所述的异构计算平台的数据处理方法,其特征在于,所述将所述待处理数据下发至FPGA板卡的板卡内存中,包括:
调用所述操作系统内核启动DMA驱动引擎,通过PCIe接口协议将所述DMA缓存中的待处理数据下发至所述FPGA板卡中。
5.根据权利要求1至4任意一项所述的异构计算平台的数据处理方法,其特征在于,所述FPGA板卡对所述待处理数据进行相应的数据处理之后,还包括:
所述FPGA板卡将数据处理结果存储至预设存储路径中,向所述DMA驱动程序发送计算完成中断信号;
当接收到所述计算完成中断信号,调用所述PostgreSQL数据库应用程序通过读取中断事件接口从所述DMA驱动程序中读取中断事件;
调用所述PostgreSQL数据库应用程序通过读取DMA数据读取接口从所述DMA驱动程序中读取所述数据处理结果。
6.根据权利要求5所述的异构计算平台的数据处理方法,其特征在于,所述调用所述PostgreSQL数据库应用程序通过读取DMA数据读取接口从所述DMA驱动程序中读取所述数据处理结果之后,还包括:
响应查询指令,所述PostgreSQL数据库应用程序输出所述数据处理结果。
7.一种异构计算平台的数据处理装置,其特征在于,包括:
内存申请模块,用于预先在PostgreSQL数据库应用程序中申请预设空间容量的数据内存;
数据传输模块,用于调用所述PostgreSQL数据库应用程序从目标磁盘文件中读取待处理数据,并将所述待处理数据存储至所述数据内存中;
数据下发模块,用于当检测到满足数据下发条件,通过DMA驱动程序将所述待处理数据从所述数据内存中拷贝至操作系统内核空间的DMA缓存;
数据处理模块,用于将所述待处理数据下发至FPGA板卡的板卡内存中,以使所述FPGA板卡对所述待处理数据进行相应的数据处理。
8.一种电子设备,其特征在于,包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如权利要求1至6任一项所述异构计算平台的数据处理方法的步骤。
9.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述异构计算平台的数据处理方法的步骤。
10.一种异构计算平台的数据处理装置,其特征在于,包括FPGA板卡和权利要求8所述的电子设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110800320.5A CN113704301B (zh) | 2021-07-15 | 2021-07-15 | 异构计算平台的数据处理方法、装置、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110800320.5A CN113704301B (zh) | 2021-07-15 | 2021-07-15 | 异构计算平台的数据处理方法、装置、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113704301A true CN113704301A (zh) | 2021-11-26 |
CN113704301B CN113704301B (zh) | 2023-06-20 |
Family
ID=78648640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110800320.5A Active CN113704301B (zh) | 2021-07-15 | 2021-07-15 | 异构计算平台的数据处理方法、装置、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704301B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114443616A (zh) * | 2021-12-30 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 一种基于fpga的并行异构数据库加速方法及装置 |
CN114647635A (zh) * | 2022-03-31 | 2022-06-21 | 苏州浪潮智能科技有限公司 | 数据处理系统 |
CN114880346A (zh) * | 2022-04-22 | 2022-08-09 | 苏州浪潮智能科技有限公司 | 一种数据处理方法及相关组件、加速处理器 |
CN116610455A (zh) * | 2023-07-18 | 2023-08-18 | 之江实验室 | 一种可编程网元设备的资源约束描述系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108319510A (zh) * | 2017-12-28 | 2018-07-24 | 大唐软件技术股份有限公司 | 一种异构处理方法及装置 |
CN109739833A (zh) * | 2018-12-18 | 2019-05-10 | 山东超越数控电子股份有限公司 | 一种基于fpga的国产平台数据库加速系统及方法 |
CN111046072A (zh) * | 2019-11-29 | 2020-04-21 | 浪潮(北京)电子信息产业有限公司 | 一种数据查询方法、系统、异构计算加速平台及存储介质 |
CN111143272A (zh) * | 2019-12-28 | 2020-05-12 | 浪潮(北京)电子信息产业有限公司 | 异构计算平台的数据处理方法、装置及可读存储介质 |
CN111813713A (zh) * | 2020-09-08 | 2020-10-23 | 苏州浪潮智能科技有限公司 | 数据加速运算处理方法、装置及计算机可读存储介质 |
-
2021
- 2021-07-15 CN CN202110800320.5A patent/CN113704301B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108319510A (zh) * | 2017-12-28 | 2018-07-24 | 大唐软件技术股份有限公司 | 一种异构处理方法及装置 |
CN109739833A (zh) * | 2018-12-18 | 2019-05-10 | 山东超越数控电子股份有限公司 | 一种基于fpga的国产平台数据库加速系统及方法 |
CN111046072A (zh) * | 2019-11-29 | 2020-04-21 | 浪潮(北京)电子信息产业有限公司 | 一种数据查询方法、系统、异构计算加速平台及存储介质 |
CN111143272A (zh) * | 2019-12-28 | 2020-05-12 | 浪潮(北京)电子信息产业有限公司 | 异构计算平台的数据处理方法、装置及可读存储介质 |
CN111813713A (zh) * | 2020-09-08 | 2020-10-23 | 苏州浪潮智能科技有限公司 | 数据加速运算处理方法、装置及计算机可读存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114443616A (zh) * | 2021-12-30 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 一种基于fpga的并行异构数据库加速方法及装置 |
CN114443616B (zh) * | 2021-12-30 | 2024-01-16 | 苏州浪潮智能科技有限公司 | 一种基于fpga的并行异构数据库加速方法及装置 |
CN114647635A (zh) * | 2022-03-31 | 2022-06-21 | 苏州浪潮智能科技有限公司 | 数据处理系统 |
CN114647635B (zh) * | 2022-03-31 | 2024-01-23 | 苏州浪潮智能科技有限公司 | 数据处理系统 |
CN114880346A (zh) * | 2022-04-22 | 2022-08-09 | 苏州浪潮智能科技有限公司 | 一种数据处理方法及相关组件、加速处理器 |
CN114880346B (zh) * | 2022-04-22 | 2024-01-23 | 苏州浪潮智能科技有限公司 | 一种数据处理方法及相关组件、加速处理器 |
CN116610455A (zh) * | 2023-07-18 | 2023-08-18 | 之江实验室 | 一种可编程网元设备的资源约束描述系统及方法 |
CN116610455B (zh) * | 2023-07-18 | 2023-12-05 | 之江实验室 | 一种可编程网元设备的资源约束描述系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113704301B (zh) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113704301B (zh) | 异构计算平台的数据处理方法、装置、系统、设备及介质 | |
US10133597B2 (en) | Intelligent GPU scheduling in a virtualization environment | |
CN111813713B (zh) | 数据加速运算处理方法、装置及计算机可读存储介质 | |
US20190286479A1 (en) | Intelligent gpu scheduling in a virtualization environment | |
CN112100090A (zh) | 数据访问请求处理方法、装置、介质及内存映射控制器 | |
CN111143272A (zh) | 异构计算平台的数据处理方法、装置及可读存储介质 | |
CN112558841B (zh) | 一种应用图标管理方法、计算设备及可读存储介质 | |
CN112230923A (zh) | 用户界面渲染方法、用户界面渲染装置及服务器 | |
CN114513545B (zh) | 请求处理方法、装置、设备及介质 | |
CN113849238B (zh) | 数据通信方法、装置、电子设备及可读存储介质 | |
CN111858038A (zh) | Fpga板卡内存数据的读取方法、装置及介质 | |
US20240061599A1 (en) | Method and system for processing file read-write service, device, and medium | |
CN114153477A (zh) | Pcie驱动卡固件升级方法、装置、系统、设备及介质 | |
CN113687779A (zh) | 数据迁移方法、装置、电子设备及可读存储介质 | |
CN116662039B (zh) | 基于共享内存的工业信息并行检测方法、装置及介质 | |
US20180143890A1 (en) | Simulation apparatus, simulation method, and computer readable medium | |
CN109614094B (zh) | 基于UML的GPU glCallList视图模型的绘制方法 | |
US8886512B2 (en) | Simulation apparatus, computer-readable recording medium, and method | |
CN115221083B (zh) | 一种PCIe中断处理方法、装置、设备及介质 | |
CN113849229A (zh) | 服务器开机方法、装置、电子设备及可读存储介质 | |
CN114327508A (zh) | 一种软件加载方法及相关装置 | |
CN111274507B (zh) | 网页内容的浏览方法、装置、设备及存储介质 | |
CN111176738B (zh) | 一种uefi模式的显卡显示方法、系统及其相关组件 | |
CN111026682B (zh) | 板卡芯片的数据访存方法、装置及计算机可读存储介质 | |
CN112685127A (zh) | 基于内容管理系统的数据源操作方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |