[发明专利]在CPU-GPU异构框架下遍历固定半径内邻居的自适应并行方法有效
申请号: | 201510800081.8 | 申请日: | 2015-11-19 |
公开(公告)号: | CN105468439B | 公开(公告)日: | 2019-03-01 |
发明(设计)人: | 阮骥鸣;王长波;秦洪 | 申请(专利权)人: | 华东师范大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/50 |
代理公司: | 上海蓝迪专利商标事务所(普通合伙) 31215 | 代理人: | 徐筱梅;张翔 |
地址: | 200241 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种在CPU‑GPU异构框架下遍历固定半径内邻居的自适应并行方法,该方法中使用了一个新的并行模型从而让GPU的各种特性能够和问题本身的性质相契合。该方法首先引入自适应并行的概念来对GPU中各个线程进行重组,从而让物理上相邻的线程能够处理逻辑上相似的工作,这样GPU中的很多局部性特征能够得到利用。其次,使用了CPU‑GPU异构框架,让CPU协同处理一些由于使用自适应并行产生的一些对于GPU来说低效率的事务。为了显示出本发明的特点,其被运用到光滑了粒子流体动力学方法(SPH)上并跟现有方法进行了对比,并在处理大规模高密度粒子的问题上体现出了很大的优势。 | ||
搜索关键词: | cpu gpu 框架 遍历 固定 半径 邻居 自适应 并行 算法 | ||
【主权项】:
1.一种在CPU‑GPU异构框架下遍历固定半径内邻居的自适应并行方法,其特征在于,包括以下步骤:A)基于固定网格法将空间划分为互不相交的单元格,通过遍历邻接单元格中的点来寻找所有在固定范围内的其他点;B)GPU自适应并行模型ⅰ)大量GPU内核程序的组织与调度1)从CPU上发射GPU父内核程序,该内核程序中每一个线程负责空间中一个单元格的计算;2)每个父内核程序线程计算其所负责的单元格内的点的数量、点在内存中的存储范围、计算这些点所需要的线程及内存资源;3)每个父内核程序线程根据所需要的线程以及内存资源,使用GPU动态并行快速地为其所负责的单元格发射一个GPU子内核程序来负责该单元格中点的计算;子内核程序中的线程数量依赖于单元格中点的数量;ⅱ)GPU内存访问优化1)为每个子内核程序中的线程块在共享内存中开辟足够存放W个点的必要数据的空间;其中,W是SIMD硬件能够同时执行的指令数量;在时下主流的GPU中这个值为32;2)每个子内核程序中的线程块中的前W个线程读取W个邻居点的数据到共享内存中;通过GPU全局内存的合并访问从而在一次全局内存访问中读取多个点的数据;3)每个子内核程序中的线程读取在共享内存中的W个邻居信息并做相应的处理;4)重复本步骤2)和3)直到对于该子内核程序所负责的单元格的所有邻接点的数据都被访问过;C)CPU‑GPU协同计算模型根据GPU自适应并行模型的缺陷,让CPU协同计算:ⅰ)CPU‑GPU数据传输优化CPU和GPU使用不同的存储空间,当需要进行数据同步时,两者进行频繁的数据交换,优化步骤具体包括:1)任务分配策略:将包含点少的单元格交给CPU处理,其余的给GPU处理;2)将计算工作进行分组:将整个计算区域分成几个子区域,点根据其在空间中的位置信息来确定其所在的子区域;计算将以子区域为单位计算,为了区域间的负载均衡,每个子区域所包含的点的个数是相近的;3)重叠计算与数据传输:以本步骤2)中所分的子区域为单位进行计算;当一个子区域中的点计算完毕后,马上将结果传到对端即CPU计算完毕后将结果传到GPU的存储空间中,反之亦然;4)新的数据组织方式:将给CPU和GPU处理的点的数据集中在一起,得以较小的成本调度大量的数据,并减少大量的冗余计算;5)为了满足4)中所述将给CPU和GPU处理的点的数据集中在一起,建立一套新的空间中点的排序规则,将点的数据在计算之前进行排序,能够高效访问和快速定位;根据点所在的子区域号、点所在单元格中的点的数量以及点所在单元格号构成一个用于对点的数据进行排序的哈希值,并根据该值使用基数排序或者计数排序对点的数据进行排序;ⅱ)负载均衡策略使用动态负载均衡策略,以保证CPU和GPU能根据自己的计算能力的特性,分配到适合的工作以及合理的工作量;1)一组指代单元格中点的数量的阈值来决定某个点是由CPU还是GPU来计算;为每一个计算工作分组设定一个阈值;2)如果CPU和GPU的运算时间之比在[α,β](0<α<β<1)范围之内,则不调整两者的工作量;3)如果GPU的耗时较低,则直接调整一组阈值中的其中一个来增加GPU的工作量;4)如果CPU耗时较低,将使用如下方法增加CPU的工作量:a)预测更改了阈值之后的CPU计算量wf=wo+w△,其中wf为预测工作量,wo为原有工作量,w△为工作增加量;b)预测计算时间
其中,tcpu为上一次计算CPU的耗时,
为预测耗时;c)判断
其中,tgpu为上一次计算GPU的耗时,如果是真,则修改阈值以增加CPU的计算量。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学,未经华东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510800081.8/,转载请声明来源钻瓜专利网。