资源描述:
《基于cpu-gpu异构并行系统的smithwaterman及hevc加速技术研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、摘要近年来,随着GPU的不断更新发展,CPU-GPU异构系统逐渐为人们所使用,其中CPU主要负责高复杂度的逻辑运算,GPU则负责计算密集型的大规模数据并行工作,二者相辅相成,将系统整体计算能力最大化的利用。基于CPU-GPU异构系统加速的应用研究也越来越多,但是其程序移植过程较为复杂且结果不够准确,距离真正的将CPU-GPU异构系统应用于大规模程序加速还有一段距离。因此,本课题在原有的GPU加速研究的基础上,总结了当前GPU程序移植的两种方法RPA和MOL,并提出了全新一种程序移植方法ISC。应用此方法实际移植了生物序列比对工具SmithWater
2、man和BLAST。论文首先介绍了当前GPU的硬件结构及其编程模型CUDA(ComputeUnifiedDeviceArchitecture)的架构,并详细的介绍了CPU-GPU异构并行系统的组成。由此提出了程序移植的一般步骤,总结目前已经存在的两种代码移植方法RPA和MOL,这两种方法要求编程者对原始CPU版代码有深入的了解,而且是对原始代码的修改,不仅耗费时间而且不保证结果的准确性。本文提出了全新的代码移植方法ISC,该方法不需要对原始的算法和数据结构做任何更改,不仅节省时间精力更能保证移植后的程序结果与CPU版本结果一致。然后利用ISC方法实
3、际移植了生物序列比对工具并给出加速结果。本文的最后部分介绍了最新的视频编码标准HEVC及其CUDA加速版本的移植思路和系统框架。CUDA-SWfr和CUDA-BLASTN的加速结果显示,利用ISC方法,CPU-GPU异构并行系统可以有效的对计算密集型软件工具进行加速,大大的缩短计算时间。关键词:GPU生物序列比对SmithWatermanBLASTHEVCABSTRACTInrecentyears,withthedevelopmentofGPU,theCPU-GPUheterogeneoussystemisgraduallyusedbypeople
4、.TheCPUisresponsibleforthehighcomplexityofthelogicaloperationandGPUisresponsibleforthecalculationoflargedataparallelwork.Thetwosystemscooperatewitheachother,andthesystem'soverallcomputingpowermakesthemostuse.TheapplicationsbasedonCPU-GPUheterogeneoussystemcomemore,buttheproces
5、sofportingiscomplexandtheresultisnotaccurate.It`sstillalongwaybeforetheCPU-GPUheterogeneoussystemcouldbeusedinportinglargescaleprograms.Therefore,basedontheoriginalGPUaccelerationresearch,thispapersummarizethecurrenttwoportingmethodscalledMOLandRPA.Andthenthispaperproposeanewp
6、ortingmethodcalledISC.Withthisnewmethod,thebiologicalsequencealignmenttools,SmithWatermanandBLAST,havebeenportedtoGPU.Firstly,thepaperintroducesthehardwarestructureofGPUandthearchitectureofCUDA,andintroducesthecompositionofCPU-GPUheterogeneousparallelsystem.Thispaperputsforwar
7、dthegeneralstepsoftheportingmethod,andsummarizestwokindsofcodeportingmethods,MOLandRPA.Thetwomethodsrequireprogrammerstohaveanin-depthunderstandingoftheoriginalCPUcode,andbecauseofthemodificationoftheoriginalcode,it`snotonlytimeconsumingbutalsocan`tguarantetheresult.Inthispape
8、r,anewmethodofcodeportingISCisproposed.Themethoddoesnotneedto