基于gpu的有限元显式并行求解仿真方法

文档序号:6374146阅读:915来源:国知局
专利名称:基于gpu的有限元显式并行求解仿真方法
技术领域
本发明涉及计算机辅助工程中的有限元仿真领域,具体涉及一种基于GPU的有限元显式并行求解仿真方法。
背景技术
显式有限元计算方法不需要进行任何方程组的求解,具有很好的稳定性和收敛性,目前已经被广泛应用于汽车碰撞和金属薄板成形等强非线性问题的仿真计算。随着现代工程问题复杂度的提升,有限元计算模型规模越来越大,对于条件稳定的显式有限元算法,计算时间步长一般在微秒级,而实际仿真时间一般达到秒级,这意味着巨大的计算量。 随着计算技术的发展,并行计算方法是解决计算效率问题的有效手段,并且已经在多个领域等到了成功的应用。现有技术的并行有限元计算方法,在技术层面上主要采用分布式计算、并行机或多线程等并行处理技术,所使用的计算硬件主要是以CPU为计算核心的并行计算平台,在取得较好加速比的同时还存在以下的下足一方面,对于大规模的有限元模型,庞大的单元、节点规模导致分布式计算机之间或多线程之间的通讯消耗提升,导致加速比难以提升;另一方面,并行机价格昂贵,使用和维护相对复杂,对研究人员算法改写和编程能力要求也较高,难于普及。此外,目前基于GPU和CUDA的通用计算平台,硬件成本低,软件实现容易,计算效率提升明显,目前已成为国内外一个新的研究热点,目前在力学领域,显式有限元计算仍然不能利用基于GPU和CUDA的通用计算平台来实现并行求解仿真。

发明内容
本发明要解决的技术问题是提供一种运算速度快、计算成本低、硬件成本低,使用简单方便,尤其适用于板料成形优化、汽车碰撞等力学领域的非线性计算的基于GPU的有限元显式并行求解仿真方法。为了解决上述技术问题,本发明采用的技术方案为一种基于GPU的有限元显式并行求解仿真方法,其实施步骤如下I)将有限元计算模型数据读入主机内存中,通过主机CPU识别所述有限元计算模型数据中的节点和单元,找到每一个节点归属的单元并保存节点和单元之间的归属关系,将所述有限元计算模型数据读入GPU全局存储器;2)设定GPU执行的线程块数量和每一个线程块所包含的线程数量;3)通过GPU读取所述GPU全局存储器中存储的有限元计算模型数据,并根据线程块数量和每一个线程块所包含的线程数量,通过多线程的方法计算单元的最小时间步长、各个节点的节点加速度以及各个节点的节点作用力;4)判断是否需要输出计算结果,如果需要则采用异步的方式将GPU全局存储器上的计算结果复制到主机的内存中,并写入到输出文件;通过CPU判断总仿真时间或者总迭代次数是否达到设定值,如果达到设定值则退出;否则返回执行步骤3)。
所述步骤3)的详细步骤包括3. I)通过GPU读取GPU全局存储器中存储的所有单元数据,然后采用线程与单元一一对应的执行方式计算出每个单元对应的时间步长,并通过并行缩减的方法在所述时间步长中查找最小值作为最小时间步长;3. 2)通过GPU读取GPU全局存储器中存储的所有节点数据,然后采用线程与节点--对应的执行方式计算每个所述节点所对应的节点加速度;3. 3)通过GPU根据约束边界条件以及所述最小时间步长、节点加速度采用线程与节点对应的方法计算出每个节点新的速度和位移;3. 4)通过GPU读取GPU全局存储器中存储的所有节点数据和单元数据,然后GPU根据有限元计算模型的力边界条件计算得到各个节点的节点外力,通过并行运算的方法分 别计算各个单元的单元内力,采用线程与节点一一对应的执行方式将单元内力离散到整体节点内力中,采用线程与节点一一对应的执行方式将节点外力和整体节点内力做差值运算得到各个节点的节点作用力。本发明具有下述优点I、本发明的并行计算基于GPU通用计算平台实现,具有计算成本低,通用性强的优点。2、本发明在显式有限元计算的全部迭代过程均移植到GPU上进行计算,数据输出采用异步执行的方式,从而有效避免了由于主机与GPU的数据交换所产生的额外时间。3、本发明能够充分利用GPU计算特性,保证了程序的计算效率,能够利用现有的NVIDIA公司所提供的免费数值计算库CUBLAS,保证了程序代码的简洁性和可操作性。4、本实施例通过在程序开始阶段查找到每个节点所归属的单元,并记录到相关数据中,从而避免了单元作用力与离散节点作用力操作在GTO上并行执行时所产生的并行竞写错误。5、本发明进一步在采用GPU进行计算时,根据所计算对象的不同,分别采用不同的线程映射模式,主要包括两种映射模式单元与线程的一一映射,节点与线程的一一映射。6、本发明通过建立有限元模型和GPU线程之间的映射关系,针对非线性问题,在保证求解精度的前提下,能够大幅度提高显式有限元算法的计算效率。同传统的显式有限元并行计算方法不同,本发明通过建立有限元计算模型中的单元或节点与GPU线程间的一一对应关系,利用GPU所提供大规模计算线程,在计算流程中由一个线程负责一个单元或节点的计算,从而能够在包含成百上千个处理核心的GPU上并行、高效的实现显式有限元计算以及在工程中应用,具有高效、计算成本低的特点,能够应用于任何力学领域有限元问题的求解,尤其适用于类似于板料成形优化、汽车碰撞等的非线性计算领域。


图I为本发明实施例的实施流程示意图。图2为用于验证本发明实施例的Spherical cap模型示意图。图3为本发明实施例与传统CPU并行计算结果的精度对比示意图。
具体实施例方式如图I所示,本实施例基于GPU的有限元显式并行求解仿真方法的实施步骤如下I)将有限元计算模型数据读入主机内存中;通过主机CPU识别有限元计算模型数据中的节点和单元,找到每一个节点归属的单元并保存节点和单元之间的归属关系;将有限元计算模型数据读入GPU全局存储器;2)设定GPU执行的线程块数量和每一个线程块所包含的线程数量;3)通过GPU读取GPU全局存储器中存储的有限元计算模型数据,并根据线程块数量和每一个线程块所包含的线程数量,通过多线程的方法计算单元的最小时间步长、各个节点的节点加速度以及各个节点的节点作用力;4)判断是否需要输出计算结果,如果需要则采用异步的方式将GPU全局存储器上 的计算结果复制到主机的内存中,并写入到输出文件;通过CPU判断总仿真时间或者总迭代次数是否达到设定值,如果达到设定值则退出;否则返回执行步骤3)。其中,步骤3)的详细步骤包括3. I)通过GPU读取GPU全局存储器中存储的所有单元数据,然后采用线程与单元一一对应的执行方式计算出每个单元对应的时间步长,并通过并行缩减的方法在时间步长中查找最小值作为最小时间步长;3. 2)通过GPU读取GPU全局存储器中存储的所有节点数据,然后采用线程与节点一一对应的执行方式计算每个节点所对应的节点加速度;3. 3)通过GPU根据约束边界条件以及最小时间步长、节点加速度采用线程与节点对应的方法计算出每个节点新的速度和位移;3. 4)通过GPU读取GPU全局存储器中存储的所有节点数据和单元数据,然后GPU根据有限元计算模型的力边界条件计算得到各个节点的节点外力,通过并行运算的方法分别计算各个单元的单元内力,采用线程与节点一一对应的执行方式将单元内力离散到整体节点内力中,采用线程与节点一一对应的执行方式将节点外力和整体节点内力做差值运算得到各个节点的节点作用力。本实施例中使用的有限元计算模型数据包括1600个四边形单元和1681个节点。本实施例中针对该有限元计算模型数据的具体实施步骤如下第一步将有限元计算模型数据(包括模型网格信息、单元信息、节点信息、边界信息、材料参数等)存储到输入文件input, inp中。在程序运行界面输入input, inp, input,inp中的数据将被程序读取到主机内存中,本实施例中以A。表示主机内存中的有限元计算模型数据。一个标准的input, inp文件格式如下
权利要求
1.一种基于GPU的有限元显式并行求解仿真方法,其特征在于其实施步骤如下 1)将有限元计算模型数据读入主机内存中,通过主机CPU识别所述有限元计算模型数据中的节点和单元,找到每一个节点归属的单元并保存节点和单元之间的归属关系,将所述有限元计算模型数据读入GPU全局存储器; 2)设定GPU执行的线程块数量和每一个线程块所包含的线程数量; 3)通过GPU读取所述GPU全局存储器中存储的有限元计算模型数据,并根据线程块数量和每一个线程块所包含的线程数量,通过多线程的方法计算单元的最小时间步长、各个节点的节点加速度以及各个节点的节点作用力; 4)判断是否需要输出计算结果,如果需要则采用异步的方式将GPU全局存储器上的计算结果复制到主机的内存中,并写入到输出文件;通过CPU判断总仿真时间或者总迭代次数是否达到设定值,如果达到设定值则退出;否则返回执行步骤3)。
2.根据权利要求I所述的基于GPU的有限元显式并行求解仿真方法,其特征在于,所述步骤3)的详细步骤包括` 3.I)通过GPU读取GPU全局存储器中存储的所有单元数据,然后采用线程与单元一一对应的执行方式计算出每个单元对应的时间步长,并通过并行缩减的方法在所述时间步长中查找最小值作为最小时间步长; `3.2)通过GPU读取GPU全局存储器中存储的所有节点数据,然后采用线程与节点一一对应的执行方式计算每个所述节点所对应的节点加速度; `3.3)通过GPU根据约束边界条件以及所述最小时间步长、节点加速度采用线程与节点对应的方法计算出每个节点新的速度和位移; ` 3.4)通过GPU读取GPU全局存储器中存储的所有节点数据和单元数据,然后GPU根据有限元计算模型的力边界条件计算得到各个节点的节点外力,通过并行运算的方法分别计算各个单元的单元内力,采用线程与节点一一对应的执行方式将单元内力离散到整体节点内力中,采用线程与节点一一对应的执行方式将节点外力和整体节点内力做差值运算得到各个节点的节点作用力。
全文摘要
本发明公开了一种基于GPU的有限元显式并行求解仿真方法,实施步骤如下1)将数据读入主机内存中,通过主机CPU识别有限元计算模型数据中的节点和单元,查找并保存节点和单元之间的归属关系,将所述有限元计算模型数据读入GPU全局存储器;2)设定GPU执行参数;3)通过GPU读取GPU全局存储器中存储的数据,根据GPU执行参数通过多线程的方法计算各个节点的节点作用力;4)选择性输出计算结果,CPU根据收敛判断情况决定退出或者返回执行步骤3)。本发明具有运算速度快、计算成本低、硬件成本低,使用简单方便,尤其适用于板料成形仿真优化、汽车碰撞仿真等力学领域的动态非线性计算。
文档编号G06F9/46GK102819454SQ20121026643
公开日2012年12月12日 申请日期2012年7月30日 优先权日2012年7月30日
发明者蔡勇, 李光耀, 王琥, 郑刚 申请人:湖南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1