CN112256725A - 一种基于gpu和cpu的相似数据查询方法及系统 - Google Patents
一种基于gpu和cpu的相似数据查询方法及系统 Download PDFInfo
- Publication number
- CN112256725A CN112256725A CN202011232695.8A CN202011232695A CN112256725A CN 112256725 A CN112256725 A CN 112256725A CN 202011232695 A CN202011232695 A CN 202011232695A CN 112256725 A CN112256725 A CN 112256725A
- Authority
- CN
- China
- Prior art keywords
- data sequence
- abstract data
- abstract
- cpu
- gpu
- 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
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000012545 processing Methods 0.000 claims abstract description 66
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 12
- 238000003672 processing method Methods 0.000 claims 2
- 230000001133 acceleration Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种基于GPU和CPU的相似数据查询方法及系统,方法包括:CPU对第一原始数据序列进行抽象处理并查询索引树,获取与第一抽象数据序列距离最近的节点,并确定中间值;CPU将中间值、第一抽象数据序列以及抽象数据序列集合发送给GPU,计算第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的距离,GPU将计算得到的各个距离与中间值比较,并确定候选抽象数据序列发送给CPU计算各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离,将最小距离对应的原始数据序列作为第一原始数据序列的相似数据序列。本发明实施例通过GPU和CPU协同响应相似性搜索,从而可以合理地分配计算量,提高相似性搜索的效率。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种基于GPU和CPU的相似数据查询方法及系统。
背景技术
计算机数据管理技术是指对数据进行分类、编码、存储、检索和维护,它是数据处理的中心问题。其中,包括了相似性查询,相似性查询的正式定义为:给定长度为n的查询向量sq和向量数据集合s,在集合s中,确定序列sc在向量中与sq距离最小。
而数据序列,是数据点以一定顺序排列形成的。当这个顺序为时间时,我们称之为时间序列,但这个顺序还可以是角度、位置以及维度。序列还可以是高维向量金融、天体物理学、神经科学、工程学和多媒体等领域中许多领域的应用不断产生大量的数据序列,需要对其进行处理和分析。通常,在对大量的数据序列进行处理和分析过程中,用户提出查询,查看结果,然后决定他们随后的查询或分析步骤应为。不同的分析应用程序需要对这些数据系列集合回答的最常见查询类型是相似性搜索。因此,有效地处理相似性搜索的最近邻居(NN)查询对于加快上述任务至关重要。
由于数据系列生产的速度和数量的持续增长,集合的大小增长到数PB,呈现了传统的串行执行数据系列索引技术不足,而现有的并行和分布式索引,聚焦于利用CPU的多核性能提升请求的响应时间,然而在CPU核心数的限制下,其加速能力有限。因此,目前对于相似数据的搜索,响应速度较慢,无法满足实时性的需求。
发明内容
由于现有方法存在上述问题,本发明实施例提供一种基于GPU和CPU的相似数据查询方法及系统。
第一方面,本发明实施例提供了一种基于GPU和CPU的相似数据查询方法,包括:
CPU对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列,并根据所述第一抽象数据序列查询索引树,获取所述索引树中与所述第一抽象数据序列距离最近的节点,并根据所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离确定中间值;
CPU将所述中间值、所述第一抽象数据序列以及所述抽象数据序列集合发送给GPU,以使GPU计算所述第一抽象数据序列与所述抽象数据序列集合中各个抽象数据序列的距离,并使GPU将计算得到的各个距离与所述中间值进行比较,并根据比较结果确定所述抽象数据序列集合中与所述第一抽象数据序列相似的候选抽象数据序列;
CPU同步接收GPU发送的各候选抽象数据序列,并根据接收到的各候选抽象数据序列,计算各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离,并将最小距离对应的原始数据序列作为所述第一原始数据序列的相似数据序列。
进一步地,CPU对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列,包括:
CPU利用iSAX representation对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列。
进一步地,CPU根据所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离确定中间值,包括:
CPU计算所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离,并将计算出的最小距离作为所述间值。
进一步地,CPU将所述中间值、所述第一抽象数据序列以及所述抽象数据序列集合发送给GPU,以使GPU计算所述第一抽象数据序列与所述抽象数据序列集合中各个抽象数据序列的距离,并使GPU将计算得到的各个距离与所述中间值进行比较,并根据比较结果确定所述抽象数据序列集合中与所述第一抽象数据序列相似的候选抽象数据序列,包括:
CPU将所述中间值、所述第一抽象数据序列以及所述抽象数据序列集合发送给GPU,以使GPU根据第一关系模型计算所述第一抽象数据序列与所述抽象数据序列集合中各个抽象数据序列的距离,并使GPU将计算得到的各个距离与所述中间值进行比较,将小于所述中间值的距离对应的抽象数据序列作为所述抽象数据序列集合中与所述第一抽象数据序列相似的候选抽象数据序列;
其中,第一关系模型为:
其中,T为第一原始数据序列,S为原始数据集中的原始数据序列,MINDIST(T,S)为第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的距离,t为第一抽象数据序列,s为抽象数据序列集合中的抽象数据序列,ti为第一抽象数据序列的第i个点,si为抽象数据序列集合中的抽象数据序列的第i个点,w为第一抽象数据序列长度。
进一步地,还包括:
当CPU通过计算获知各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离中有预设比例个数的距离小于所述中间值时,根据各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离对所述中间值进行更新。
第二方面,本发明实施例还提供了一种基于GPU和CPU的相似数据查询系统,包括:CPU和GPU,其中:
CPU对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列;其中,所述第一抽象数据序列的序列长度小于所述第一原始数据序列的序列长度;
CPU根据所述第一抽象数据序列查询索引树,获取所述索引树中与所述第一抽象数据序列距离最近的节点,并根据所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离确定中间值;其中,所述索引树是对预设原始数据集进行抽象编码处理获取抽象数据序列集合后基于获取的抽象数据序列集合构建的树形索引,其中,在基于抽象数据序列集合构建所述树形索引时,将相似的抽象数据序列聚类到树形索引的同一节点;
CPU将所述中间值、所述第一抽象数据序列以及所述抽象数据序列集合发送给GPU;
GPU计算所述第一抽象数据序列与所述抽象数据序列集合中各个抽象数据序列的距离,并使GPU将计算得到的各个距离与所述中间值进行比较,并根据比较结果确定所述抽象数据序列集合中与所述第一抽象数据序列相似的候选抽象数据序列,并使GPU在每确定出一个候选抽象数据序列时将确定出的候选抽象数据序列发送给CPU;
CPU同步接收GPU发送的各候选抽象数据序列,并根据接收到的各候选抽象数据序列,计算各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离,并将最小距离对应的原始数据序列作为所述第一原始数据序列的相似数据序列;
其中,CPU计算候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离的处理过程与GPU确定候选抽象数据序列的过程是同步进行的。
进一步地,CPU在对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列时,具体用于:
CPU利用iSAX representation对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列。
进一步地,CPU在根据所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离确定中间值时,具体用于:
CPU计算所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离,并将计算出的最小距离作为所述间值。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的基于GPU和CPU的相似数据查询方法。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述的基于GPU和CPU的相似数据查询方法。
由上面技术方案可知,本发明实施例提供的基于GPU和CPU的相似数据查询方法、系统、电子设备及存储介质,通过CPU对待进行相似数据查询的第一原始数据序列进行抽象编码处理得到第一抽象数据序列,并根据第一抽象数据序列查询索引树,找到与第一抽象数据序列距离最近的节点,根据节点中所有抽象数据序列所对应的各原始数据序列与第一原始数据序列的距离确定中间值,进一步地,CPU将中间值、第一抽象数据序列以及抽象数据序列集合发送给GPU进行处理,GPU计算第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的距离,并将计算得到的各个距离与中间值进行比较从而确定候选抽象数据序列,且每确定一个候选抽象数据序列时就发送给CPU,CPU同步接收并计算各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离,从而得到与第一原始数据距离最近的原始数据序列。需要说明的是,CPU计算候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离的处理过程与GPU确定候选抽象数据序列的过程是同步进行的,由此可见,本发明实施例充分利用了GPU的多核处理能力,从而降低了CPU的处理压力,本发明实施例提供的这种并行查询应答方案,通过利用GPU和CPU协同计算,混合快速的响应数据序列的相似性搜索,不但可以减轻CPU的计算量,还可以大大加速数据序列相似性搜索的响应速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1是本发明一实施例提供的一种基于GPU和CPU的相似数据查询方法的流程图;
图2是本发明一实施例提供的一种基于GPU和CPU的相似数据查询方法的编码图;
图3是本发明一实施例提供的另一种基于GPU和CPU的相似数据查询方法的流程图;
图4是本发明一实施例提供的一种基于GPU和CPU的相似数据查询系统的示意图;
图5是本发明一实施例的电子设备的结构示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1示出了本发明一实施例提供的一种基于GPU和CPU的相似数据查询方法的流程图,图2是本发明一实施例提供的一种基于GPU和CPU的相似数据查询方法的编码图,图3是本发明一实施例提供的另一种基于GPU和CPU的相似数据查询方法的流程图。下面结合图1、图2和图3对本发明实施例提供的基于GPU和CPU的相似数据查询方法进行详细解释和说明。如图1所示,本发明实施例提供的一种基于GPU和CPU的相似数据查询方法,具体包括如下内容:
步骤101:CPU对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列,并根据所述第一抽象数据序列查询索引树,获取所述索引树中与所述第一抽象数据序列距离最近的节点,并根据所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离确定中间值;
在本步骤中,第一原始数据序列为待进行相似性搜索的数据序列,第一抽象数据序列为对待进行相似性搜索的第一原始数据序列进行抽象编码处理后得到的。其中,所述抽象编码处理的具体方式为:利用iSAX representation对第一原始数据序列进行抽象,以符号化表示,如图2所示,首先将(y轴)空间划分为不同的区域,然后为每个区域分配一个按位的符号。实际上,符号的数量很少:iSAX仅用256个符号即可实现非常好的近似,最大字母基数可由8位表示。然后,它用PAA所属区域的符号来表示该系列的每个分段,从而形成如图2所示的抽象序列102002112(下标表示用来表示每个分段的符号的位数)。因此,基于编码的不同,不同的序列在不同的节点,节点下的序列有着相似的特征。简单来说,PAA就是先把第一原始数据序列分成等长的w段子序列,然后用每段子序列的均值来代替这段子序列,从而可以减少第一原始数据序列的数据量和对数据进行编码化以进行分类,进而生成的第一抽象数据序列的序列长度小于第一原始数据序列的序列长度。
在本步骤中,首先对原始数据集进行抽象编码处理得到抽象数据序列集合,然后根据获取的抽象数据序列结合构建树形索引,生成索引树,所述索引树可以看成归类后的编码抽象数据集。其中,对原始数据集进行抽象编码处理的方式和步骤101相同。需要说明的是,基于抽象数据序列集合构建树形索引时,将相似的抽象数据序列聚类到树形索引的同一节点中,即树形索引中的各个节点包括多个相似的抽象数据序列。在生成索引树后,CPU根据第一抽象数据序列查询索引树,找到在索引树中与第一抽象数据序列距离最近的节点,并根据节点中包含的所有抽象数据序列所对应的各原始数据序列与第一原始数据序列的欧式距离确定中间值,其中,各原始数据序列与第一原始数据序列的欧式距离可以用下面公计算:
其中,T表示长度为n的第一原始数据序列,S表示长度为n的原始数据序列,Ti表示长度为n的第一原始数据序列的第i个点,Si表示长度为n的原始数据序列的第i个点。在计算节点中包含的所有抽象数据序列所对应的各原始数据序列与第一原始数据序列的欧式距离后,得到最小距离视为中间值。
步骤102:CPU将所述中间值、所述第一抽象数据序列以及所述抽象数据序列集合发送给GPU,以使GPU计算所述第一抽象数据序列与所述抽象数据序列集合中各个抽象数据序列的距离,并使GPU将计算得到的各个距离与所述中间值进行比较,并根据比较结果确定所述抽象数据序列集合中与所述第一抽象数据序列相似的候选抽象数据序列;
在本步骤中,由于步骤101得到的中间值虽然已经足够接近第一原始数据序列,但在数据序列集合中可能存在与第一原始数据序列距离更小的数据序列,因此,上述步骤所得到的中间值仍是一个近似值。因此,在本步骤中,CPU将计算得到的中间值、第一抽象数据序列以及抽象数据序列集合发送给GPU,GPU计算第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的下限距离,计算公式如下:
其中,T为第一原始数据序列,S为原始数据集中的原始数据序列,MINDIST(T,S)为第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的距离,t为第一抽象数据序列,s为抽象数据序列集合中的抽象数据序列,ti为第一抽象数据序列的第i个点,si为抽象数据序列集合中的抽象数据序列的第i个点,w为第一抽象数据序列长度。将第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的下限距离与步骤102得到的中间值进行比较,若当前抽象数据序列的下限距离小于中间值,则将该抽象数据序列列为与第一抽象数据序列相似的候选抽象数据序列,且每确定一个候选抽象数据序列时,就将该候选抽象数据序列发送给CPU。通过上述每确定一个候选抽象数据序列时,就将该候选抽象数据序列发送给CPU的方式,使得在GPU计算的同时CPU也能及时响应请求,从而极大地提高了相似性搜索的效率,而现有的相似性搜索大多是采用多线程硬盘读取技术,进而整体加速了从硬盘读取数据的时间,或是利用树形索引等技术,削减的整体计算量以达到加速的目的,然而这些方案都是基于多核CPU的多线程技术。它们并没有利用GPU的加速能力,因此,在CPU核心数的限制下,加速能力较为有限,而本发明实施例利用GPU和CPU协同计算,响应相似性搜索。能更好地分配计算量,更快的响应相似性搜索。
步骤103:CPU同步接收GPU发送的各候选抽象数据序列,并根据接收到的各候选抽象数据序列,计算各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离,并将最小距离对应的原始数据序列作为所述第一原始数据序列的相似数据序列;
在本步骤中,在GPU将确定的候选抽象数据序列发送给CPU后,CPU根据接收到的各个候选抽象数据序列,计算各个候选抽象数据序列对应的原始数据集中的原始数据序列与第一原始数据序列的真实距离,在CPU计算完所有GPU传来的候选抽象数据序列对应的原始数据集中的原始数据序列与第一原始数据序列的真实距离后,将距离最小对应的原始数据序列作为第一原始数据序列的相似数据序列。
在本步骤中,需要说明的是,CPU计算候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离的处理过程与GPU确定候选抽象数据序列的过程是同步进行的,即CPU和GPU的计算是以流的形式同步进行的(streaming)。GPU在计算下限距离,确定候选抽象数据序列的同时,逐块传回候选抽象数据序列到CPU,CPU计算GPU刚刚发送过来的候选抽象数据序列的真实距离,并互相更新以更快速的响应请求。最后,在扫描了全部抽象数据序列集和全部候选抽象数据序列后,得到了最相似的序列。
由上面技术方案可知,本发明实施例提供的基于GPU和CPU的相似数据查询方法,通过CPU对待进行相似数据查询的第一原始数据序列进行抽象编码处理得到第一抽象数据序列,并根据第一抽象数据序列查询索引树,找到与第一抽象数据序列距离最近的节点,根据节点中所有抽象数据序列所对应的各原始数据序列与第一原始数据序列的距离确定中间值,进一步地,CPU将中间值、第一抽象数据序列以及抽象数据序列集合发送给GPU进行处理,GPU计算第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的距离,并将计算得到的各个距离与中间值进行比较从而确定候选抽象数据序列,且每确定一个候选抽象数据序列时就发送给CPU,CPU同步接收并计算各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离,从而得到与第一原始数据距离最近的原始数据序列。需要说明的是,CPU计算候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离的处理过程与GPU确定候选抽象数据序列的过程是同步进行的,由此可见,本发明实施例充分利用了GPU的多核处理能力,从而降低了CPU的处理压力,本发明实施例提供的这种并行查询应答方案,通过利用GPU和CPU协同计算,混合快速的响应数据序列的相似性搜索,不但可以减轻CPU的计算量,还可以大大加速数据序列相似性搜索的响应速度。
基于上述实施例的内容,在本实施例中,CPU对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列,包括:
CPU利用iSAX representation对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列。
在本实施例中,需要说明的是,第一原始数据序列为待进行相似性搜索的数据序列,第一抽象数据序列为对待进行相似性搜索的第一原始数据序列进行抽象编码处理后得到的。其中,所述抽象编码处理的具体方式为:利用iSAX representation对第一原始数据序列进行抽象,以符号化表示,如图2所示,首先将(y轴)空间划分为不同的区域,然后为每个区域分配一个按位的符号。实际上,符号的数量很少:iSAX仅用256个符号即可实现非常好的近似,最大字母基数可由8位表示。然后,它用PAA所属区域的符号来表示该系列的每个分段,从而形成如图2所示的抽象序列102002112(下标表示用来表示每个分段的符号的位数)。因此,基于编码的不同,不同的序列在不同的节点,节点下的序列有着相似的特征。简单来说,PAA就是先把第一原始数据序列分成等长的w段子序列,然后用每段子序列的均值来代替这段子序列,从而可以减少第一原始数据序列的数据量和对数据进行编码化以进行分类,进而生成的第一抽象数据序列的序列长度小于第一原始数据序列的序列长度。
基于上述实施例的内容,在本实施例中,CPU根据所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离确定中间值,包括:
CPU计算所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离,并将计算出的最小距离作为所述间值。
在本实施例中,需要说明的是,在生成索引树后,CPU根据第一抽象数据序列查询索引树,找到在索引树中与第一抽象数据序列距离最近的节点,并根据节点中包含的所有抽象数据序列所对应的各原始数据序列与第一原始数据序列的欧式距离确定中间值,其中,各原始数据序列与第一原始数据序列的欧式距离可以用下面公计算:
其中,T表示长度为n的第一原始数据序列,S表示长度为n的原始数据序列,Ti表示长度为n的第一原始数据序列的第i个点,Si表示长度为n的原始数据序列的第i个点。在计算节点中包含的所有抽象数据序列所对应的各原始数据序列与第一原始数据序列的欧式距离后,得到最小距离视为中间值。
基于上述实施例的内容,在本实施例中,CPU将所述中间值、所述第一抽象数据序列以及所述抽象数据序列集合发送给GPU,以使GPU计算所述第一抽象数据序列与所述抽象数据序列集合中各个抽象数据序列的距离,并使GPU将计算得到的各个距离与所述中间值进行比较,并根据比较结果确定所述抽象数据序列集合中与所述第一抽象数据序列相似的候选抽象数据序列,包括:
CPU将所述中间值、所述第一抽象数据序列以及所述抽象数据序列集合发送给GPU,以使GPU根据第一关系模型计算所述第一抽象数据序列与所述抽象数据序列集合中各个抽象数据序列的距离,并使GPU将计算得到的各个距离与所述中间值进行比较,将小于所述中间值的距离对应的抽象数据序列作为所述抽象数据序列集合中与所述第一抽象数据序列相似的候选抽象数据序列;
其中,第一关系模型为:
其中,T为第一原始数据序列,S为原始数据集中的原始数据序列,MINDIST(T,S)为第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的距离,t为第一抽象数据序列,s为抽象数据序列集合中的抽象数据序列,ti为第一抽象数据序列的第i个点,si为抽象数据序列集合中的抽象数据序列的第i个点,w为第一抽象数据序列长度。
在本实施例中,需要说明的是,CPU将计算得到的中间值、第一抽象数据序列以及抽象数据序列集合发送给GPU,GPU计算第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的下限距离,计算公式如下:
其中,T为第一原始数据序列,S为原始数据集中的原始数据序列,MINDIST(T,S)为第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的距离,t为第一抽象数据序列,s为抽象数据序列集合中的抽象数据序列,ti为第一抽象数据序列的第i个点,si为抽象数据序列集合中的抽象数据序列的第i个点,w为第一抽象数据序列长度。将第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的下限距离与中间值进行比较,若当前抽象数据序列的下限距离小于中间值,则将该抽象数据序列列为与第一抽象数据序列相似的候选抽象数据序列。
基于上述实施例的内容,在本实施例中,还包括:
当CPU通过计算获知各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离中有预设比例个数的距离小于所述中间值时,根据各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离对所述中间值进行更新。
在本实施例中,需要说明的是,若当前抽象数据序列的下限距离小于中间值,则表明在抽象数据序列集合中存在与第一抽象数据序列距离更小的抽象序列,此时将该抽象数据序列列为与第一抽象数据序列相似的候选抽象数据序列;若当CPU通过计算获知各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离,而各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离可能小于中间值,也可能等于或大于中间值。当其小于中间值时,根据各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离对所述中间值进行更新,否则中间值保持不变。本发明实施例当当CPU通过计算获知各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离中有预设比例个数的距离小于所述中间值时,根据各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离对所述中间值进行更新,从而可以保证在更新的过程中一直保持最小距离,最终得到与第一原始数据序列最相似的数据序列。
基于相同的发明构思,本发明另一实施例提供了一种基于GPU和CPU的相似数据查询系统,参见图4,本发明一实施例提供的一种基于GPU和CPU的相似数据查询系统的示意图,该基于GPU和CPU的相似数据查询系统包括:CPU和GPU,其中:
CPU对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列;其中,所述第一抽象数据序列的序列长度小于所述第一原始数据序列的序列长度;
CPU根据所述第一抽象数据序列查询索引树,获取所述索引树中与所述第一抽象数据序列距离最近的节点,并根据所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离确定中间值;其中,所述索引树是对预设原始数据集进行抽象编码处理获取抽象数据序列集合后基于获取的抽象数据序列集合构建的树形索引,其中,在基于抽象数据序列集合构建所述树形索引时,将相似的抽象数据序列聚类到树形索引的同一节点;
CPU将所述中间值、所述第一抽象数据序列以及所述抽象数据序列集合发送给GPU;
GPU计算所述第一抽象数据序列与所述抽象数据序列集合中各个抽象数据序列的距离,并使GPU将计算得到的各个距离与所述中间值进行比较,并根据比较结果确定所述抽象数据序列集合中与所述第一抽象数据序列相似的候选抽象数据序列,并使GPU在每确定出一个候选抽象数据序列时将确定出的候选抽象数据序列发送给CPU;
CPU同步接收GPU发送的各候选抽象数据序列,并根据接收到的各候选抽象数据序列,计算各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离,并将最小距离对应的原始数据序列作为所述第一原始数据序列的相似数据序列;
在本实施例中,CPU对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列;其中,所述第一抽象数据序列的序列长度小于所述第一原始数据序列的序列长度;
在本实施例中,第一原始数据序列为待进行相似性搜索的数据序列,第一抽象数据序列为对待进行相似性搜索的第一原始数据序列进行抽象编码处理后得到的。其中,所述抽象编码处理的具体方式为:利用iSAX representation对第一原始数据序列进行抽象,以符号化表示,如图2所示,首先将(y轴)空间划分为不同的区域,然后为每个区域分配一个按位的符号。实际上,符号的数量很少:iSAX仅用256个符号即可实现非常好的近似,最大字母基数可由8位表示。然后,它用PAA所属区域的符号来表示该系列的每个分段,从而形成如图2所示的抽象序列102002112(下标表示用来表示每个分段的符号的位数)。因此,基于编码的不同,不同的序列在不同的节点,节点下的序列有着相似的特征。简单来说,PAA就是先把第一原始数据序列分成等长的w段子序列,然后用每段子序列的均值来代替这段子序列,从而可以减少第一原始数据序列的数据量和对数据进行编码化以进行分类,进而生成的第一抽象数据序列的序列长度小于第一原始数据序列的序列长度。
在本实施例中,首先对原始数据集进行抽象编码处理得到抽象数据序列集合,然后根据获取的抽象数据序列结合构建树形索引,生成索引树,所述索引树可以看成归类后的编码抽象数据集。其中,对原始数据集进行抽象编码处理的方式和上一实施例相同。需要说明的是,基于抽象数据序列集合构建树形索引时,将相似的抽象数据序列聚类到树形索引的同一节点中,即树形索引中的各个节点包括多个相似的抽象数据序列。在生成索引树后,CPU根据第一抽象数据序列查询索引树,找到在索引树中与第一抽象数据序列距离最近的节点,并根据节点中包含的所有抽象数据序列所对应的各原始数据序列与第一原始数据序列的欧式距离确定中间值,其中,各原始数据序列与第一原始数据序列的欧式距离可以用下面公计算:
其中,T表示长度为n的第一原始数据序列,S表示长度为n的原始数据序列,Ti表示长度为n的第一原始数据序列的第i个点,Si表示长度为n的原始数据序列的第i个点。在计算节点中包含的所有抽象数据序列所对应的各原始数据序列与第一原始数据序列的欧式距离后,得到最小距离视为中间值。
在本实施例中,由于上述实施例得到的中间值虽然已经足够接近第一原始数据序列,但在数据序列集合中可能存在与第一原始数据序列距离更小的数据序列,因此,上述实施例所得到的中间值仍是一个近似值。因此,在本实施例中,CPU将计算得到的中间值、第一抽象数据序列以及抽象数据序列集合发送给GPU,GPU计算第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的下限距离,计算公式如下:
其中,T为第一原始数据序列,S为原始数据集中的原始数据序列,MINDIST(T,S)为第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的距离,t为第一抽象数据序列,s为抽象数据序列集合中的抽象数据序列,ti为第一抽象数据序列的第i个点,si为抽象数据序列集合中的抽象数据序列的第i个点,w为第一抽象数据序列长度。将第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的下限距离与上述实施例得到的中间值进行比较,若当前抽象数据序列的下限距离小于中间值,则将该抽象数据序列列为与第一抽象数据序列相似的候选抽象数据序列,且每确定一个候选抽象数据序列时,就将该候选抽象数据序列发送给CPU。通过上述每确定一个候选抽象数据序列时,就将该候选抽象数据序列发送给CPU的方式,使得在GPU计算的同时CPU也能及时响应请求,从而极大地提高了相似性搜索的效率。
在本实施例中,在GPU将确定的候选抽象数据序列发送给CPU后,CPU根据接收到的各个候选抽象数据序列,计算各个候选抽象数据序列对应的原始数据集中的原始数据序列与第一原始数据序列的真实距离,在CPU计算完所有GPU传来的候选抽象数据序列对应的原始数据集中的原始数据序列与第一原始数据序列的真实距离后,将距离最小对应的原始数据序列作为第一原始数据序列的相似数据序列。
在本实施例中,需要说明的是,CPU计算候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离的处理过程与GPU确定候选抽象数据序列的过程是同步进行的,即CPU和GPU的计算是以流的形式同步进行的(streaming)。GPU在计算下限距离,确定候选抽象数据序列的同时,逐块传回候选抽象数据序列到CPU,CPU计算GPU刚刚发送过来的候选抽象数据序列的真实距离,并互相更新以更快速的响应请求。最后,在扫描了全部抽象数据序列集和全部候选抽象数据序列后,得到了最相似的序列。
在本实施例中,需要说明的是,由于数据系列生产的速度和数量的持续增长,集合的大小增长到数PB,呈现了传统的串行执行数据系列索引技术不足,而现有的并行和分布式索引,聚焦于利用CPU的多核性能提升请求的响应时间,即利用树形索引等技术和基于多核CPI的多线程技术,削减整体计算量以达到加速的目的,然而在CPU核心数的限制下,其加速能力有限。而基于GPU的处理方案,还停留在暴力搜索算法上,没有用于加速索引的响应,并且针对于PB级数据量,暴力搜索算法需要把所有数据传输到GPU的内存中,而PCIE总线的带宽却无法短时间传输如此大量的数据。因此,目前对于相似性搜索的方案,都没有利用GPU的加速能力,整个相似性搜索的响应速度有待提升。
由上面技术方案可知,本发明实施例提供的基于GPU和CPU的相似数据查询系统,通过CPU对待进行相似数据查询的第一原始数据序列进行抽象编码处理得到第一抽象数据序列,并根据第一抽象数据序列查询索引树,找到与第一抽象数据序列距离最近的节点,根据节点中所有抽象数据序列所对应的各原始数据序列与第一原始数据序列的距离确定中间值,进一步地,CPU将中间值、第一抽象数据序列以及抽象数据序列集合发送给GPU进行处理,GPU计算第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的距离,并将计算得到的各个距离与中间值进行比较从而确定候选抽象数据序列,且每确定一个候选抽象数据序列时就发送给CPU,CPU同步接收并计算各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离,从而得到与第一原始数据距离最近的原始数据序列。需要说明的是,CPU计算候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离的处理过程与GPU确定候选抽象数据序列的过程是同步进行的,由此可见,本发明实施例充分利用了GPU的多核处理能力,从而降低了CPU的处理压力,本发明实施例提供的这种并行查询应答方案,通过利用GPU和CPU协同计算,混合快速的响应数据序列的相似性搜索,不但可以减轻CPU的计算量,还可以大大加速数据序列相似性搜索的响应速度。
基于上述实施例的内容,在本实施例中,CPU在对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列时,具体用于:
CPU利用iSAX representation对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列。
在本实施例中,需要说明的是,第一原始数据序列为待进行相似性搜索的数据序列,第一抽象数据序列为对待进行相似性搜索的第一原始数据序列进行抽象编码处理后得到的。其中,所述抽象编码处理的具体方式为:利用iSAX representation对第一原始数据序列进行抽象,以符号化表示,如图2所示,首先将(y轴)空间划分为不同的区域,然后为每个区域分配一个按位的符号。实际上,符号的数量很少:iSAX仅用256个符号即可实现非常好的近似,最大字母基数可由8位表示。然后,它用PAA所属区域的符号来表示该系列的每个分段,从而形成如图2所示的抽象序列102002112(下标表示用来表示每个分段的符号的位数)。因此,基于编码的不同,不同的序列在不同的节点,节点下的序列有着相似的特征。简单来说,PAA就是先把第一原始数据序列分成等长的w段子序列,然后用每段子序列的均值来代替这段子序列,从而可以减少第一原始数据序列的数据量和对数据进行编码化以进行分类,进而生成的第一抽象数据序列的序列长度小于第一原始数据序列的序列长度。
基于上述实施例的内容,在本实施例中,CPU在根据所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离确定中间值时,具体用于:
CPU计算所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离,并将计算出的最小距离作为所述间值。
在本实施例中,需要说明的是,在生成索引树后,CPU根据第一抽象数据序列查询索引树,找到在索引树中与第一抽象数据序列距离最近的节点,并根据节点中包含的所有抽象数据序列所对应的各原始数据序列与第一原始数据序列的欧式距离确定中间值,其中,各原始数据序列与第一原始数据序列的欧式距离可以用下面公计算:
其中,T表示长度为n的第一原始数据序列,S表示长度为n的原始数据序列,Ti表示长度为n的第一原始数据序列的第i个点,Si表示长度为n的原始数据序列的第i个点。在计算节点中包含的所有抽象数据序列所对应的各原始数据序列与第一原始数据序列的欧式距离后,得到最小距离视为中间值。
本实施例所述的基于GPU和CPU的相似数据查询系统可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。
基于相同的发明构思,本发明又一实施例提供了一种电子设备,参见图5所述电子设备的结构示意图,具体包括如下内容:处理器501、存储器502、通信接口503和通信总线504;
其中,所述处理器501、存储器502、通信接口503通过所述通信总线504完成相互间的通信;所述通信接口503用于实现各设备之间的信息传输;
所述处理器401用于调用所述存储器402中的计算机程序,所述处理器执行所述计算机程序时实现上述一种基于GPU和CPU的相似数据查询方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
CPU对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列;其中,所述第一抽象数据序列的序列长度小于所述第一原始数据序列的序列长度;
CPU根据所述第一抽象数据序列查询索引树,获取所述索引树中与所述第一抽象数据序列距离最近的节点,并根据所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离确定中间值;其中,所述索引树是对预设原始数据集进行抽象编码处理获取抽象数据序列集合后基于获取的抽象数据序列集合构建的树形索引,其中,在基于抽象数据序列集合构建所述树形索引时,将相似的抽象数据序列聚类到树形索引的同一节点;
CPU将所述中间值、所述第一抽象数据序列以及所述抽象数据序列集合发送给GPU,以使GPU计算所述第一抽象数据序列与所述抽象数据序列集合中各个抽象数据序列的距离,并使GPU将计算得到的各个距离与所述中间值进行比较,并根据比较结果确定所述抽象数据序列集合中与所述第一抽象数据序列相似的候选抽象数据序列,并使GPU在每确定出一个候选抽象数据序列时将确定出的候选抽象数据序列发送给CPU;
CPU同步接收GPU发送的各候选抽象数据序列,并根据接收到的各候选抽象数据序列,计算各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离,并将最小距离对应的原始数据序列作为所述第一原始数据序列的相似数据序列;
其中,CPU计算候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离的处理过程与GPU确定候选抽象数据序列的过程是同步进行的。
基于相同的发明构思,本发明又一实施例提供了一种非暂态计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述基于GPU和CPU的相似数据查询方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
CPU对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列;其中,所述第一抽象数据序列的序列长度小于所述第一原始数据序列的序列长度;
CPU根据所述第一抽象数据序列查询索引树,获取所述索引树中与所述第一抽象数据序列距离最近的节点,并根据所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离确定中间值;其中,所述索引树是对预设原始数据集进行抽象编码处理获取抽象数据序列集合后基于获取的抽象数据序列集合构建的树形索引,其中,在基于抽象数据序列集合构建所述树形索引时,将相似的抽象数据序列聚类到树形索引的同一节点;
CPU将所述中间值、所述第一抽象数据序列以及所述抽象数据序列集合发送给GPU,以使GPU计算所述第一抽象数据序列与所述抽象数据序列集合中各个抽象数据序列的距离,并使GPU将计算得到的各个距离与所述中间值进行比较,并根据比较结果确定所述抽象数据序列集合中与所述第一抽象数据序列相似的候选抽象数据序列,并使GPU在每确定出一个候选抽象数据序列时将确定出的候选抽象数据序列发送给CPU;
CPU同步接收GPU发送的各候选抽象数据序列,并根据接收到的各候选抽象数据序列,计算各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离,并将最小距离对应的原始数据序列作为所述第一原始数据序列的相似数据序列;
其中,CPU计算候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离的处理过程与GPU确定候选抽象数据序列的过程是同步进行的。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的基于GPU和CPU的相似数据查询方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于GPU和CPU的相似数据查询方法,其特征在于,包括:
CPU对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列,并根据所述第一抽象数据序列查询索引树,获取所述索引树中与所述第一抽象数据序列距离最近的节点,并根据所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离确定中间值;
CPU将所述中间值、所述第一抽象数据序列以及所述抽象数据序列集合发送给GPU,以使GPU计算所述第一抽象数据序列与所述抽象数据序列集合中各个抽象数据序列的距离,并使GPU将计算得到的各个距离与所述中间值进行比较,并根据比较结果确定所述抽象数据序列集合中与所述第一抽象数据序列相似的候选抽象数据序列;
CPU同步接收GPU发送的各候选抽象数据序列,并根据接收到的各候选抽象数据序列,计算各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离,并将最小距离对应的原始数据序列作为所述第一原始数据序列的相似数据序列。
2.根据权利要求1所述的基于GPU和CPU的相似数据查询方法,其特征在于,CPU对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列,包括:
CPU利用iSAX representation对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列。
3.根据权利要求1所述的基于GPU和CPU的相似数据查询方法,其特征在于,CPU根据所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离确定中间值,包括:
CPU计算所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离,并将计算出的最小距离作为所述间值。
4.根据权利要求1所述的基于GPU和CPU的相似数据查询方法,其特征在于,CPU将所述中间值、所述第一抽象数据序列以及所述抽象数据序列集合发送给GPU,以使GPU计算所述第一抽象数据序列与所述抽象数据序列集合中各个抽象数据序列的距离,并使GPU将计算得到的各个距离与所述中间值进行比较,并根据比较结果确定所述抽象数据序列集合中与所述第一抽象数据序列相似的候选抽象数据序列,包括:
CPU将所述中间值、所述第一抽象数据序列以及所述抽象数据序列集合发送给GPU,以使GPU根据第一关系模型计算所述第一抽象数据序列与所述抽象数据序列集合中各个抽象数据序列的距离,并使GPU将计算得到的各个距离与所述中间值进行比较,将小于所述中间值的距离对应的抽象数据序列作为所述抽象数据序列集合中与所述第一抽象数据序列相似的候选抽象数据序列;
其中,第一关系模型为:
其中,T为第一原始数据序列,S为原始数据集中的原始数据序列,MINDIST(T,S)为第一抽象数据序列与抽象数据序列集合中各个抽象数据序列的距离,t为第一抽象数据序列,s为抽象数据序列集合中的抽象数据序列,ti为第一抽象数据序列的第i个点,si为抽象数据序列集合中的抽象数据序列的第i个点,w为第一抽象数据序列长度。
5.根据权利要求1所述的基于GPU和CPU的相似数据查询方法,其特征在于,还包括:
当CPU通过计算获知各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离中有预设比例个数的距离小于所述中间值时,根据各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离对所述中间值进行更新。
6.一种基于GPU和CPU的相似数据查询系统,其特征在于,包括:CPU和GPU,其中:
CPU对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列;其中,所述第一抽象数据序列的序列长度小于所述第一原始数据序列的序列长度;
CPU根据所述第一抽象数据序列查询索引树,获取所述索引树中与所述第一抽象数据序列距离最近的节点,并根据所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离确定中间值;其中,所述索引树是对预设原始数据集进行抽象编码处理获取抽象数据序列集合后基于获取的抽象数据序列集合构建的树形索引,其中,在基于抽象数据序列集合构建所述树形索引时,将相似的抽象数据序列聚类到树形索引的同一节点;
CPU将所述中间值、所述第一抽象数据序列以及所述抽象数据序列集合发送给GPU;
GPU计算所述第一抽象数据序列与所述抽象数据序列集合中各个抽象数据序列的距离,并使GPU将计算得到的各个距离与所述中间值进行比较,并根据比较结果确定所述抽象数据序列集合中与所述第一抽象数据序列相似的候选抽象数据序列,并使GPU在每确定出一个候选抽象数据序列时将确定出的候选抽象数据序列发送给CPU;
CPU同步接收GPU发送的各候选抽象数据序列,并根据接收到的各候选抽象数据序列,计算各候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离,并将最小距离对应的原始数据序列作为所述第一原始数据序列的相似数据序列;
其中,CPU计算候选抽象数据序列对应的原始数据序列与第一原始数据序列的距离的处理过程与GPU确定候选抽象数据序列的过程是同步进行的。
7.根据权利要求6所述的基于GPU和CPU的相似数据查询系统,其特征在于,CPU在对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列时,具体用于:
CPU利用iSAX representation对待进行相似数据查询的第一原始数据序列进行抽象编码处理,获取第一抽象数据序列。
8.根据权利要求6所述的基于GPU和CPU的相似数据查询系统,其特征在于,CPU在根据所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离确定中间值时,具体用于:
CPU计算所述节点中包含的所有抽象数据序列所对应的各原始数据序列与所述第一原始数据序列的距离,并将计算出的最小距离作为所述间值。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述基于GPU的数据处理方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至5任一项所述基于GPU的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011232695.8A CN112256725B (zh) | 2020-11-06 | 2020-11-06 | 一种基于gpu和cpu的相似数据查询方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011232695.8A CN112256725B (zh) | 2020-11-06 | 2020-11-06 | 一种基于gpu和cpu的相似数据查询方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112256725A true CN112256725A (zh) | 2021-01-22 |
CN112256725B CN112256725B (zh) | 2024-10-15 |
Family
ID=74266463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011232695.8A Active CN112256725B (zh) | 2020-11-06 | 2020-11-06 | 一种基于gpu和cpu的相似数据查询方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256725B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761017A (zh) * | 2021-01-28 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 相似性搜索方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404675A (zh) * | 2015-11-20 | 2016-03-16 | 苏州大学 | Ranked反近邻空间关键字查询方法及装置 |
CN105740312A (zh) * | 2014-12-27 | 2016-07-06 | 达索系统公司 | 使数据库查询形成聚类以用于运行时间预测 |
-
2020
- 2020-11-06 CN CN202011232695.8A patent/CN112256725B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740312A (zh) * | 2014-12-27 | 2016-07-06 | 达索系统公司 | 使数据库查询形成聚类以用于运行时间预测 |
CN105404675A (zh) * | 2015-11-20 | 2016-03-16 | 苏州大学 | Ranked反近邻空间关键字查询方法及装置 |
Non-Patent Citations (1)
Title |
---|
骆歆远;陈刚;伍赛;: "基于GPU加速的超精简型编码数据库系统", 计算机研究与发展, no. 02, pages 362 - 375 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761017A (zh) * | 2021-01-28 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 相似性搜索方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112256725B (zh) | 2024-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yue et al. | Black-box attacks on sequential recommenders via data-free model extraction | |
Singh et al. | Probabilistic data structures for big data analytics: A comprehensive review | |
Zhou et al. | Compressed labeling on distilled labelsets for multi-label learning | |
US11645585B2 (en) | Method for approximate k-nearest-neighbor search on parallel hardware accelerators | |
CN110719106B (zh) | 一种基于节点分类排序的社交网络图压缩方法及系统 | |
CN114245896A (zh) | 向量查询方法、装置、电子设备及存储介质 | |
JP2013206193A (ja) | 情報変換プログラム、情報変換装置および情報変換方法 | |
CN107783998A (zh) | 一种数据处理的方法以及装置 | |
CN114420215A (zh) | 基于生成树的大规模生物数据聚类方法及系统 | |
CN113568940A (zh) | 数据查询的方法、装置、设备以及存储介质 | |
Pham et al. | Scalability and total recall with fast CoveringLSH | |
CN114332500A (zh) | 图像处理模型训练方法、装置、计算机设备和存储介质 | |
CN112256725A (zh) | 一种基于gpu和cpu的相似数据查询方法及系统 | |
Zhang et al. | Continuous top-k monitoring on document streams | |
CN117648495B (zh) | 一种基于云原生向量数据的数据推送方法及系统 | |
Wu et al. | Efficient inner product approximation in hybrid spaces | |
Wang et al. | Idea: An invariant perspective for efficient domain adaptive image retrieval | |
CN110390011B (zh) | 数据分类的方法和装置 | |
CN113269238A (zh) | 一种基于密度峰值的数据流聚类方法及装置 | |
CN110209895B (zh) | 向量检索方法、装置和设备 | |
CN107944045B (zh) | 基于t分布哈希的图像检索方法及系统 | |
CN113781156B (zh) | 恶意订单的识别方法、模型的训练方法、设备及存储介质 | |
CN111460088A (zh) | 相似文本的检索方法、装置和系统 | |
CN114880360A (zh) | 一种基于贝叶斯优化的数据检索方法及装置 | |
CN113609313A (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 |