掌桥专利:专业的专利平台
掌桥专利
首页

搜索方法、可读存储介质和电子设备

文献发布时间:2023-06-19 09:30:39


搜索方法、可读存储介质和电子设备

技术领域

本发明涉及计算机技术领域,尤其涉及一种搜索方法、可读存储介质和电子设备。

背景技术

相似度查询泛指通过比较相似性,对一些数据对象进行搜索,例如在图片库里搜索和指定的某张图片最相似的一张或多张图片。在现代大数据运用中,数据规模愈加庞大,数据类型也更多种多样,进行高效的相似度查询变得尤为重要,例如对文字、图片、语音、视频等复杂的数据进行查询。目前在进行相似度搜索时我们通常选用的方法为最邻近搜索。所述最邻近搜索是指在搜索空间内找到距离指定的搜索对象最近的一个或多个数据,包括多种算法。其中用于判断与所述指定的搜索对象距离的依据有很多种,最经典的是欧几里得距离。但现有的最邻近搜索算法不支持在数据集带有额外属性标签的情况下,在搜索时筛选数据的属性标签。例如,现有算法能够在图片库里找到和某张人脸最相似的图片,但在搜索时不能筛选出带有“年龄为20岁”“喜欢打篮球”等属性标签,并和搜索人脸对象最相似的图片。

发明内容

有鉴于此,本发明实施例提供一种搜索方法、可读存储介质和电子设备,旨在进行最邻近搜索的时能够通过属性标签对数据进行筛选。

第一方面,本发明实施例提供了一种搜索方法,包括:

根据输入对象确定检索特征向量和第一标签;

根据第一标签和所述检索特征向量确定第一数据集,所述第一数据集包括至少一个数据子集,每个所述数据子集包括多个经聚类的特征向量和与所述特征向量对应的第二标签;

确定所述每个数据子集的筛选模式,所述筛选模式包括在中央处理器或图形处理器中进行筛选;

根据所述第一标签和确定的筛选模式对所述第一数据集中的数据子集进行筛选;

将所述检索特征向量和筛选的数据子集中的特征向量进行匹配;

根据匹配结果确定输出数据。

进一步地,所述根据第一标签和所述检索特征向量确定第一数据集包括:

确定第二数据集,所述第二数据集包含全部可搜索的数据子集;

根据所述第一标签和每个数据子集中包含的特征向量对应的第二标签确定筛选强度,所述筛选强度用于判断每个数据子集经筛选后包含的特征向量数量;

根据所述第二数据集中包含的数据子集数量和每个数据子集对应的筛选强度确定所述第一数据集中包含的数据子集数量N;

计算所述检索特征向量与所述第二数据集包含的每个数据子集中心的距离,所述数据子集中心用于表征对应的数据子集;

根据所述距离确定N个数据子集组成第一数据集。

进一步地,所述确定所述每个数据子集的筛选模式包括:

响应于所述数据子集对应的筛选强度高于第一阈值,确定所述数据子集的筛选模式为在所述中央处理器中进行筛选。

进一步地,所述确定所述每个数据子集的筛选模式包括:

响应于所述数据子集对应的筛选强度低于第一阈值,确定所述数据子集的筛选模式为在所述图形处理器中进行筛选。

进一步地,所述根据所述第一标签和确定的筛选模式对所述第一数据集中的数据子集进行筛选包括:

响应于所述数据子集的筛选模式为在所述图形处理器中进行筛选,将所述数据子集传输至所述图形处理器进行筛选。

进一步地,所述根据所述第一标签和确定的筛选模式对所述第一数据集中的数据子集进行筛选包括:

响应于所述数据子集的筛选模式为在所述中央处理器中进行筛选,通过中央处理器的第一处理单元在所述中央处理器中进行数据子集的筛选;以及

在筛选完成后,通过所述中央处理器的第二处理单元将所述筛选后的数据子集传输至所述图形处理器。

进一步地,在所述第二处理单元将所述筛选后的数据子集传输至所述图形处理器的同时,通过所述第一处理单元处理下一个数据子集的筛选。

进一步地,所述通过所述中央处理器的第二处理单元将所述筛选后的数据子集传输至所述图形处理器包括:

响应于多个完成筛选的数据子集中包含的特征向量数量小于第二阈值,

将所述多个数据子集合成一个数据子集后传输至所述图形处理器。

第二方面,本发明实施例还提供一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面任一项所述的方法。

第三方面,本发明实施例还提供一种计算机可读存储介质,用于存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如第一方面任一项所述的方法。

本申请实施例基于中央处理器(CPU)和图形处理器(GPU)构成的异构计算机架构对数据进行搜索,实现了搜索时根据属性标签对数据进行筛选,且利用了图形处理器并行加速的优势,避免了在图形处理器中做数据处理时因数据规模庞大产生的性能瓶颈。同时通过构建流水线并行的进行数据筛选,传输和计算搜索操作,有效的掩盖在中央处理器中对数据进行筛选及拷贝所产生的额外开销。

附图说明

通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1为异构计算机架构的示意图;

图2为本发明实施例的搜索方法的流程图;

图3为本发明实施例的一种可选实现方式根据第一标签和所述检索特征向量确定第一数据集的流程图;

图4为本发明实施例的确定第二数据集过程的示意图;

图5为本发明实施例的数据筛选步骤和数据传输步骤构成的流水线示意图;

图6为本发明实施例的一种电子设备示意图。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程并没有详细叙述。

此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。

除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。

在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

图1为异构计算机架构的示意图,如图1所示,所述异构计算机架构由中央处理器(CPU)和图形处理器(GPU)组成,所述中央处理器和图形处理器通过高速串行总线(PCIe-bus)连接。

具体地,所述中央处理器和所述图形处理器的运算核心包括控制单元(control)10、运算器(ALU)11、高速缓冲存储器(cache)12和动态随机存取存储器(DRAM)13。由图可见,中央处理器中的中的运算核心较少而图形处理器中的运算核心较多,使得所述图形处理器更为适合执行计算简单但并行性高的任务,而所述中央处理器更为适合执行计算复杂但并行性低的任务。在本发明实施例提供的搜索方法过程中,可以通过中央处理器处理计算复杂且并行性较低的任务,例如确定第一数据集、确定每个数据子集的筛选模式等过程。同时可以通过图形处理器处理计算简单但并行性高的任务,例如将所述检索特征向量和筛选的数据子集中的特征向量进行匹配。但通过所述异构计算机架构进行搜索时,会产生如下问题:因大量数据从计算机主存向图形处理器的全局内存传输导致的数据处理的性能瓶颈;因所述图形处理器显存的存储空间大小限制单批次能够处理数据的规模,一旦数据量大于全局内存容量,则所述数据处理的过程中需要在计算机主存和所述图形处理器显存之间进行大量的数据倒换,进一步增加数据传输开销,影响处理性能。

因此,本发明实施例所述搜索方法基于中央处理器(CPU)和图形处理器(GPU)构成的异构计算机架构对数据进行搜索,实现了搜索时根据属性标签对数据进行筛选,同时通过合理利用图形处理器并行加速的优势,对数据集进行特征筛选与计算搜算,避免了在图形处理器中做数据处理时因数据规模庞大产生的性能瓶颈。同时构建了一个包括在中央处理器中数据筛选步骤和由中央处理器至图形处理器数据传输步骤的流水线,通过流水线内各部件并行的进行数据筛选,传输和计算搜索操作,有效地掩盖在中央处理器中对数据进行筛选及拷贝所产生的额外开销。

图2为本发明实施例的搜索方法的流程图,如图2所示,所述搜索方法包括:

步骤S100:根据输入对象确定检索特征向量和第一标签。

具体地,所述输入对象为搜索数据,例如可以是图片、文字等数据,在进行搜索之前先将所述输入对象转换成适合进行数据分析、处理和计算的形式,例如将所述输入对象转换为检索特征向量。其中所述转换方法例如可以是卷积神经网络(CNN)等。所述第一标签包含至少一个与所述输入对象对应的属性标签,用于在搜索过程中对数据子集进行筛选。在对所述输入对象进行转换的过程中,不对所述第一标签进行转换。所述第一标签为表征所述输入对象某些属性的标签,例如,所述输入对象为图片时,所述第一标签用于表征所述图片的某些特征,例如所述图片的拍摄地址、以及所述图片中人物或所述图片拍摄者的某些属性,包括爱好、年龄、学历等。

步骤S200:根据第一标签和所述检索特征向量确定第一数据集。

具体地,所述第一数据集包括至少一个数据子集,每个所述数据子集包括多个经聚类的特征向量和与所述特征向量对应的第二标签。所述第一数据集中的特征向量所表征的数据与所述输入对象的数据类型相同,例如当所述输入对象为图片时,所述第一数据集中的特征向量均为用于表征图片的特征向量。所述第二标签包括至少一个表征所述数据集中对应的特征向量的某些特征的标签,例如,所述输入对象为图片时,所述第一数据集中的特征向量均为用于表征图片的特征向量,所述第二标签用于表征图片的某些特征,例如当所述图片内容为一个男孩时,所述第二标签例如可以是这个男孩的“出生地:北京”、“年龄:二十岁”、“职业:学生”等。所述第一数据集由可选择搜索数据中的一部分数据组成。根据所述第一标签和所述第一数据集中包含的特征向量对应的第二标签可以确定所述第一标签的筛选强度。所述筛选强度可以通过计算所述第二数据集中属性标签的数据分布情况估算。例如,确定所述第二数据集包含的属性标签中出现频率较高的属性标签,和每种属性标签在所述第二数据集中出现的频率。再根据所述第一标签中每种属性标签是否为出现频率较高的属性标签,以及所述第一标签中每种属性标签在所述第二数据集中出现的频率。由此估算所述第一标签在所述第二数据集的属性标签中占有的百分比,确定1减去所述百分比得到的值为筛选强度。所述第一标签用于对每个数据子集进行筛选,所述筛选强度用于判断每个数据子集经筛选后包含的特征向量数量,即当所述筛选强度越强时,所述数据子集筛选后包含的特征向量数量越少,当所述筛选强度越弱时,所述数据子集筛选后包含的特征向量数量越多。因此在所述筛选强度小时,若第一数据集中数据过多会导致搜索效率低下。在所述筛选强度大时,若第一数据集中数据过少会导致完成搜索时无法获取预定数量的数据。因此为了减小所述搜索过程中的计算量,提高搜索效率,且获取到足够的搜索结果,需要根据所述第一标签和所述检索特征向量确定第一数据集的大小,即包含特征向量数量的多少。

步骤S300:确定所述每个数据子集的筛选模式。

具体地,所述筛选模式包括在中央处理器或图形处理器中进行筛选。如果在中央处理器中进行筛选,需要为筛选后的数据子集重新分配内存空间,产生数据拷贝的额外开销。如果在图形处理器中进行筛选,直接对所述传输至全局内存的数据子集进行访问和处理。所述数据子集在所述图形处理器中进行筛选能够高并发进行,效率更快,但在由中央处理器向图形处理器传输的过程中会带来额外的性能开销。因此要根据当前的中央处理器和图形处理器计算资源使用情况、由中央处理器向图形处理器传输所述数据子集带来的开销以及在中央处理器中筛选产生的数据拷贝开销确定所述数据子集的筛选模式。

进一步地,所述数据子集筛选模式的确定还可以根据所述筛选强度确定。每个数据子集都对应一个筛选强度,所述筛选强度根据所述第一标签和所述目标数据子集中包含的特征向量对应的第二标签确定。当所述筛选强度大时,所述数据子集筛选后包含的特征向量数量少,在所述中央处理器中筛选后产生数据拷贝的额外开销小,同时可以节省由中央处理器向图形处理器传输的过程带来的开销;当所述筛选强度小时,所述数据子集筛选后包含的特征向量数量多,在所述中央处理器中筛选后产生数据拷贝的额外开销大,且可以节省的由中央处理器向图形处理器传输的过程带来的开销很小。

进一步地,在一个可选实现方式中,步骤S300包括:

步骤S310、响应于所述数据子集对应的筛选强度高于第一阈值,确定所述数据子集的筛选模式为在所述中央处理器中进行筛选。

步骤S320、响应于所述数据子集对应的筛选强度低于第一阈值,确定所述数据子集的筛选模式为在所述图形处理器中进行筛选。

所述第一阈值根据所述中央处理器向图形处理器传输数据子集的过程带来的开销和在中央处理器中筛选产生数据拷贝的额外开销确定。

步骤S400:根据所述第一标签和确定的筛选模式对所述第一数据集中的数据子集进行筛选。

具体地,所述筛选模式为步骤S300中确定的筛选模式,响应于所述数据子集的筛选模式为在所述图形处理器中进行筛选,将所述数据子集传输至所述图形处理器进行筛选。响应于所述数据子集的筛选模式为在所述中央处理器中进行筛选,通过中央处理器的第一处理单元在所述中央处理器中进行数据子集的筛选;以及在筛选完成后,通过所述中央处理器的第二处理单元将所述筛选后的数据子集传输至所述图形处理器。其中所述第一处理单元和第二处理单元均为所述中央处理器的程序模块。当所述筛选模式为在所述中央处理器中进行筛选时,所述筛选步骤和传输步骤通过流水线方式工作,即在所述第二处理单元将所述筛选后的数据子集传输至所述图形处理器的同时,通过所述第一处理单元处理下一个数据子集的筛选。当所述筛选模式为在所述图形处理器中进行筛选时,所述未经过筛选的数据子集也通过所述流水线传输至所述图形处理器,即在将所述未筛选的数据子集传输至所述图形处理器的同时,所述中央处理器对下一个数据子集进行筛选。在所述搜索方法中,需要对每个数据子集进行独立的计算搜索,因此为提高所述流水线的工作效率,在所述数据传输过程中,响应于多个完成筛选的数据子集中包含的特征向量数量小于第二阈值,将所述多个数据子集合成一个数据子集后传输至所述图形处理器。即当一些数据子集在筛选后包含的特征向量数目过小时,为节省后续数据传输和在图形处理器中的计算时间,可以对所述数据子集进行整理集合为一个数据子集,以节省后续数据传输和在所述图形处理器中计算搜索的时间。

进一步地,所述中央处理器的内存中维护一个筛选数据缓存区。所述图形处理器显存中维护一个显存数据缓存区。所述数据子集在中央处理器中进行筛选时,首先检查筛选数据缓存区是否有空余存储空间。如果有空余存储空间,则分配合适大小的存储空间进行数据拷贝与筛选。

进一步地,每个所述数据子集包括多个经聚类的特征向量和与所述特征向量对应的第二标签。根据设定的筛选条件和第一标签和第二标签的关系根据确定的筛选模式对所述第一数据集中的数据子集进行筛选。例如,设定的筛选条件为保留与所述第一标签相同的第二标签对应的特征向量时,筛选所述数据子集中与所述第一标签相同的第二标签对应的特征向量,将所述数据子集中与所述第一标签不同的第二标签对应的特征向量删除。

步骤S500:将所述检索特征向量和筛选的数据子集中的特征向量进行匹配。

具体地,经过中央处理器筛选得到的数据子集存储至筛选数据缓存区,经过图形处理器筛选得到的数据子集存储至所述显存数据缓存区,在将所述检索特征向量和筛选的数据子集中的特征向量进行匹配时,先依次检查筛选数据缓存区和显存数据缓存区。如果筛选数据缓存区有数据子集,并且显存数据缓存区还有空余空间,则从筛选数据缓存区读取所述数据子集,传输并存储到显存数据缓存区,在所述显存数据缓存区内对所述检索特征向量和筛选的数据子集中的特征向量进行匹配。在本实施例中,所述匹配过程为对所述检索特征向量和所述数据子集中的特征向量进行相似性搜索,即当所述数据子集中的特征向量与所述检索特征向量越相似时匹配度越高。其中所述匹配方法例如可以包括计算所述检索特征向量和所述筛选的数据子集中包含的特征向量之间的欧式距离,所述欧式距离越近的特征向量匹配度越高。当预设输出的特征向量数目为P时,获取与所述检索特征向量欧式距离最近的P个特征向量作为匹配结果。

步骤S600:根据匹配结果确定输出数据。

具体地,对每个数据子集中获取的匹配结果进行处理,以确定输出数据。例如,所述匹配方法是计算所述检索特征向量和所述筛选的数据子集中包含的特征向量之间的欧式距离时,对所有匹配结果包含的特征向量根据与所述检索特征向量欧式距离从小到大进行排序。当预定输出数据包含Q个特征向量时,获取所述特征向量排序中的前Q个元素作为输出数据。

本实施例的方法基于中央处理器(CPU)和图形处理器(GPU)构成的异构计算机架构对数据进行搜索,实现了搜索时根据属性标签对数据进行筛选,且利用了图形处理器并行加速的优势,避免了在图形处理器中做数据处理时因数据规模庞大产生的性能瓶颈。同时构建了一个包括在中央处理器中数据筛选步骤和由中央处理器至图形处理器数据传输步骤的流水线,通过流水线内各部件并行的进行数据筛选,传输和计算搜索操作,有效的掩盖在中央处理器中对数据进行筛选及拷贝所产生的额外开销。

图3为本发明实施例的一种可选实现方式根据第一标签和所述检索特征向量确定第一数据集的流程图,如图3所示,所述方法包括:

步骤S210:确定第二数据集。

具体地,所述第二数据集包含全部可搜索的数据子集。例如当所述搜索过程在可读存储设备A中进行时,所述第二数据集包含所述可读存储设备A中全部可读取的数据转换的特征向量。

步骤S220:根据所述第一标签和每个数据子集中包含的特征向量对应的第二标签确定筛选强度。

具体地,每个第一标签和第二标签均包括至少一个属性标签。所述筛选强度可以通过计算所述第二数据集中各特征向量对应的第二标签中各属性标签的数据分布情况估算。例如,确定所述第二标签包含的每种属性标签在所述第二数据集中出现的频率,进一步确定所述第二数据集中出现频率较高的属性标签。再判断所述第一标签中每种属性标签是否为出现频率较高的属性标签,以及所述第一标签中每种属性标签在所述第二数据集中出现的频率。由此估算所述第一标签包含的属性标签在所述第二数据集的属性标签中占有的百分比,确定1减去所述百分比得到的值为筛选强度。

步骤S230:根据所述第二数据集中包含的数据子集数量和每个数据子集对应的筛选强度确定所述第一数据集中包含的数据子集数量N。

具体地,假设所述步骤S220中计算得出的筛选强度为p,所述第二数据集中包含的数据子集数量为a,可以直接通过公式N=a*C/(1-p)确定一个与筛选强度正相关的数据子集数量N,其中C为一个与搜索空间以及搜索时间大小正相关的常数,0

进一步的,所述N值还可以再通过其他因素进行合理调整。例如,选取搜索算法推荐或默认的N值与当前计算的N值中的最大值。

步骤S240:计算所述检索特征向量与所述第二数据集包含的每个数据子集中心的距离。

具体地,所述数据子集中心用于表征对应的数据子集,例如可以是所述数据子集中所有特征向量的平均值。因每个数据子集包括多个经聚类的特征向量和与所述特征向量对应的第二标签,所述检索特征向量与所述第二数据集包含的每个数据子集中心的距离越近,所述数据子集中的特征向量与所述检索特征向量的匹配度越高。在本实施例中,所述检索特征向量与所述第二数据集包含的每个数据子集中心的距离为欧式距离。

步骤S250:根据所述距离确定N个数据子集组成第一数据集。

具体地,根据所述步骤S230确定的数据子集的数量N和所述步骤S240中确定的所述检索特征向量与所述第二数据集包含的每个数据子集中心的距离确定第一数据集。即选择与所述检索特征向量距离最近的N个数据子集中心所在的数据子集,组成第一数据集。

所述方法减小所述搜索过程中的计算量,提高搜索效率,且能够使所述搜索过程获取到足够的搜索结果。

图4为本发明实施例的确定第二数据集过程的示意图。图4所示的流程可以用于上述步骤S210确定第二数据集。如图4所示,所述第二数据集为所述待搜索数据经过转换和聚类后得到。

具体地,所述每个待搜索数据对应一个第二标签,所述第二标签包含至少一个与所述输入对象对应的属性标签,用于在搜索过程中对数据子集进行筛选。在对所述数据进行转换和聚类的过程中,不对所述第二标签进行转换。所述转换过程为将全部待搜索数据转换成适合进行数据分析、处理和计算的形式,例如将所述数据转换为特征向量。其中所述转换方法例如可以是卷积神经网络(CNN)等。所述聚类过程为通过聚类算法对所述全部特征向量组成的数据集进行聚类分析,将所述数据集划分成K个数据子集。所述聚类算法例如可以是K均值聚类算法,每个聚类后的数据子集对应一个均值。

当所述输入对象为图片时,所述待搜索数据为图像数据,每个图片数据对应一个第二标签,所述第二标签包含至少一个与所述输入对象对应的属性标签,所述属性标签例如可以是所述图片中人物的“身份:学生”、“出生地:北京”等,在对所述待搜索数据进行转换、聚类的过程中不对所述第二标签进行处理。当对所述第一数据集中的数据子集进行筛选时,先对比所述第二标签和第一标签的内容是否相同,例如当所述第一标签包括图片中人物的属性信息“宠物:小狗”和“年龄:二十岁”时,保留所述数据子集中第二标签包括“宠物:小狗”和“年龄:二十岁”的特征向量。再将所述保留的特征向量与所述检索特征向量进行匹配,例如计算所述特征向量和检索特征向量的欧氏距离,确定距离越短的特征向量与所述检索特征向量的匹配度越高,根据预设数量输出对应数量的特征向量。

所述方法用于对待搜索数据进行预处理,包括对待搜索的数据进行转换,再对转换后的数据进行聚类两个步骤,获得适合进行数据分析、处理和计算的数据子集,便于进行数据搜索。

图5为本发明实施例的数据筛选步骤和数据传输步骤构成的流水线示意图,如图5所示,当所述筛选模式为在所述中央处理器中进行筛选时,所述筛选步骤和传输步骤通过流水线方式工作,即在所述第二处理单元将所述筛选后的数据子集传输至所述图形处理器的同时,通过所述第一处理单元处理下一个数据子集的筛选。

具体地,以图中T1时刻为例,当所述数据子集0通过所述第二处理单元向所述图形处理器传输的同时,所述数据子集1通过所述第一处理单元进行数据筛选。在所述T2时刻,所述数据子集0进入图形处理器进行数据搜索,此时所述数据子集1通过所述第二处理单元进行数据传输,同时所述数据子集2通过所述第一处理单元进行数据筛选。

进一步的,当所述数据子集3在所述图形处理器中进行数据筛选时,T3时刻所述未筛选的数据子集3和筛选后的数据子集2同时通过第二处理单元向所述图形处理器传输,所述数据子集1进入图s形处理器进行数据搜索,所述数据子集4通过所述第一处理单元进行数据筛选。等到下一时刻T4,先将所述数据子集2存放至显存数据缓存区内,对所述数据子集3在图形处理器内进行数据筛选,当所述数据子集3完成数据筛选后存储于所述显存数据缓冲区,再将筛选后的数据子集3和数据子集2同时在所述图形处理器内进行数据搜索,所述数据子集4通过所述第二处理单元进行数据传输,数据子集5通过所述第一处理单元进行数据筛选。

在本实施例的另一个可选实现方式中,T4时刻,所述数据子集3在图形处理器内进行数据筛选,所述数据子集2进行数据搜索,所述数据子集4通过所述第二处理单元进行数据传输,数据子集5通过所述第一处理单元进行数据筛选。在下一时刻,所述筛选后的数据子集3和数据子集4在所述图形处理器内同时进行数据搜索。

在本实施例的又一个可选的实现方式中,所述图形处理器中对数据子集进行筛选的步骤和进行搜索的步骤可以一起进行。

所述过程通过流水线内各部件并行的进行数据筛选,传输和计算搜索操作,有效的掩盖在中央处理器中对数据进行筛选及拷贝所产生的额外开销。

图6为本发明实施例一种电子设备的示意图,如图6所示,在本实施例中,所述电子设备包括服务器、终端等。如图所示,所述电子设备包括:至少一个第一处理器62和一个第二处理器63组成的异构计算机架构,所述第一处理器例如可以是中央处理器(CPU),所述第二处理器例如可以是图形处理器(GPU);与至少一个所述异构计算机架构通信连接的存储器61;以及与存储介质通信连接的通信组件64,通信组件64在异构计算机架构的控制下接收和发送数据;其中,存储器61存储有可被至少一个异构计算机架构执行的指令,指令被至少一个异构计算机架构执行以实现上述实施例中的搜索方法。

具体地,所述存储器61作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。异构计算机架构通过运行存储在存储器61中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述搜索方法。

存储器61可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器61可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

一个或者多个模块存储在存储器61中,当被异构计算机架构执行时,执行上述任意方法实施例中的搜索方法。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本发明还涉及一种计算机可读存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 搜索方法、装置、电子设备及计算机可读存储介质
  • 搜索系统的搜索方法、电子设备及计算机可读存储介质
技术分类

06120112198486