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