当前位置: 首页 > 专利查询>上海大学专利>正文

一种N-body问题近程作用计算在GPU结构的优化映射方法技术

技术编号:8387042 阅读:225 留言:0更新日期:2013-03-07 07:44
本发明专利技术涉及一种N-body问题近程作用计算在GPU结构的优化映射方法,用于计算粒子受到本盒子中其他粒子以及邻居盒子中粒子的近程作用,所述方法包括建立数组Neighbor?List,依次存储编号大于当前盒子编号的邻居盒子信息;建立数组acc记录全局存储器中粒子所受其他粒子近程作用的计算结果;建立多个block与所有盒子的一一对应关系,使每个block处理与其对应的盒子中粒子近程作用的计算。本发明专利技术提出的通过高速存取的片上共享存储来复用数据,解决了CPU算法访存的瓶颈,利用牛顿第三定律减少了算法的计算量,总体时间得到了进一步优化,实现近程计算部分在GPU结构上的高效执行,提高了计算效率。

【技术实现步骤摘要】
一种N-body问题近程作用计算在GPU结构的优化映射方法
本专利技术涉及GPU并行计算领域,尤其涉及一种N-body问题近程作用计算在GPU(GraphicProcessingUnit,图形处理器)结构的优化映射方法。
技术介绍
随着技术的发展,众核GPU已经成为目前重要的处理器。传统上GPU只用于处理3D渲染任务,而其它大多数的任务都交给了CPU处理。CPU作为一种通用处理器,其体系结构设计必须兼顾各种任务的需要,因此CPU中大多数晶体管被用于制造庞大的缓存和复杂的控制逻辑,而运算单元占用面积则并不多;相反地,GPU由于图形渲染的并行特性与生俱来具有大量运算单元,非常适合计算密集型的大规模数据并行计算。但由于传统GPU硬件架构的限制很难有效利用其资源进行通用计算,为此,NVIDIA公司推出了CUDA(ComputeUnifiedDeviceArchitecture,通用并行计算架构)完全扭转了局面,由于其功能强大、应用领域广泛,推动了GPU通用计算的发展。但如何高效地在GPU架构上实现算法是研究人员当前面临的巨大挑战。N-body问题是高性能计算领域最具代表性、最有影响力以及最有本文档来自技高网...
一种N-body问题近程作用计算在GPU结构的优化映射方法

【技术保护点】
一种N?body问题近程作用计算在GPU结构的优化映射方法,用于计算粒子受到本盒子中其他粒子以及邻居盒子中粒子的近程作用,其特征在于,所述方法包括以下步骤:步骤S0,建立数组Neighbor?List,依次存储编号大于当前盒子编号的邻居盒子信息;建立数组acc记录全局存储器中粒子所受其他粒子近程作用的计算结果;建立多个block与所有盒子的一一对应关系,使每个block处理与其对应的盒子中粒子近程作用的计算,每个block中的线程数不小于与其对应的盒子中的粒子数,每个盒子中的粒子数均为n;步骤S1,对应当前盒子的block在共享存储器中申请大小均为n的数组A和数组B,其中,数组A用于保存当前盒...

【技术特征摘要】
1.一种N-body问题近程作用计算在GPU结构的优化映射方法,用于计算粒子受到本盒子中其他粒子以及邻居盒子中粒子的近程作用,其特征在于,所述方法包括以下步骤:步骤S0,建立数组NeighborList,依次存储编号大于当前盒子编号的邻居盒子信息;建立数组acc记录全局存储器中粒子所受其他粒子近程作用的计算结果;建立多个block与所有盒子的一一对应关系,使每个block处理与其对应的盒子中粒子近程作用的计算,每个block中的线程数不小于与其对应的盒子中的粒子数,每个盒子中的粒子数均为n;步骤S1,对应当前盒子的block在共享存储器中申请大小均为n的数组A和数组B,其中,数组A用于保存当前盒子中的n个粒子的信息,数组B用于存放当前盒子中每个粒子所受当前盒子中其他n-1个粒子的反作用力数据;步骤S2,建立对应当前盒子的block中的前n个线程与当前盒子中的n个粒子的一一对应关系,使每个线程将与其对应的当前盒子中的粒子信息装载到共享存储器中的数组A中;步骤S3,对应当前盒子的block的前n个线程中的每个线程分别在寄存器中申请一个局部变量d_acc,每个局部变量d_acc用于保存其所属当前线程对应的当前盒子中一个粒子所受的近程作用力,设当前线程对应的粒子为第threadIdx.x个粒子,threadIdx.x的取值范围为0至n-1,然后当前线程从共享存储器的数组A中顺序读取第threadIdx.x个粒子后面的n-threadIdx.x-1个粒子的信息,并分别将n-threadIdx.x-1个粒子与第threadIdx.x个粒子进行近程作用计算;每对粒子间的近程作用计算结果同时叠加到相应线程的局部变量d_acc和数组B中相应位置;完成当前盒子中所有粒子间的近程作用计算后,对应当前盒子的block的前n个线程中的每个线程分别将数组B中存放的与该线程对应的当前盒子中粒子所受的反作用力数据叠加到全局存储器的数组acc中的元素acc[i]的位置,i表示当前线程所对应的当前盒子中的粒子编号;步骤S4,根据数组NeighborList,建...

【专利技术属性】
技术研发人员:雷咏梅单健晨朱劲师方韵
申请(专利权)人:上海大学上海红神信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1