[发明专利]一种提高CPU+GPU异构装置计算性能的方法有效
申请号: | 201310028325.6 | 申请日: | 2013-01-24 |
公开(公告)号: | CN103049241A | 公开(公告)日: | 2013-04-17 |
发明(设计)人: | 李清都;胡明;杨芳艳;唐宋;冯鑫;胡诗沂;徐桂兰 | 申请(专利权)人: | 重庆邮电大学 |
主分类号: | G06F7/523 | 分类号: | G06F7/523;G06F9/38;G06F17/14 |
代理公司: | 重庆华科专利事务所 50123 | 代理人: | 康海燕 |
地址: | 400065 *** | 国省代码: | 重庆;85 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 提高 cpu gpu 装置 计算 性能 方法 | ||
1.一种提高CPU+GPU异构装置计算性能的方法,其特征在于,包括步骤:CPU端接收输入的M对N位被乘数和乘数,将所有被乘数和乘数按照顺序分别组成一个一维数组,保存并标识被乘数和乘数;CPU端作为控制器为GPU端分配全局存储器空间和线程块共享存储空间,为GPU端设定网格结构,即线程块位数和线程位数,以及将所有的乘数与被乘数分批异步传输至GPU全局存储器;启动GPU,GPU端作为处理器:在GPU中,将全局存储器中的每对被乘数和乘数分别拷贝到每个线程块,每个线程块对每对乘法运算执行并行处理,得到M对乘法的乘积,GPU将并行处理获得的乘积写回全局存储器;CPU端控制将全局存储器存储的数据分批异步传输至CPU内存。
2.根据权利要求1所述的方法,其特征在于,所述每个线程块对每对乘法运算并行处理具体为:将GPU端全局存储器中的被乘数和乘数以原始数据位数分段进行切割,将切割的一对被乘数和乘数放入一个线程块共享存储器上,在每个线程块内部,对共享存储器上的被乘数和乘数进行扩展后FFT变换;对同一线程块变换后的乘数和被乘数,各子线程将乘数和被乘数对应元素相乘,得到的乘积存放于共享存储器,共享存储器中的乘积分别在各自的线程块内进行IFFT变换;将IFFT变换后的数据进行并行进位处理。
3.根据权利要求1所述的方法,其特征在于,为GPU端设定网格结构包括:根据乘法运算的个数设置线程块的维数和个数,如线程块设置为一维,个数等于乘法对个数M;根据被乘数和乘数位数设置线程维数和个数,如线程维数设置为一维,线程个数等于被乘数和乘数位数N。
4.根据权利要求1或2所述的方法,其特征在于,所述进位处理具体为:将取整后的结果按Ns分段,其中,Ns满足显卡线程束的整数倍,每一段由一个线程负责进位,每一个线程从各段首元素开始循环执行:保留当前元素对所选进制X的余数并将其倍数加到下一个元素,令下一个元素为当前元素;直到当前元素小于X并且循环次数不小于每段元素个数为止。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆邮电大学,未经重庆邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310028325.6/1.html,转载请声明来源钻瓜专利网。