本发明专利技术涉及计算机高性能计算领域,提供一种提高CPU+GPU异构装置计算精度的方法,使大规模多精度运算在基于CPU+GPU的异构装置上获得加速。本发明专利技术的技术方案是:先利用CPU将所有乘数与被乘数传入GPU中;接着GPU每个线程块独立并行处理一对多精度乘法,同时每对乘法在各线程块内并行执行运算和并行进位;最后将结果整理后传回CPU内存,得出计算结果。本发明专利技术实现了大量计算任务的GPU并行处理,大幅提高了计算性能。
【技术实现步骤摘要】
本专利技术涉及计算机高性能计算领域,是一种提高CPU+GPU异构装置计算精度的方法。
技术介绍
在数据加密解密、建筑仿真验证、科研可靠计算等领域,常常用到大规模的多精度数值计算。由于涉及的数值位数,远大于目前计算机处理器CPU硬件精度(最高只有64bit或128bit),因此需要在硬件精度的基础上进行扩展。传统的解决方案主要依靠CPU的串行处理,在计算速度方面受到处理发展的制约,有较大的局限性,已经不能满足日益增大的计算需求。因此,利用GPU配合CPU进行大规模数据处理也逐渐出现,如2012年5月30日授权的中国专利技术专利申请第200910088372. 3所提出的基于GPU众核平台的矩阵并行转置方法,其基本思路是根据矩阵转置后的模型建立的索引,利用GPU多个线程并行工作,对二维矩阵每个元素同时转置,降低了传统遍历整个矩阵转置的时间。2011年9月28日授权的中国专利技术专利申请第201010107317. 7所提出的实现GPU运算提高DR图像处理速度的方法,其基本思想是读取原始医学图像数据,用图像边缘像素对原始医学图像进行扩展和补齐,通过CUDA函数库对扩展和补齐的原始医学图像数据以及卷积核进行FFT变换和变换后矩阵乘法加速,提出了一种简易、低成本的医学影像处理方法。2012年3月21日授权的中国专利技术专利申请200910226769. 4所提出的利用CPU和GPU协同工作对三角线性方程组求解的加速方法,技术方案 是根据三角线性方程组AXX= a X B,为了提高A4XB求解速度,将B矩阵按照切割比例K切割成B1和B2,使CPU和GPU分别并行计算A—1 XB1和A—1 XB2,实现CPU和GPU重叠计算,达到良好的负载平衡效果。综上所述,CPU+GPU协作处理,可大幅度提高工作速度,是未来的计算设备的发展趋势。本专利所解决的问题是提高CPU+GPU异构装置计算精度,加速海量数据的多精度乘法运算,而这些研究目前未见到相关文献报道。
技术实现思路
本专利技术要解决的问题在于针对现有技术平台计算速度等问题,本专利技术提出一种基于CPU+GPU异构装置,实现计算单元与相关存储器的合理分配与调度,解决大规模乘法计算精度和高效并行地处理最终结果的问题。本专利技术解决上述技术问题的技术方案是,提出一种提高CPU+GPU异构装置计算精度的方法,
技术实现思路
如下CPU端接收M对N位被乘数和乘数输入并保存,M个被乘数分别标识为Ap A2......K,M个乘数分别标识为B1、B2……Bm ;在CPU端控制流程包括GPU端空间分配、线程块模型设定、数据传输、启动和停止(1)根据CPU端被乘数和乘数大小设定GPU端接收被乘数和乘数空间Da和Db ;⑵根据乘法运算的个数设置线程块的个数和维数,根据被乘数和乘数位数设置线程个数和位数,在此我们设定线程块个数等于乘法运算的个数M,线程数等于被乘数和乘数位数N 同时,为了提高运行速度,使用GPU端线程块的共享存储器,即在CPU端为GPU端每个线程开辟原始数据大小2倍的复数组共享存储区域;(4) CPU将所有的乘数与被乘数通过PCI总线分批异步传输至GPU全局存储器;(5)准备完成,启动GPU端,使GPU完成乘法对运算;启动GPU端后,GPU作为处理器,在GPU中,每个线程块负责一对乘法运算,同时每个线程块对单个乘法运算执行并行处理,GPU将并行处理获得的数据写回全局存储器;最后CPU端将全局存储器中的结果分批异步传输至CPU内存。因为每个线程块独立完成一个乘法运算,通过大量的线程块并行工作,就能实现大规模乘法运算。并行处理具体为每个线程块内并行dfDA、DB中的被乘数和乘数以N位分段进行切割,将切割的一对被乘数和乘数按传输到一个线程块共享存储器上,在每个线程块内部,对共享存储器上的被乘数和乘数进行FFT变换;对同一线程块变换后的乘数和被乘数,各子线将乘数和被乘数对应元素相乘,得到的乘积仍然存放于共享存储器,共享存储器中的乘积分别在各自的线程块内进行IFFT变换。并行进位处理取各个共享存储器IFFT变换后元素实部并取整,按Ns分段,Ns满足显卡线程束的整数倍,一个线程控制一段数据,每一个线程从各段首元素开始循环执行保留当前元素对所选进制X的余数并将其倍数加到下一个元素,令下一个元素为当前元素;直到当前元素小于所选进制X并且循环次数不小于每段元素个数为止。本专利技术充分利用CPU与GPU的性能优势,根据CPU与GPU异构融合,通过核心计算任务并行化和向GPU转移,从而提供一种低延迟、高性能的多精度计算方法,可为具有大规模多精度的硬件装置提高计算能力。本专利技术技术优势如下本专利专利技术所涉及的异构计算装置,只需具备CPU和有运算能力的GPU等基本硬件即可,可以是一台有通用显卡的计算机、也可以是含CPU+GPU融合单芯片处理器的智能终端,具有移植性强、成本低廉、易于维护等优点;采用并行方式,将乘法运算并行求解,结果分段进位,大幅提高了处理速度。传统的多精度乘法通常采用CPU串行处理的方式,由于CPU频率受硅工艺的制约,内核数有限,因此这种方式在大规模计算任务时效率较低、性价比不高。而GPU内核数有数千之多,并行处理能力可达CPU的百倍。通过本专利技术提供的并行化多精度乘法方法,可以大幅提高效率和性价比;采用分批异步传输方式可隐藏传输延迟,使CPU与GPU各自任务并行执行;充分利用计算单元的高速缓存,降低读写冲突,进一步提高执行效率。附图说明图1本专利技术流程图;图2进位并行处理实现流程图;图3CPU+GPU异构装置图。具体实施例方式下面结合附图和实施例对本专利技术的技术方案作进一步详细说明。按照图3异构装置,可以是一台有通用显卡的计算机、也可以是含CPU+GPU融合单芯片处理器的智能终端。CPU作为控制器,包含对GPU端控制部分和数据存储部分;GPU作为处理器,包含存放数据的全局存储器和多个线程块,每个线程块可独立并行执行,其中每个线程块包含独立的共享存储器和多个线程,每个线程可以并行执行。在图3的异构装置上,按照图1流程,图1为本专利技术流程图,包括如下主要步骤=(I)CPU端接受用户需要计算M对N位乘法的被乘数和乘数,即内存上M个被乘数Ap A2......Am和M个乘数B1' B2......Bm ;⑵CPU端作为控制器,包含GPU端全局存储器和共享存储器规划(即图3CPU控制部分I)、规划GPU计算单元(即图3CPU控制部分I)和控制数据传输(即图3CPU端控制部分2),存储器规划包括开辟与被乘数和乘数等大的存储空间,即DA1、Da2……Dm,Db1、Db2……Dbm ;开辟被乘数和乘数原始大小2倍的共享存储器内复数组a和b,并初始化为零;规划GPU计算单元(为GPU端设定网格结构)包括根据乘法运算的个数设置线程块的个数和维数,如设置线程块为一维,个数等于乘法对个数M ;根据被乘数和乘数位数设置线程个数和维数,如线程设置为一维,线程个数等于被乘数和乘数位数N ;控制数据传输包括将被乘数和乘数分批异步传输到GPU端全局存储器,Dai存放A1, Dm存放B1,以此类推,Dam存放Am,Dbm存放Bm ;(3)启动GPU端进行计算(如图3控制部分3),此时GPU端作为处理器,每个线程处理一对多精度乘法,如图3将被乘数Dai和乘本文档来自技高网...
【技术保护点】
一种提高CPU+GPU异构装置计算性能的方法,其特征在于,包括步骤:CPU端接收输入的M对N位被乘数和乘数,将所有被乘数和乘数按照顺序分别组成一个一维数组,保存并标识被乘数和乘数;CPU端作为控制器为GPU端分配全局存储器空间和线程块共享存储空间,为GPU端设定网格结构,即线程块位数和线程位数,以及将所有的乘数与被乘数分批异步传输至GPU全局存储器;启动GPU,GPU端作为处理器:在GPU中,将全局存储器中的每对被乘数和乘数分别拷贝到每个线程块,每个线程块对每对乘法运算执行并行处理,得到M对乘法的乘积,GPU将并行处理获得的乘积写回全局存储器;CPU端控制将全局存储器存储的数据分批异步传输至CPU内存。
【技术特征摘要】
1.一种提高CPU+GPU异构装置计算性能的方法,其特征在于,包括步骤CPU端接收输入的M对N位被乘数和乘数,将所有被乘数和乘数按照顺序分别组成一个一维数组,保存并标识被乘数和乘数;CPU端作为控制器为GPU端分配全局存储器空间和线程块共享存储空间,为GPU端设定网格结构,即线程块位数和线程位数,以及将所有的乘数与被乘数分批异步传输至GPU全局存储器;启动GPU,GPU端作为处理器在GPU中,将全局存储器中的每对被乘数和乘数分别拷贝到每个线程块,每个线程块对每对乘法运算执行并行处理,得到M 对乘法的乘积,GPU将并行处理获得的乘积写回全局存储器;CPU端控制将全局存储器存储的数据分批异步传输至CPU内存。2.根据权利要求1所述的方法,其特征在于,所述每个线程块对每对乘法运算并行处理具体为将GPU端全局存储器中的被乘数和乘数以原始数据位数分段进行切割,将切割的一对被乘数和乘数放入一个线程块共享存储器上,在每个线...
【专利技术属性】
技术研发人员:李清都,胡明,杨芳艳,唐宋,冯鑫,胡诗沂,徐桂兰,
申请(专利权)人:重庆邮电大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。