【摘要】 本发明提供一种在GPU上利用多体作用模型进行粒子计算的方法, 包括:在加载有GPU的计算机上,将粒子系统中粒子的属性信息以及每 个粒子的邻近粒子的标号信息保存到系统内存中;然后再传输到GPU的 全局内存中,并在全局内存中为每个粒子对其邻近粒子施加的作用力开辟 存储数组;为每一个粒子单独分配一个GPU中的计算线程;根据建立的 粒子间多体相互作用模型记下本线程计算粒子的所有受力,同时保存其对 邻近粒子的受力;把保存的每一个粒子邻近粒子的受力从全局内存中读 入,并加和到相应标号的粒子身上,得到粒子所受到的完整作用力;在 GPU上计算每个粒子的势能,并将结果输出到系统内存上,由CPU统计 并计算单粒子平均势能。 【专利类型】发明申请 【申请人】中国科学院过程工程研究所 【申请人类型】科研单位 【申请人地址】100190北京市海淀区中关村北二条1号 【申请人地区】中国 【申请人城市】北京市 【申请人区县】海淀区 【申请号】CN200810222937.8 【申请日】2008-09-23 【申请年份】2008 【公开公告号】CN101685530A 【公开公告日】2010-03-31 【公开公告年份】2010 【授权公告号】CN101685530B 【授权公告日】2011-12-14 【授权公告年份】2011.0 【IPC分类号】G06T1/20 【发明人】侯超峰; 陈飞国; 葛蔚; 李静海 【主权项内容】1、一种利用多体作用模型进行粒子计算的方法,其特征在于,该方 法在加载有图形处理单元GPU的计算机上实现,所述GPU包括计算内核、 全局内存、共享内存、常量内存以及纹理内存;该方法包括: 步骤1)、将粒子系统中粒子的属性信息以及每个粒子的邻近粒子的标 号信息保存到所述计算机的系统内存中,所述粒子的属性信息包括初始的 位置、速度、加速度、势能,以及粒子标号、粒子种类; 步骤2)、将所述系统内存中的粒子属性信息以及每个粒子的邻近粒子 标号信息传输到所述GPU的全局内存中,并在所述全局内存中为每个粒 子对其邻近粒子施加的作用力开辟存储数组; 步骤3)、为所述粒子系统中的每一个粒子单独分配一个所述GPU中 的计算线程; 步骤4)、在为粒子所分配的线程上,根据所述的多体作用模型计算线 程所对应粒子的势能,然后通过对势能求导的力计算模型获取该粒子所受 到的作用力,并将粒子对其各个邻近粒子的作用力存储在所述GPU的共 享内存中,待与所有邻近粒子相互作用计算完毕后,再将所述粒子对邻近 粒子的作用力写回到步骤2)所得到的在全局内存中开辟的力存储数组中; 步骤5)、在为粒子所分配的线程上,根据本线程计算的对应粒子标号, 把步骤4)中该粒子邻近粒子所在线程计算的对本粒子的受力从所述全局内 存的存储数组中读出,然后再累加到步骤4)计算得到的粒子所受到的作 用力上,得到粒子所受到的完整作用力; 步骤6)、根据步骤5)计算得到的粒子所受到的完整作用力确定粒子 的加速度,然后由运动方程结合所述属性信息中初始的位置、速度信息, 计算下一时刻的速度与位置; 步骤7)、重复执行上述的粒子作用力计算、加速度计算、速度与位置 计算操作,直至整个粒子系统达到稳定状态或满足用户所要求的重复计算 次数。 【当前权利人】中国科学院过程工程研究所 【当前专利权人地址】北京市海淀区中关村北二条1号 【统一社会信用代码】12100000400012262T 【引证次数】1.0 【被引证次数】25 【他引次数】1.0 【被自引次数】5.0 【被他引次数】20.0 【家族引证次数】5.0 【家族被引证次数】26