基于GPU的哈希表建立及其应用Word下载.docx
《基于GPU的哈希表建立及其应用Word下载.docx》由会员分享,可在线阅读,更多相关《基于GPU的哈希表建立及其应用Word下载.docx(53页珍藏版)》请在冰豆网上搜索。
计算机科学与技术专业
研究生淦飞指导老师李晓峰
哈希技术已被广泛应用于各个领域,如错误校正、语音识别、信息安全、计算机密码学、电子商务、病毒检测等领域,但随着各个领域的发展,建立哈希表的速度及数据查找速度并不能满足需求。
近年来图形处理器GPU构架的不断发展,以CUDA为代表的GPU通用计算的普及,在很多应用中获得几倍、几十倍、乃至上百倍的加速比,所以利用CUDA快速地构建各类哈希表并且应用于各个领域具有重要的实际意义。
本文以并行建立哈希表算法为研究对象,详细分析了各种建立哈希表的方
法,在充分理解CUDA并行原理基础上,实现了开地址法、链地址法、杜鹃哈希法实时并行建立哈希表以及验证说明LSH算法转低维向量后的保距性,并在此基础上拓展出相关应用。
在字符串去重应用中,核心思想是通过字符串哈希函数聚类相同哈希值的字符串,再利用并行思想两两字符串精确比较,最终去掉在给定字符串数据集中重复的字符串。
在纹理合成应用中,核心思想是高维相类似的向量经过LSH哈希算法转低维向量后,低维向量之间能有一定概率地保证相似性。
在查找相似性KKN应用中,核心思想是高维向量利用LSH算法得到的低维向量后,再转化为一维哈希值,再结合杜鹃哈希建表,最终利用杜鹃哈希表查找出相似性KNN。
相比于已有算法,本文工作的优点在于利用CUDA强大的并行能力加速实现各类应用,挖掘各类应用的并行可能,提高运算效率。
本文基于GPU分类讨论各哈希算法并行建表及其应用,主要工作内容如下:
1.阐述开地址哈希法中碰撞发生时三种不同的处理方式,并针对这三种不同处理方式分别在CPU平台和GPU平台实现开地址法建立哈希表,最后做出两平台的效率对比。
2.阐述链地址哈希法中处理碰撞的方式,在GPU上通过链地址法建立哈希表,并应用于字符串去重;
作为对比实验,在CPU上利用Trie树实现字符串去重,最后进行两者之间的效率比较,以及做出在GPU上利用链地址法建立哈希表的优缺点分析。
3.阐述LSH算法与基于像素点的纹理合成TSVQ算法,并提出用LSH算法应用于纹理合成,验证说明LSH算法把高维向量转低维后仍然保距,最后进行TSVQ算法与LSH算法在纹理合成应用中的效果的对比。
4.阐述杜鹃哈希法处理碰撞的方式,分析串行杜鹃哈希建哈希表与在GPU上并行建表的不同,并在GPU上实现杜鹃哈希建立哈希表,最后结合LSH算法实现近似KNN查找的应用。
实验结果表明,利用开地址法建表,在GPU端的效率高于CPU端,并且随着数据量增加,GPU端加速优势越明显;
在大量字符串序列去重方面,并行链地址哈希效率强于Trie树;
在纹理合成应用中,验证出LSH算法将高维向量转化为低维向量后仍然保距,并且合成的效果较好;
在一个封闭高维向量数据集中查找每个高维向量近似KNN应用中,在GPU上利用LSH算法结合杜鹃哈希建表后查询效率远远高于串行蛮力精确查找。
关键词:
GPU,CUDA,并行计算,哈希表,应用
ResearchandApplicationofHashingTablebasedonGPU
Major:
ComputerScienceandTechnology
Postgraduate:
ganfeiTutor:
lixiaofeng
Hashtechniqueiswidelyusedinvariousfields,suchasErrorCorrection,SpeechRecognition,InformationSecurity,ComputerCryptography,E-commerce,VirusDetectionandsoon.However,withthedevelopmentofvariousfields,thespeedofbuildinghashtableandlookupdon’tmeetrisingdemand.ThesedaysthehighlyparallelarchitectureoftheGPUisrecognizedforitsextremelyfastnumbercrunchingabilities,givingrisetotechniquesforapplyingtheGPUtonon-graphicalcomputations,Inmanyapplications,itobtainsseveraltimes,evenahundredtimesspeedup.soit’snecessarytotakeadvantageofCUDAtobuildallkindsofhashtablesinthesefields.
Thisthesisfocusesontheconstructionofhashtableinparallelandanalyzesseveralmethodstoestablishthehashtableindetail.AccordingtotheprincipleofparallelCUDA,thisthesisgivesimplementsofopenaddressing,chainingandcuckoohashtobuildhashtableinreal-timeparallel.Moreimportantly,expandingsomerelevantapplication.ThisworkistoexploittheadvantagesofpowerfulparallelCUDAabilitytoaccelerateavarietyofapplication,suchasremovingduplicatestringsandKNNapplication.
Theworkofthisthesisincludes:
Firstly,DescribingthreedifferentmethodsinthecollisionofopeningaddressingandaccordingtothesetreatmentgivingimplementsonCPUandGPUseparately.Theexperimentalresultscomparetheefficiencybetweentwoplatforms.
Secondly,thispartintroduceschainingmethodandgivestheimplementbasedonGPU,thenapplythistheoryintopractice:
removingduplicatestrings.Ascomparison,thispartintroducesadatastructurenamedTrieandputitintothesameapplication.Finally,theanalysisismadebetweentheadvantagesanddisadvantages.
Thirdly,Describinglocalsensitivehashandtreestructurevectorquantization(TSVQ)andapplyingtheLSHtothetexturesynthesis.Finallyitshowsthattheeffectsbetweenthetwoalgorithms.
Atlast,DescribingthewaycuckoohashingwhencollisionhappensandanalyzingtheparallelconstructionofcuckoohashtableonGPU,Finally,applyingLSHandcuckoohashtableintoqueryingapproximateKNN.
TheexperimentalresultsshowthattheefficientofGPUisfasterthantheefficientofCPUwhenusingopeningaddressingtobuildhashtable.Instringduplicateremovalapplication,theefficientofparallelchainingmethodisalsostrongerthanTrie.Intexturesynthesisapplication,itverifiesthattheLSHalgorithmkeepsdistancepreserving.Inapproximationapplication,themethodofcombiningtheLSHandcuckoohashonGPUismoreefficientlythanbrute-forceserialprecisesearch.
Keywords:
GPU,CUDA,ParallelComputing,HashTable,Application
目录
目录1
1绪论4
1.1课题研究背景4
1.2国内外研究现状6
1.2.1GPU上取得成果及发展方向6
1.2.2哈希表的研究7
1.3本文主要工作10
1.4本文组织结构11
2基于CUDA的编程技术12
2.1CUDA编程模型12
2.2GPU多层次存储空间13
2.3CUDA通信机制14
3开地址哈希建表16
3.1处理碰撞思想16
3.2参数分析17
3.3并行建表19
3.4实验结果21
3.5实验结果分析22
3.6并行开地址哈希局限性分析23
4链地址哈希建表24
4.1处理碰撞思想24
4.2并行分析及实现25
4.3应用27
4.3.1应用背景27
4.3.2并行链地址法去掉重复字符串28
4.3.3Trie树31
4.3.4Trie树去掉重复字符串32
4.4实验结果及分析34
4.4.1实验结果分析34
4.4.2并行链地址哈希局限性分析35
5LSH(LocalSensitiveHash)36
5.1LSH定义36
5.2局部哈希函数原理36
5.3应用38
5.3.1应用背景38
5.3.2LSH算法合成纹理40
5.3.3基于TSVQ纹理合成42
5.4实验结果及分析43
5.4.1实验结果对比44
5.4.2实验结果分析47
5.4.3算法局限性分析47
6杜鹃哈希建表48