解码GPU计算与CFD
2018-04-03 by:CAE仿真在线 来源:互联网
说起GPU相信大家对它一定都不陌生,GPU就是图形处理器(Graphics Processing Unit)的简称,它是每台电脑上都配有的显卡处理器。但是,除了为大家所熟知的图形渲染功能外,GPU还有什么其他的用途吗?GPU计算又是一个什么概念呢?
什么是GPU计算?
GPU加速计算是指同时利用GPU和CPU,加快科学、分析、工程、消费和企业应用程序的运行速度。GPU加速器于 2007 年由 NVIDIA率先推出,现已在世界各地为政府实验室、高校、公司以及中小型企业的高能效数据中心提供支持。GPU能够使从汽车、手机和平板电脑到无人机和机器人等平台的应用程序加速运行.
GPU 如何加快软件应用程序的运行速度?GPU 加速计算可以提供非凡的应用程序性能,能将应用程序计算密集部分的工作负载转移到 GPU,同时仍由 CPU 运行其余程序代码。从用户的角度来看,应用程序的运行速度明显加快.
理解GPU和CPU之间区别的一种简单方式是比较它们如何处理任务。CPU由专为顺序串行处理而优化的几个核心组成,而 GPU 则拥有一个由数以千计的更小、更高效的核心(专为同时处理多重任务而设计)组成的大规模并行计算架构。
图1:Nvidia Tesla系列GPU
GPU vs CPU,哪个更厉害?
通过下面的数据来体会一下在GPU和CPU在粒子法计算应用中的性能差异。我们将一个典型的变速箱模型,分别采用传统的有限体积法求解器、基于CPU的SPH求解器、基于GPU的SPH(光滑粒子流体动力学方法)求解器这三种求解策略,得到了如下统计:
1)有限体积法求解器,硬件配置为8核CPU,完成计算需要100小时,绝对花费为800核时,电力消耗10.5千瓦时;
2)基于CPU的SPH求解器,硬件配置为24核CPU,完成计算需要30小时,绝对花费为720核时,电力消耗11.4千瓦时;
3)基于GPU的SPH求解器,硬件配置为1GPU,完成计算需要7.5小时,绝对花费为7.5GPU时,电力消耗1.8千瓦时。
作为使用者,我们最关心的莫过于Wall time这项指标了,究竟什么是Wall time呢?说得通俗点,就是时钟显示的时间,也可以直观地理解为我们完成一次计算真正花费的时间。从这个角度来看,基于这个测试模型,采用GPU计算的nFx只需要一个晚上的时间就能得到结果,而采用CPU的粒子法求解器要花费一天以上,更不用说传统有限体积法求解器需要四天以上了。
电力消耗是另外一个很实际的考量指标,我们不难发现,作为基于GPU计算的粒子法求解器,其表现又是最突出的。其实很容易理解,电力消耗和Wall time是成正比的,在单位耗电量比较相似的情况下,计算越快结束,耗电量就越低。
图2:基于相同算例的计算性能对比
为什么SPH算法适合用GPU计算?
上述简单的对比让我们比较直观地体会到了,GPU的计算性能卓越,成本效用最高。究竟是什么关键因素,形成了这样明显的差异呢?我们来探讨一下GPU的编程模型吧。
GPU可以被看作为一种高度并行化、多线程、多核的处理器,具有超大的计算吞吐量和极高的存储器带宽。相比CPU,GPU会划分出更多的执行单元,等同于执行相当多数量的线程,这就是GPU拥有强大的并行计算能力的奥秘所在。一句话总结,由于其高度并行化的计算机制,GPU是专为密集型的计算而设计的。
那么,是不是所有的并行计算都适合用GPU来执行呢?这里要区分两个并行的概念:基于数据的并行和基于任务的并行。GPU的加速优势主要体现在基于数据的并行。比较常见的例子,渲染图像的后期处理、视频编码和解码、立体视觉和模式识别等都属于数据并行模式的范畴,因此GPU在这些领域往往能取得不错的加速比。回到科学计算领域,以粒子法为例,其计算是由一系列的流体粒子的相互作用来完成的,在计算中每个粒子所执行的计算是完全相同的;这种在不同的数据上执行相同的程序,是最合适GPU的计算问题。
SPH的计算流程是怎样的?
首先,用前处理把计算域离散成粒子,然后求解器读入粒子的初始化信息及相应的设置以对求解器进行初始化,接着再把初始化的数据复制到GPU上开始求解。整个求解过程又可分为三大步骤:
-
邻居粒子的搜寻与更新;
-
粒子间相互作用的计算;
-
系统信息(位移,速度等)的更新
这三个步骤,是SPH算法的三大核心,也同时是GPU运行时间的三大重要组成部分。一些专业论文中的研究表明:使用GPU并行时,粒子间相互作用的计算用时百分比是三者中最高的,相较而言,搜寻邻居粒子和系统更新的计算效率要高很多;随着并形程度的增大,粒子间相互作用计算在总时间中的比例逐渐减少,而整体的计算效率会不断提高。这种加速的有效性说明了SPH算法是可以有效分解为数据流并行问题,从而通过GPU并行得到显著加速的。
相关标签搜索:解码GPU计算与CFD Fluent培训 Fluent流体培训 Fluent软件培训 fluent技术教程 fluent在线视频教程 fluent资料下载 fluent分析理论 fluent化学反应 fluent软件下载 UDF编程代做 Fluent、CFX流体分析 HFSS电磁分析