CN105573834A - 于异构平台的面向高维数据的词汇树构建方法 - Google Patents

于异构平台的面向高维数据的词汇树构建方法 Download PDF

Info

Publication number
CN105573834A
CN105573834A CN201510938217.1A CN201510938217A CN105573834A CN 105573834 A CN105573834 A CN 105573834A CN 201510938217 A CN201510938217 A CN 201510938217A CN 105573834 A CN105573834 A CN 105573834A
Authority
CN
China
Prior art keywords
gpu
node
data
thread
dimension
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
Application number
CN201510938217.1A
Other languages
English (en)
Other versions
CN105573834B (zh
Inventor
张为华
季晓枫
余时强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Original Assignee
Fudan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fudan University filed Critical Fudan University
Priority to CN201510938217.1A priority Critical patent/CN105573834B/zh
Publication of CN105573834A publication Critical patent/CN105573834A/zh
Application granted granted Critical
Publication of CN105573834B publication Critical patent/CN105573834B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明属于并行处理器技术领域,具体为一种基于异构平台的面向高维词汇树构建方法。本发明利用异构处理平台(通用处理器和图形处理器(GPGPU)混合架构)上图形处理器强大的并行计算能力与可编程性,提升高维词汇树构建过程的速度。本发明利用图形处理器高并发性的特点加速高维词汇树算法的核心过程,利用高维词汇树算法特性和图形处理器的内存访问模式优化算法的访存过程,并设计了主机和图形处理器在高维词汇树算法运行过程中的协调策略。本发明方法可以有效提升面向高维数据的词汇树的构建速度。

Description

于异构平台的面向高维数据的词汇树构建方法
技术领域
本发明属于并行处理器技术领域,具体涉及一种基于异构平台处理能力的面向高维数据的词汇树(VocabularyTree)构建方法。
背景技术
随着大数据时代的到来,海量数据已经渗透到社会的每一个行业,对于海量数据的处理已经成为议论的热点。在图像检索领域,大量的数据图片给检索带来了前所未有的困难。根据资料显示,Facebook每天上传的图片量达到3.5亿,数据量达到7PB,对于如此庞大的数据,如何快速有效的检索从而提供更好的用户体验变成了巨大的挑战。高维VocabularyTree(词汇树)的提出有效地提高了图像识别方面的性能,该算法首先用局部特征提取算法对图像提取特征点,然后将这些图像特征点的集合通过聚类的方法生成数据词汇,接着采用TF-IDF的加权方法,使得图片的检索时间能够有效地缩短。
虽然高维词汇树的提出有效地高了图像检索的效率,但是基于大数据图片的高维词汇树的构建过程仍然十分耗时,一百万张图片,包含了四亿多个特征点,而每个特征点都是由64维或者128构成的高维数据,总数据量将近50GB,其建树过程需要花费64个小时。而假如要处理前文提到的Facebook的数据量,即使处理时间是线性增长的,也需要9000多个小时——超过一年的时间。而一旦图像数据库发生改动,那就需要重新为新的图像数据集建树,如此长的建树时间给图像搜索应用带来极大的不便。因此提升高维词汇树构建过程的速度是十分必要的。
在过去的近十年时间内,图形处理器(GPU)不仅在图像处理方面发挥作用,在并行处理领域也得到了飞速的发展,而且在性能加速方面的能力也已经远远胜出CPU。由于GPU通用计算的编程模型(如CUDA、OpenCL)逐渐成熟,越来越多复杂的、计算量大的难题都已经移植到GPU上处理,很多已经得到了解决并且在性能方面有很大提升。同时随着多核CPU处理器技术的出现,CPU强大的计算能力也不容忽视,超级计算机通常配置几百个CPU处理器。在GPU和多核CPU快速发展的情形下,完全能够利用这些强大的计算资源来提升构建高维词汇树的速度。而节点的处理算法中分类以及求和这两个数据密集型的过程又非常适合使用GPU进行加速。因此,高维词汇树的构建适合部署到异构处理平台(通用处理器和图形处理器(GPGPU)混合架构)上进行。本发明致力于利用异构平台处理器,以提升高维词汇树构建速度。
发明内容
本发明的目的在于提供一种高速的面向高维数据词汇树的构建方法。
本发明提供的面向高维数据的词汇树的构建方法,是基于异构平台(通用处理器和图形处理器(GPGPU)混合架构)的,包括:利用异构平台中图形处理器(GPU)强大的并行计算能力与可编程性,提升高维词汇树构建过程的速度;利用高维词汇树算法特性和图形处理器的内存访问模式优化算法;提出主机和图形处理器在高维词汇树算法运行过程中的协调策略。
在高维词汇树的构建中,计算量主要集中在节点生成的部分,所以本发明将高维词汇树中队列管理以及预处理工作放在主机端,生成新节点算法中的分类以及求和两个部分交由GPU进行处理。
词汇树的构建流程如下:
在运行建树程序前,将所有图片的高维特征点作为一整个节点放入队列中。之后,开始运行建树程序,建树过程根据主机端的主线程维护的队列进行。
第一步,程序从任务队列中取出待处理的节点,并将需要处理的数据传输到GPU的主存中。
由于高维词汇树的建树过程可以使用多个GPU合作,所以需要合理地调度任务,确保多个GPU的负载相近,否则会拖慢整个程序的进度。根据节点大小的不同,程序将采用不同的GPU协同策略,所以本程序将节点分为三种,并放到不同的队列中进行处理。在前一个队列处理完之前程序不会处理下一个队列中的节点。
第一种是大型节点。这类节点的大小超过GPU主存的容量,要将其划分为可以放入GPU中的数据块。如果是多GPU结构,每个GPU会依次拿取自己的数据块;如果是单GPU结构,该GPU会顺序处理所有的数据块。每次处理完所有数据块的分类或者求和之后,进行同步,并将结果汇总至主机端内存上的数组中,之后再进行下一部分的处理。在大型节点中还有一种特殊的超大型节点。一般节点的数据会在主机端预先重构完毕,而这种超大型节点的重构数据会超出主机端的主存容量,需要在GPU进行处理的同时对其进行重构,以减少主机端内存的压力。
第二种是普通的节点,可以整块放入GPU内存中,不需要划分为数据块。在这一部分中,GPU会按顺序从队列中获取任务,处理完一个任务后即可取下一块任务。
最后,是碎片化节点。到了队列的尾部,高维词汇树的底层,会产生许多只有数百,数十个高维特征点的节点。GPU需要尽可能多的数据以充分利用GPU的计算能力,所以要放入尽量多的碎片化节点以填满GPU的内存,此时GPU每次可以处理上百个节点。
第二步,程序对节点进行处理,生成K个子节点。
首先,在节点中随机寻找K个高维特征点作为初始的中心点,然后对高维特征点进行分类处理,之后对每个分类求和,最后得到新的K个中心点;经过循环上述过程,至中心点结果不变后,得到K个新的中心点。
GPU上节点的处理工作有两部分:一是对每个高维特征点进行分类,二是对每个类别的高维特征点进行求和;由于这两部分都具有数据密集的特性,它们非常适合用GPU进行并行加速。然而由于这两部分具有不同的计算模式和内存访问特点,如采用相同的并行模式很难充分利用GPU的计算资源。因此,需要对它们采用不同的并行模式以提高并行性能。
对于分类计算,每个线程以高维特征点为任务目标,去完成分类任务。线程的任务是首先求出高维特征点与所有中心点的多维距离,然后确定与之距离最短的中心点,将结果存储到全局内存中。由于计算最短距离不适合由多个线程共同完成,所以在这里选择根据高维特征点进行处理的方式,线程会各自读取高维特征点进行处理。中心点的数据被存储在线程块的共享内存中,这是所有高维特征点公用的数据,放在共享内存中能够减少不必要的主存访问。当一个线程在处理完一个节点后,它会读取下一个要处理的高维特征点并循环直至处理完所有的节点。
对于求和计算,分类只需要共享中心点的数据进行读取即可,但是求和部分每个点都需要维护自己的局部和。假如不做改变,仍然根据点进行并行计算,每个线程所维护的局部和势必要放在全局内存上,那么每次累加的操作都会涉及到一次对全局内存的访问,这些主存访问都是不必要的,会对性能造成影响。所以,求和部分GPU按维度进行并行处理,一个线程块会处理一组节点,每个线程会负责特定的维度,每个线程只需要存储自己负责的维度的局部和即可,这样就能将局部和放在共享内存上,减少不必要的GPU主存访问。每次处理完一个点中的特定维度,线程会根据线程块中的总线程数累加一定的地址得到下一部分有相同维度的数据。最终,在这组节点中所有线程都完成累加后,会有特定的线程将各自负责的值累加到全局变量上。
除了并行算法,本发明还对于GPU中的内存访问进行了优化。在GPU中全局内存,也就是主存的访问速度非常慢,会比共享内存和寄存器慢数百倍,而共享内存的访问速度只会比寄存器慢数倍。所以本发明的优化目标是减少对全局内存的访问或者将经常访问的数据放置到共享内存上,具体包括三个部分:(1)数据压缩访问:将多个数据合并为一次访问,充分利用GPU内存访问的带宽;(2)数据重构:基于面向高维特征点和高维特征点维度的并行模式,采取不同的数据重构策略,提高GPU主存的访问效率;(3)数据块逆向遍历和对数据块加载顺序的优化:在节点处理的循环中改变数据块的处理顺序,减少数据传输次数。
(1)采用数据压缩的内存访问方式
访问主存时一次读取的带宽会远大于读取一个维度数据所需要的数据量,如果每次只读取一个维度的数据,就会浪费很多带宽。所以在每次读取数据时将多个维度的数据拼接成与带宽匹配的数据一次读取,这样就能充分利用每一次内存访问的带宽。对于分类的过程,一个点中相邻的多个维度会放在一起,作为一个数据读取,而对于求和的过程,将相邻的多个点的同一个维度抽取出来进行拼接,作为一个数据读取。
(2)进行数据重构
特征节点的原始数据是按维度紧密存储的,这不利于分类时GPU的Warp中GPU主存访问优化的要求。在分类的过程中,采用的是以高维特征点为目标的并行方法,在这种方式下,线程与线程间的任务相互独立,耦合度小。由于一个warp里面的线程会合并GPU主存访问请求,GPU主存数据准备好后会统一返回给这些线程,所以如果warp中的所有线程在一次访存过程中访问的是连续的内存区域,就可以获得最好的性能。对数据进行重构,目的就是为了使warp中线程访问数据时,数据在GPU主存中的分布是连续的,即warp访问的特征点的同一维在GPU主存中应该是连续的。考虑到数据压缩访问的要求,还需要将同一个点的多个维度先作为一块存放,再和相邻点的相同维度一起存放。具体重构方式如图1所示;求和过程的重构则要将一组特征点的同一维度一起存放以适应压缩访问的要求。
(3)逆向的数据块遍历和对数据块加载顺序的优化
对于大于GPU内存的节点,由于节点大小大于GPU主存的容量,所以需要将其划分为多个数据块依次放入GPU中进行处理。将数据块设计成小于GPU内存的一半,在使用GPU生成新节点的时候就能使用GPU的第二个工作流进行数据装载的工作,将下一块数据块装载在GPU的另一半内存上。这样GPU可以尽可能地将两个任务并行化,最大化地利用GPU的处理能力。
数据块的处理顺序也需要进行优化。由于节点的处理会循环多次,那么对数据块也会进行多次遍历,所以在遍历的过程中要减少数据块的读取次数。前一循环的结尾数据块在后一循环开始时仍然会储存在GPU主存中,所以让相邻的两个循环以逆向的方向进行数据块的遍历处理,这样每一个GPU在头部和尾部都可以节省一次数据块载入的工作。这对于数据块较少的节点来说能够节约许多等待时间,假如一个节点有三个数据块,由一个GPU来处理,有50次循环,原本要加载150次,而现在只需加载101次,那么就能节约1/3的装载时间。
第三步,将子节点放入队列中。
当前节点生成的K个子节点中,超过预定的层数L或者特征点过少的节点不会被放入队列,其余节点会被放到相应节点中。
第四步,重复第一至第三步的过程,当队列为空时,高维词汇树的构建工作完成。
附图说明
图1为用于分类的数据重构方式,以及数据压缩访问的示意图。
图2为多GPU大节点处理方式示意图。
图3为多GPU小节点处理方式示意图。
图4为节点处理算法整体过程示意图。
图5为节点处理流程图。
具体实施方式
下面将结合本发明的附图说明本发明的具体实施方式。本发明主要利用了异构平台中图形处理器强大的并行计算能力与可编程性,实现对高维词汇树构建过程的加速。具体流程如图5所示,具体步骤如下:
(1)从文件中读取特征点数据,创建初始节点,放入任务队中,交由建树程序运行。
(2)主线程从队列头部获取一个节点,根据节点大小选择生成新节点的实现方式,协调GPU间的工作负载:
(a)大型节点:该节点无法整体载入到GPU内存上,将节点划分为可以放入单个GPU内存的数据块,将数据块依次交由不同的GPU处理,直至所有数据块处理完毕。为了将下一个数据块提早复制到GPU的内存中,要尽量使内存传输的时间与运算时间重合,此时放入GPU的内存的节点会小于内存大小的一半。这样另一半就可以使用新的GPU工作流进行下一个数据块的传输工作。完成一次所有数据块的处理后,下一次循环处理数据块时将会对数据块逆向遍历,以减少头尾的数据块载入次数。GPU在处理大型节点时的协作方式如图2所示,每次GPU工作完成都需要进行同步。对于分类,在每个数据块的工作完成后,将分类结果复制到主机内存中结果数组的相应段落上。对于更新中心点的求和过程,在每个工作快完成后,将结果累加到结果数组上;
另外,对于大型节点中的一类特例,也就是重构数据无法存储在GPU主存中的节点,采取以下的策略:在当前GPU对数据块运行分类或者更新中心点的操作时,下一块数据块在进行数据传输工作,而对于之后的一块数据块,要使用主机端的线程对其进行数据重组织工作;
(b)普通节点和碎片化节点:此时GPU间的协同方式如图3所示。对于普通节点,不需要划分数据块,只需要将整个节点放入GPU中对其进行处理即可。对于碎片化节点,也就是可以多个合并,一起放入GPU中处理的节点。由于每个节点的中心点不同,每个节点所累加的和数组也不同。无论是分类还是求和,共享内存都只能存放一个节点所需的共享数据,所以每个线程块都只能处理一个节点而每个节点必须使用整数个线程块,这个特性也导致了小节点必须占用一整块节点大小的GPU主存,这会产生很大的空间浪费。所以要设定一个总规模的阈值,这个阈值会根据GPU内存的大小和线程总数来决定,确保节点实际占用的内存不会超出GPU内存的大小。这样,就能在GPU的计算过程中尽量多的节点放入GPU中,充分利用GPU的多线程处理能力,处理更多数据。
(3)对于单GPU的结构,在处理时大型节点时它会依次处理所有的数据块,在处理小型节点时会一次处理队列中的节点。此时不需要负载均衡的策略。
(4)生成新节点,其过程如图4所示,主要分为两个部分,对每个高维特征点分类与更新中心点,而更新中心点又分为求和与求平均,由于求平均的计算量较少,故而放在主机中进行。在每次处理过程结束后,判断中心点是否改变,假如改变,就继续直到中心点不再变化为止。
(5)在分类过程中,每个线程会负责完成一个高维特征点的分类工作,通过计算多维距离,找到最近的中心点。由于节点存储在全局内存中,访问延迟非常长,为了减少对其引用,每次读取多个维度数据,同时计算所有中心点的距离,并保存这些临时变量。由于计算过程对中心点以及临时距离的频繁引用,应该将其存储到共享内存中。但是共享内存极其有限,所以无法在该线程块中计算有不同中心点的第二个节点。每个线程块完成中心点的计算后,将结果存储到全局数组中。
(6)在求和的过程中,线程块中的线程会依次读取多个维度的数据,累加到局部和上。由于每个线程明确了自己所处理的维度,所以只需要确保维度正确即可。完成当前数据后,线程会跳过这些数据读取下一组相同维度的数据,这就要求线程块中的线程必须是维度的倍数,以保证线程读取的下一组数据也是相同维度的数据。在完成所有数据的累加后,特定的线程会将自己的结果累加到相应的线程上,每经过一次循环,累加所需的次数就减少一半,直至获得整个线程块的局部和。最后通过原子加法累加到全局内存中。
(7)完成节点的分类并得到新的中心点后,程序会将新的子节点发送至主机中的其他线程。主线程会继续从任务队中获取之后待处理的节点,从而缩短程序中的关键路径。而处理新节点的线程会将不同的节点插入不同的队列中,需要多GPU合作的大型的节点会放在一个队列中,可以放在单个GPU中的节点放在一个队列中,而小于设置的阈值大小的节点会放到另一个队列,只有当前一个队列为空时程序才会从后一个队列中取节点。在程序开始时,所有节点都是大型节点,由所有GPU共同处理。当开始处理后一个队列时,程序会激活其他线程,多个GPU会同时开始工作,协同方式如图3所示,分别从队列中取得自己的任务,处理新的节点。
(8)新的节点插入队列后,程序会对队列进行遍历,寻找还未进行预处理的节点,并将任务分发到各个负责预处理工作的线程中。对于初始节点是超大型节点的建树工作,由于内存限制,程序会记录内存占用情况并限制节点的预处理工作。在遍历过程中,程序会判断内存是否够存放下预处理的数据,如果不够则该过程会结束,等待下次遍历。如果空间足够那么程序会进行预处理,并将预处理的数据计入内存消耗中。
(9)当层数超出预设值或者节点中高维特征点数小于中心点数时,程序都不会将新节点插入队列中。所以,当队列为空时,程序就会结束,完成高维词汇树的构建工作。

Claims (2)

1.一种基于异构平台的高维词汇树构建方法,其特征在于包括:利用异构平台中图形处理器(GPU)强大的并行计算能力与可编程性,提升高维词汇树构建过程的速度;利用高维词汇树算法特性和图形处理器的内存访问模式优化算法;采用主机和图形处理器在高维词汇树算法运行过程中的协调策略;
在高维词汇树的构建中,将高维词汇树中队列管理以及预处理工作放在主机端,生成新节点算法中的分类以及求和两个部分交由GPU进行处理;
在运行建树程序前,将所有图片的高维特征点作为一整个节点放入队列中;
开始运行建树程序,建树过程根据主机端的主线程维护的队列进行,具体步骤如下:
第一步,程序从任务队列中取出待处理的节点,并将需要处理的数据传输到GPU的主存中;
根据节点大小的不同,将采用不同的GPU协同策略:将节点分为下述三种,并放到不同的队列中进行处理;在前一个队列处理完之前程序不处理下一个队列中的节点;
第一种是大型节点,这类节点的大小超过GPU主存的容量,将其划分为可以放入GPU中的数据块;如果是多GPU结构,每个GPU依次拿取自己的数据块;如果是单GPU结构,该GPU顺序处理所有的数据块;每次处理完所有数据块的分类或者求和之后,进行同步,并将结果汇总至主机端内存上的数组中,之后再进行下一部分的处理;
第二种是普通的节点,这类节点的大小可以整块放入GPU内存中,不需要划分为数据块;GPU按顺序从队列中获取任务,处理完一个任务后即可取下一块任务;
第三种是碎片化节点,这类节点是到了队列的尾部,高维词汇树的底层,产生的许多只有数百、数十个高维特征点的节点;为了充分利用GPU的计算能力,要放入尽量多的碎片化节点以填满GPU的内存,此时GPU每次可以处理上百个节点;
第二步,对节点进行处理,生成K个子节点
首先,在节点中随机寻找K个高维特征点作为初始的中心点,然后对高维特征点进行分类处理,之后对每个分类求和,最后得到新的K个中心点;经过循环上述过程,至中心点结果不变后,得到K个新的中心点;
其中,GPU上节点的处理工作有两部分:一是对每个高维特征点进行分类,二是对每个类别的高维特征点进行求和;对这两部分采用不同的并行模式以提高并行性能:
对于分类计算,每个线程以高维特征点为任务目标,去完成分类任务;线程的任务是首先求出高维特征点与所有中心点的多维距离,然后确定与之距离最短的中心点,将结果存储到全局内存中;由于计算最短距离不适合由多个线程共同完成,所以GPU采用根据高维特征点进行处理的方式,线程各自读取高维特征点进行处理;中心点的数据被存储在线程块的共享内存中,这是所有高维特征点公用的数据,放在共享内存中能够减少不必要的主存访问;当一个线程在处理完一个节点后,读取下一个要处理的高维特征点并循环直至处理完所有的节点;
对于求和计算,GPU按维度进行并行处理,一个线程块处理一组节点,每个线程负责特定的维度,每个线程只存储自己负责的维度的局部和,这样就能将局部和放在共享内存上,减少不必要的GPU主存访问;每次处理完一个点中的特定维度,线程根据线程块中的总线程数累加一定的地址得到下一部分有相同维度的数据;最终,在这组节点中所有线程都完成累加后,有特定的线程将各自负责的值累加到全局变量上;
第三步,将子节点放入队列中
当前节点生成的K个子节点中,超过预定的层数L或者特征点过少的节点不会被放入队列,其余节点会被放到相应节点中;
第四步,重复第一至第三步的过程,当队列为空时,高维词汇树的构建工作完成。
2.根据权利要求1所述的基于异构平台的高维词汇树构建方法,其特征在于在第二步中,骤还对于GPU中的内存访问进行了优化,优化目标是减少对全局内存的访问或者将经常访问的数据放置到共享内存上,包括:
(1)采用数据压缩的内存访问方式
在每次读取数据时将多个维度的数据拼接成与带宽匹配的数据一次读取;对于分类的过程,一个点中相邻的多个维度放在一起,作为一个数据读取;对于求和的过程,将相邻的多个点的同一个维度抽取出来进行拼接,作为一个数据读取;
(2)进行数据重构
在分类的过程中,数据重构,就是使warp中线程访问数据时,数据在GPU主存中的分布是连续的,即warp访问的特征点的同一维在GPU主存中是连续的;同时,将同一个点的多个维度先作为一块存放,再和相邻点的相同维度一起存放;在求和的过程中,数据重构是将一组特征点的同一维度一起存放,以适应压缩访问的要求;
(3)、逆向的数据块遍历和数据块加载顺序的优化
对于大型节点,由于节点大小大于GPU主存的容量,所以需要将其划分为多个数据块依次放入GPU中进行处理;将数据块设计成小于GPU内存的一半,在使用GPU生成新节点的时候就能使用GPU的第二个工作流进行数据装载的工作,将下一块数据块装载在GPU的另一半内存上;
节点的处理会循环多次,对数据块也会进行多次遍历,为在遍历的过程中减少数据块的读取次数,前一循环的结尾数据块在后一循环开始时仍然储存在GPU主存中,所以让相邻的两个循环以逆向的方向进行数据块的遍历处理,这样每一个GPU在头部和尾部都可以节省一次数据块载入的工作。
CN201510938217.1A 2015-12-16 2015-12-16 一种基于异构平台的高维词汇树构建方法 Expired - Fee Related CN105573834B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510938217.1A CN105573834B (zh) 2015-12-16 2015-12-16 一种基于异构平台的高维词汇树构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510938217.1A CN105573834B (zh) 2015-12-16 2015-12-16 一种基于异构平台的高维词汇树构建方法

Publications (2)

Publication Number Publication Date
CN105573834A true CN105573834A (zh) 2016-05-11
CN105573834B CN105573834B (zh) 2018-12-11

Family

ID=55884004

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510938217.1A Expired - Fee Related CN105573834B (zh) 2015-12-16 2015-12-16 一种基于异构平台的高维词汇树构建方法

Country Status (1)

Country Link
CN (1) CN105573834B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107704235A (zh) * 2017-09-22 2018-02-16 深圳航天科技创新研究院 图形化建模中数据流程图的解析方法、系统及存储介质
CN117725348A (zh) * 2024-02-07 2024-03-19 蓝象智联(杭州)科技有限公司 一种gpu计算大规模数组求和过程中的线程管理方法及系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010011817A2 (en) * 2008-07-24 2010-01-28 Nahava Inc. Method and apparatus for partitioning high-dimension vectors for use in a massive index tree
CN102222092A (zh) * 2011-06-03 2011-10-19 复旦大学 一种MapReduce平台上的海量高维数据聚类方法
CN102495888A (zh) * 2011-12-08 2012-06-13 南京师范大学 一种面向并行数字地形分析的数据拆分与分发方法
US20140095548A1 (en) * 2012-09-28 2014-04-03 Emc Corporation Interactive visual data mining for increasing classification accuracy
US20140133759A1 (en) * 2012-11-14 2014-05-15 Nec Laboratories America, Inc. Semantic-Aware Co-Indexing for Near-Duplicate Image Retrieval
CN104063701A (zh) * 2014-07-14 2014-09-24 电子科技大学 基于surf词汇树和模板匹配的快速电视台台标识别系统及其实现方法
CN104102476A (zh) * 2014-08-04 2014-10-15 浪潮(北京)电子信息产业有限公司 非规则流中高维数据流典型相关性并行计算方法及装置
KR101503513B1 (ko) * 2013-10-28 2015-03-18 한국과학기술원 어휘 나무 생성 방법 및 장치
CN104463940A (zh) * 2014-12-23 2015-03-25 中国科学院合肥物质科学研究院 一种基于gpu的混合树并行构建方法
CN104463322A (zh) * 2014-11-10 2015-03-25 浪潮(北京)电子信息产业有限公司 一种异构系统的并行混合人工蜂群方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010011817A2 (en) * 2008-07-24 2010-01-28 Nahava Inc. Method and apparatus for partitioning high-dimension vectors for use in a massive index tree
CN102222092A (zh) * 2011-06-03 2011-10-19 复旦大学 一种MapReduce平台上的海量高维数据聚类方法
CN102495888A (zh) * 2011-12-08 2012-06-13 南京师范大学 一种面向并行数字地形分析的数据拆分与分发方法
US20140095548A1 (en) * 2012-09-28 2014-04-03 Emc Corporation Interactive visual data mining for increasing classification accuracy
US20140133759A1 (en) * 2012-11-14 2014-05-15 Nec Laboratories America, Inc. Semantic-Aware Co-Indexing for Near-Duplicate Image Retrieval
KR101503513B1 (ko) * 2013-10-28 2015-03-18 한국과학기술원 어휘 나무 생성 방법 및 장치
CN104063701A (zh) * 2014-07-14 2014-09-24 电子科技大学 基于surf词汇树和模板匹配的快速电视台台标识别系统及其实现方法
CN104102476A (zh) * 2014-08-04 2014-10-15 浪潮(北京)电子信息产业有限公司 非规则流中高维数据流典型相关性并行计算方法及装置
CN104463322A (zh) * 2014-11-10 2015-03-25 浪潮(北京)电子信息产业有限公司 一种异构系统的并行混合人工蜂群方法
CN104463940A (zh) * 2014-12-23 2015-03-25 中国科学院合肥物质科学研究院 一种基于gpu的混合树并行构建方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
张婷: "《基于ISODATA聚类的词汇树图像检索算法》", 《计算机科学》 *
李天驹,张铮,张为华: "《高效KD树并行算法优化》", 《计算机系统应用》 *
贾增朝: "《用于图像检索的视觉词汇树研究》", 《信息科技辑》 *
陈晓宁: "《基于词汇树的图像检索中对视觉关键词的提取和研究》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
齐锦: "《基于仿射传播聚类算法的词汇树生成研究》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107704235A (zh) * 2017-09-22 2018-02-16 深圳航天科技创新研究院 图形化建模中数据流程图的解析方法、系统及存储介质
CN117725348A (zh) * 2024-02-07 2024-03-19 蓝象智联(杭州)科技有限公司 一种gpu计算大规模数组求和过程中的线程管理方法及系统
CN117725348B (zh) * 2024-02-07 2024-05-10 蓝象智联(杭州)科技有限公司 一种gpu计算大规模数组求和过程中的线程管理方法及系统

Also Published As

Publication number Publication date
CN105573834B (zh) 2018-12-11

Similar Documents

Publication Publication Date Title
Khorasani et al. Scalable simd-efficient graph processing on gpus
US20220391678A1 (en) Neural network model processing method and apparatus, computer device, and storage medium
US11144348B2 (en) Heterogeneous computing system and method including analyzing expected costs of compute kernels
CN105468439B (zh) 在cpu-gpu异构框架下遍历固定半径内邻居的自适应并行方法
US8813091B2 (en) Distribution data structures for locality-guided work stealing
WO2023179415A1 (zh) 机器学习计算优化方法和平台
US20110057937A1 (en) Method and system for blocking data on a gpu
CN106383695A (zh) 基于fpga的聚类算法的加速系统及其设计方法
CN110874271B (zh) 一种海量建筑图斑特征快速计算方法及系统
JP7087825B2 (ja) 学習装置および学習方法
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
CN104765589A (zh) 基于mpi的网格并行预处理方法
CN104360824A (zh) 一种数据合并的方法和装置
US11556757B1 (en) System and method of executing deep tensor columns in neural networks
CN112947870B (zh) 一种3D打印模型的G-code并行生成方法
Zlateski et al. ZNNi: maximizing the inference throughput of 3D convolutional networks on CPUs and GPUs
US9105208B2 (en) Method and apparatus for graphic processing using multi-threading
Jansson et al. gpuRF and gpuERT: efficient and scalable GPU algorithms for decision tree ensembles
CN110413776A (zh) 一种基于cpu-gpu协同并行的文本主题模型lda高性能计算方法
CN116089414B (zh) 基于海量数据场景的时序数据库写入性能优化方法及装置
CN106484532B (zh) 面向sph流体模拟的gpgpu并行计算方法
CN105573834A (zh) 于异构平台的面向高维数据的词汇树构建方法
CN108108242B (zh) 基于大数据的存储层智能分发控制方法
JPWO2011058657A1 (ja) 並列計算装置、並列計算方法、および並列計算プログラム
JP7363145B2 (ja) 学習装置および学習方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181211

Termination date: 20211216

CF01 Termination of patent right due to non-payment of annual fee