解碼GPU計(jì)算與CFD
2018-04-03 by:CAE仿真在線 來(lái)源:互聯(lián)網(wǎng)
說(shuō)起GPU相信大家對(duì)它一定都不陌生,GPU就是圖形處理器(Graphics Processing Unit)的簡(jiǎn)稱,它是每臺(tái)電腦上都配有的顯卡處理器。但是,除了為大家所熟知的圖形渲染功能外,GPU還有什么其他的用途嗎?GPU計(jì)算又是一個(gè)什么概念呢?
什么是GPU計(jì)算?
GPU加速計(jì)算是指同時(shí)利用GPU和CPU,加快科學(xué)、分析、工程、消費(fèi)和企業(yè)應(yīng)用程序的運(yùn)行速度。GPU加速器于 2007 年由 NVIDIA率先推出,現(xiàn)已在世界各地為政府實(shí)驗(yàn)室、高校、公司以及中小型企業(yè)的高能效數(shù)據(jù)中心提供支持。GPU能夠使從汽車、手機(jī)和平板電腦到無(wú)人機(jī)和機(jī)器人等平臺(tái)的應(yīng)用程序加速運(yùn)行.
GPU 如何加快軟件應(yīng)用程序的運(yùn)行速度?GPU 加速計(jì)算可以提供非凡的應(yīng)用程序性能,能將應(yīng)用程序計(jì)算密集部分的工作負(fù)載轉(zhuǎn)移到 GPU,同時(shí)仍由 CPU 運(yùn)行其余程序代碼。從用戶的角度來(lái)看,應(yīng)用程序的運(yùn)行速度明顯加快.
理解GPU和CPU之間區(qū)別的一種簡(jiǎn)單方式是比較它們?nèi)绾翁幚砣蝿?wù)。CPU由專為順序串行處理而優(yōu)化的幾個(gè)核心組成,而 GPU 則擁有一個(gè)由數(shù)以千計(jì)的更小、更高效的核心(專為同時(shí)處理多重任務(wù)而設(shè)計(jì))組成的大規(guī)模并行計(jì)算架構(gòu)。
圖1:Nvidia Tesla系列GPU
GPU vs CPU,哪個(gè)更厲害?
通過(guò)下面的數(shù)據(jù)來(lái)體會(huì)一下在GPU和CPU在粒子法計(jì)算應(yīng)用中的性能差異。我們將一個(gè)典型的變速箱模型,分別采用傳統(tǒng)的有限體積法求解器、基于CPU的SPH求解器、基于GPU的SPH(光滑粒子流體動(dòng)力學(xué)方法)求解器這三種求解策略,得到了如下統(tǒng)計(jì):
1)有限體積法求解器,硬件配置為8核CPU,完成計(jì)算需要100小時(shí),絕對(duì)花費(fèi)為800核時(shí),電力消耗10.5千瓦時(shí);
2)基于CPU的SPH求解器,硬件配置為24核CPU,完成計(jì)算需要30小時(shí),絕對(duì)花費(fèi)為720核時(shí),電力消耗11.4千瓦時(shí);
3)基于GPU的SPH求解器,硬件配置為1GPU,完成計(jì)算需要7.5小時(shí),絕對(duì)花費(fèi)為7.5GPU時(shí),電力消耗1.8千瓦時(shí)。
作為使用者,我們最關(guān)心的莫過(guò)于Wall time這項(xiàng)指標(biāo)了,究竟什么是Wall time呢?說(shuō)得通俗點(diǎn),就是時(shí)鐘顯示的時(shí)間,也可以直觀地理解為我們完成一次計(jì)算真正花費(fèi)的時(shí)間。從這個(gè)角度來(lái)看,基于這個(gè)測(cè)試模型,采用GPU計(jì)算的nFx只需要一個(gè)晚上的時(shí)間就能得到結(jié)果,而采用CPU的粒子法求解器要花費(fèi)一天以上,更不用說(shuō)傳統(tǒng)有限體積法求解器需要四天以上了。
電力消耗是另外一個(gè)很實(shí)際的考量指標(biāo),我們不難發(fā)現(xiàn),作為基于GPU計(jì)算的粒子法求解器,其表現(xiàn)又是最突出的。其實(shí)很容易理解,電力消耗和Wall time是成正比的,在單位耗電量比較相似的情況下,計(jì)算越快結(jié)束,耗電量就越低。
圖2:基于相同算例的計(jì)算性能對(duì)比
為什么SPH算法適合用GPU計(jì)算?
上述簡(jiǎn)單的對(duì)比讓我們比較直觀地體會(huì)到了,GPU的計(jì)算性能卓越,成本效用最高。究竟是什么關(guān)鍵因素,形成了這樣明顯的差異呢?我們來(lái)探討一下GPU的編程模型吧。
GPU可以被看作為一種高度并行化、多線程、多核的處理器,具有超大的計(jì)算吞吐量和極高的存儲(chǔ)器帶寬。相比CPU,GPU會(huì)劃分出更多的執(zhí)行單元,等同于執(zhí)行相當(dāng)多數(shù)量的線程,這就是GPU擁有強(qiáng)大的并行計(jì)算能力的奧秘所在。一句話總結(jié),由于其高度并行化的計(jì)算機(jī)制,GPU是專為密集型的計(jì)算而設(shè)計(jì)的。
那么,是不是所有的并行計(jì)算都適合用GPU來(lái)執(zhí)行呢?這里要區(qū)分兩個(gè)并行的概念:基于數(shù)據(jù)的并行和基于任務(wù)的并行。GPU的加速優(yōu)勢(shì)主要體現(xiàn)在基于數(shù)據(jù)的并行。比較常見的例子,渲染圖像的后期處理、視頻編碼和解碼、立體視覺和模式識(shí)別等都屬于數(shù)據(jù)并行模式的范疇,因此GPU在這些領(lǐng)域往往能取得不錯(cuò)的加速比?;氐娇茖W(xué)計(jì)算領(lǐng)域,以粒子法為例,其計(jì)算是由一系列的流體粒子的相互作用來(lái)完成的,在計(jì)算中每個(gè)粒子所執(zhí)行的計(jì)算是完全相同的;這種在不同的數(shù)據(jù)上執(zhí)行相同的程序,是最合適GPU的計(jì)算問(wèn)題。
SPH的計(jì)算流程是怎樣的?
首先,用前處理把計(jì)算域離散成粒子,然后求解器讀入粒子的初始化信息及相應(yīng)的設(shè)置以對(duì)求解器進(jìn)行初始化,接著再把初始化的數(shù)據(jù)復(fù)制到GPU上開始求解。整個(gè)求解過(guò)程又可分為三大步驟:
-
鄰居粒子的搜尋與更新;
-
粒子間相互作用的計(jì)算;
-
系統(tǒng)信息(位移,速度等)的更新
這三個(gè)步驟,是SPH算法的三大核心,也同時(shí)是GPU運(yùn)行時(shí)間的三大重要組成部分。一些專業(yè)論文中的研究表明:使用GPU并行時(shí),粒子間相互作用的計(jì)算用時(shí)百分比是三者中最高的,相較而言,搜尋鄰居粒子和系統(tǒng)更新的計(jì)算效率要高很多;隨著并形程度的增大,粒子間相互作用計(jì)算在總時(shí)間中的比例逐漸減少,而整體的計(jì)算效率會(huì)不斷提高。這種加速的有效性說(shuō)明了SPH算法是可以有效分解為數(shù)據(jù)流并行問(wèn)題,從而通過(guò)GPU并行得到顯著加速的。
相關(guān)標(biāo)簽搜索:解碼GPU計(jì)算與CFD Fluent培訓(xùn) Fluent流體培訓(xùn) Fluent軟件培訓(xùn) fluent技術(shù)教程 fluent在線視頻教程 fluent資料下載 fluent分析理論 fluent化學(xué)反應(yīng) fluent軟件下載 UDF編程代做 Fluent、CFX流體分析 HFSS電磁分析