CN110389784A - 一种图像处理器环境中的编译查询处理方法 - Google Patents
一种图像处理器环境中的编译查询处理方法 Download PDFInfo
- Publication number
- CN110389784A CN110389784A CN201910678918.4A CN201910678918A CN110389784A CN 110389784 A CN110389784 A CN 110389784A CN 201910678918 A CN201910678918 A CN 201910678918A CN 110389784 A CN110389784 A CN 110389784A
- Authority
- CN
- China
- Prior art keywords
- gpu
- kernel
- image processor
- logic
- query processing
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种图像处理器环境中的编译查询处理方法,属于处理器技术领域。本发明首先在GPU中构造复合kernel;然后构造多个通道,每个通道由多个步骤一中构造的复合核组成,每个复合核内能够执行复杂的逻辑;再设置通道之间并行化处理数据;当GPU接收到查询编译指令,为该查询编译指令分配一个通道,每一个复合核执行一个逻辑步骤,同时将中间数据存储在GPU的主存中。本发明解决了现有GPU式图像处理器的查询处理速度受到带宽内存限制的问题。本发明图像处理器的查询处理。
Description
技术领域
本发明涉及一种编译查询处理方法,属于处理器技术领域。
背景技术
目前,GPU(Graphics Processing Unit图形处理单元)式图像处理器的查询处理受到数据移动的严重限制。由于在一个设备中具有teraflops(每秒万亿次浮点运算)的计算吞吐量,即使是高带宽内存也无法提供足够的数据以便合理利用。而查询编译处理是一种提高内存效率的先进技术。GPU经常用作查询处理的强大加速器。由于协处理器的算术吞吐量达到峰值范围,因此对于具有足够数据的远程数据进行了挑战。原因是,具有高带宽内存的硬件数据卡具有数百GB/s的读写速率。由于各种原因,存储器密集型应用仍然存在于数据移动成本之下。传统方法将中间数据存在主存中,要用的时候去主存中读取,然后再将新一步中间数据写回到主存,I/O次数很多,带宽自然成为查询处理速度的瓶颈。
发明内容
本发明为解决现有GPU式图像处理器的查询处理速度受到带宽内存限制的问题,提供了一种图像处理器环境中的编译查询处理方法。
本发明所述一种图像处理器环境中的编译查询处理方法,通过以下技术方案实现:
步骤一、在GPU中构造复合kernel;kernel表示核;
步骤二、构造多个通道,每个通道由多个步骤一中构造的复合核组成,每个复合核内能够执行复杂的逻辑;
步骤三、设置通道之间并行化处理数据;
步骤四、当GPU接收到查询编译指令时,为该查询编译指令分配一个通道,每一个复合核执行一个逻辑步骤,同时将中间数据存储在GPU的主存中。
本发明最为突出的特点和显著的有益效果是:
本发明所涉及的一种图像处理器环境中的编译查询处理方法,改变了查询编译的固有处理方式,将查询编译处理集成到图像处理器加速的DBMS(数据库处理***)中,使其能够适合GPU式图像处理器的大规模并行执行模型。本发明能够将查询编译和GPU风格的并行,并且应用在不同的情况下进行。本发明将多个操作合并到单个GPU内核中的编译器,显着降低了带宽需求;能够在单个通道数据中进行有效地处理,极大提高了查询效率,缩短了内存执行时间和内核执行时间。与一次运算符相比,本发明方法内存访问量减少了7.5倍的内存执行时间,导致内核执行时间缩短了9.5倍。
附图说明
图1为查询编译时候的数据移动示意图;
图2为本发明中复合核的组成示意图;
其中,MEM:主存;GPU MEM:GPU主存;SCRATCHPAD MEM/REGISTERS/CACHE:暂时存储器/缓存器/高速缓冲存储器;CORES:内核;compound kernel:复合核;input:输入;probe:探测;count:计数;prefix sum:前项和(专业名词,计算中的中间数据);write:写;PCIeTransfers:总线传输;GPU Global Memory:GPU全局内存;On-Chip Memory:片上内存、晶载内存;select/hash:选择/哈希过程;aligned write:写回;project/join probe:可能存在join操作;fusion operator:融合算子。
具体实施方式
具体实施方式一:结合图1对本实施方式进行说明,本实施方式给出的一种图像处理器环境中的编译查询处理方法,具体包括以下步骤:
步骤一、在GPU中构造复合kernel;kernel表示核,GPU中含有多个核,核来处理数据,包括逻辑运算等等;
步骤二、构造多个通道,每个通道由多个步骤一中构造的复合核组成,每个复合核内能够执行复杂的逻辑(例如逻辑运算之后写回存储器),这样几乎所有处理都在核中进行,比传统方法减少了很多读写量,传统方法核只有单一逻辑,逻辑计算后将数据输出到主存,如果想执行写回操作再将数据从主存中读出来,I/O(输入/输出)数量很多,很容易有瓶颈;
步骤三、设置通道之间能够并行化处理数据,这样,相当于在GPU中构造多个通道,使其并行处理数据;
步骤四、当GPU接收到查询编译指令,为该查询编译指令分配一个通道,每一个复合核执行一个逻辑步骤,这样,将编译查询集成到GPU中,大大加速编译查询的速度,也提升并发性,因为GPU中有远多于CPU的核数量,并且算力高,执行速度快;同时将中间数据存储在GPU的主存中,可以减少I/O读写数量,减少了很多限制其性能的因素,例如带宽瓶颈。如图1所示本发明方法查询编译时候的数据移动示意图,可以看出,本发明能够大大减少编译查询时的数据移动次数。
分析各种***过去使用过的宏执行模型发现,为了评估关系查询运算符,现有最先进的***将选择多个基元并在GPU上执行相应的内核序列;为了向内核提供数据,宏执行模型定义了数据传输将如何与内核执行交错。这与传统***相比,从内核到内核的数据移动可能导致额外的带宽需求。为了理解这种影响,通过研究了现有宏执行模型对多级带宽使用(PCIe,GPU全局内存等)的影响,分析查询了星型模式基准(SSB)的执行情况,查询是在NVIDIA GTX970GPU2上使用CoGaDB以比例因子10执行的。
执行内核序列的一种简单方法是首先传输所有输入,执行内核,最后传输全部输出,将数据保留在GPU全局存储器中的中间数据和非重要的传输是必要的。然而,其缺点是,只有在输入,输出和中间的情况下才能使用GPU存储器。为了在内核时间处理协处理器上的大数据,可以在数据块上执行每个内核,批处理为通过PCIe传输的每个块执行多个内核。本发明通过重新安排一次内核的操作来缓解PCIe带宽限制,将中间结果的传输短路到主机,而不是在处理列之前运行内核。批处理通过将前一操作(op1)的输出重新用作输入(op2)而不是转移到主机来实现此目的。只要中间批处理结果可以保存在GPU全局内存中,这就适用。以块为单位传输数据并在每个块中执行多个运算符,与一次内核相比,可以实现可伸缩性并提高效率。批处理宏执行模型已被GPUDB和Hetero-DB用于协同处理。
为了更有效地利用GPU全局内存带宽,需要使用微执行模型应用额外的微级优化,并将它们与宏执行模型(批处理)相结合,以实现可扩展性和性能。现有的微观级优化(例如一次一次矢量处理和查询编译)利用内存带宽更高效的均衡线上处理器缓存。为了调解Volcano的解释开销和operator-ata-time的物化开销,一次矢量使用适合处理器缓存的批处理,要在GPU上使用查询编译,还需要将细粒度数据并行性集成到编译查询中。
具体实施方式二:本实施方式与具体实施方式一不同的是,步骤一中每个所述复合kernel中包含计算逻辑、计算前导数据以及写回逻辑;如图2所示可知,复合核将许多步骤链接在一起顺序执行,逻辑复杂。
其他步骤及参数与具体实施方式一相同。
具体实施方式三:本实施方式与具体实施方式一或二不同的是,步骤四中所述每一个核执行一个逻辑步骤具体为:
复合kernel A执行第一个逻辑步骤(例如将m和n两个数据库连接的操作),将中间结果保存在GPU的主存中,然后,与kernel A相连的kernel B执行下一步操作(所述下一步操作可以是在上一步的中间结果中做投影操作等等),以此类推。
其他步骤及参数与具体实施方式一或二相同。
本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (3)
1.一种图像处理器环境中的编译查询处理方法,其特征在于,具体包括以下步骤:
步骤一、在GPU中构造复合kernel;kernel表示核;
步骤二、构造多个通道,每个通道由多个步骤一中构造的复合核组成,每个复合核内能够执行复杂的逻辑;
步骤三、设置通道之间并行化处理数据;
步骤四、当GPU接收到查询编译指令,为该查询编译指令分配一个通道,每一个复合核执行一个逻辑步骤,同时将中间数据存储在GPU的主存中。
2.根据权利要求1所述一种图像处理器环境中的编译查询处理方法,其特征在于,步骤一中每个所述复合kernel中包含计算逻辑、计算前导数据以及写回逻辑。
3.根据权利要求1或2所述一种图像处理器环境中的编译查询处理方法,其特征在于,步骤四中所述每一个核执行一个逻辑步骤具体为:
复合kernel A执行第一个逻辑步骤,将中间结果保存在GPU的主存中,然后,与kernelA相连的kernel B执行下一步操作,以此类推。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910678918.4A CN110389784A (zh) | 2019-07-23 | 2019-07-23 | 一种图像处理器环境中的编译查询处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910678918.4A CN110389784A (zh) | 2019-07-23 | 2019-07-23 | 一种图像处理器环境中的编译查询处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110389784A true CN110389784A (zh) | 2019-10-29 |
Family
ID=68287530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910678918.4A Pending CN110389784A (zh) | 2019-07-23 | 2019-07-23 | 一种图像处理器环境中的编译查询处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110389784A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526934A (zh) * | 2009-04-21 | 2009-09-09 | 浪潮电子信息产业股份有限公司 | 一种gpu与cpu复合处理器的组建方法 |
CN102201008A (zh) * | 2011-06-17 | 2011-09-28 | 中国科学院软件研究所 | 一种基于gpu的快速星表检索方法 |
WO2012142186A2 (en) * | 2011-04-11 | 2012-10-18 | Child Timothy | Database acceleration using gpu and multicore cpu systems and methods |
CN102938653A (zh) * | 2012-11-13 | 2013-02-20 | 航天恒星科技有限公司 | 一种利用图形处理器gpu实现的并行rs译码方法 |
CN103336959A (zh) * | 2013-07-19 | 2013-10-02 | 西安电子科技大学 | 一种基于gpu多核并行加速的车辆检测方法 |
CN104615576A (zh) * | 2015-03-02 | 2015-05-13 | 中国人民解放军国防科学技术大学 | 面向cpu+gpu处理器的混合粒度一致性维护方法 |
CN105069015A (zh) * | 2015-07-13 | 2015-11-18 | 山东超越数控电子有限公司 | 一种国产平台网页加速技术的实现方法 |
-
2019
- 2019-07-23 CN CN201910678918.4A patent/CN110389784A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526934A (zh) * | 2009-04-21 | 2009-09-09 | 浪潮电子信息产业股份有限公司 | 一种gpu与cpu复合处理器的组建方法 |
WO2012142186A2 (en) * | 2011-04-11 | 2012-10-18 | Child Timothy | Database acceleration using gpu and multicore cpu systems and methods |
CN102201008A (zh) * | 2011-06-17 | 2011-09-28 | 中国科学院软件研究所 | 一种基于gpu的快速星表检索方法 |
CN102938653A (zh) * | 2012-11-13 | 2013-02-20 | 航天恒星科技有限公司 | 一种利用图形处理器gpu实现的并行rs译码方法 |
CN103336959A (zh) * | 2013-07-19 | 2013-10-02 | 西安电子科技大学 | 一种基于gpu多核并行加速的车辆检测方法 |
CN104615576A (zh) * | 2015-03-02 | 2015-05-13 | 中国人民解放军国防科学技术大学 | 面向cpu+gpu处理器的混合粒度一致性维护方法 |
CN105069015A (zh) * | 2015-07-13 | 2015-11-18 | 山东超越数控电子有限公司 | 一种国产平台网页加速技术的实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Funke et al. | Pipelined query processing in coprocessor environments | |
Koliousis et al. | Saber: Window-based hybrid stream processing for heterogeneous architectures | |
Wu et al. | Kernel weaver: Automatically fusing database primitives for efficient gpu computation | |
Yuan et al. | The Yin and Yang of processing data warehousing queries on GPU devices | |
Yuan et al. | Spark-GPU: An accelerated in-memory data processing engine on clusters | |
Lee et al. | Ysmart: Yet another sql-to-mapreduce translator | |
US9298768B2 (en) | System and method for the parallel execution of database queries over CPUs and multi core processors | |
Nykiel et al. | MRShare: sharing across multiple queries in MapReduce | |
US10733184B2 (en) | Query planning and execution with source and sink operators | |
US8285709B2 (en) | High-concurrency query operator and method | |
Wu et al. | Optimizing data warehousing applications for GPUs using kernel fusion/fission | |
CN103309958B (zh) | Gpu和cpu混合架构下的olap星型连接查询优化方法 | |
Furst et al. | Profiling a GPU database implementation: a holistic view of GPU resource utilization on TPC-H queries | |
EP2585950B1 (en) | Apparatus and method for data stream processing using massively parallel processors | |
CN102981807B (zh) | 一种基于cuda并行环境的gpu程序优化方法 | |
Rosenfeld et al. | Query processing on heterogeneous CPU/GPU systems | |
CN106446134B (zh) | 基于谓词规约和代价估算的局部多查询优化方法 | |
US20220342712A1 (en) | Method for Processing Task, Processor, Device and Readable Storage Medium | |
CN104361118A (zh) | 一种适应协处理器的混合olap查询处理方法 | |
CN101556534A (zh) | 一种众核结构的大规模数据并行计算方法 | |
CN104731729B (zh) | 一种基于异构***的表连接优化方法、cpu和加速器 | |
Cheng et al. | SCANRAW: A database meta-operator for parallel in-situ processing and loading | |
Yang et al. | Efficient FPGA-based graph processing with hybrid pull-push computational model | |
Kumaigorodski et al. | Fast CSV loading using GPUs and RDMA for in-memory data processing | |
Shehab et al. | Accelerating relational database operations using both CPU and GPU co-processor |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20191029 |