解碼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)用程序計算密集部分的工作負載轉(zhuǎn)移到 GPU,同時仍由 CPU 運行其余程序代碼。從用戶的角度來看,應(yīng)用程序的運行速度明顯加快.

理解GPU和CPU之間區(qū)別的一種簡單方式是比較它們?nèi)绾翁幚砣蝿?wù)。CPU由專為順序串行處理而優(yōu)化的幾個核心組成,而 GPU 則擁有一個由數(shù)以千計的更小、更高效的核心(專為同時處理多重任務(wù)而設(shè)計)組成的大規(guī)模并行計算架構(gòu)。

解碼GPU計算與CFDfluent分析案例圖片1

圖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這項指標了,究竟什么是Wall time呢?說得通俗點,就是時鐘顯示的時間,也可以直觀地理解為我們完成一次計算真正花費的時間。從這個角度來看,基于這個測試模型,采用GPU計算的nFx只需要一個晚上的時間就能得到結(jié)果,而采用CPU的粒子法求解器要花費一天以上,更不用說傳統(tǒng)有限體積法求解器需要四天以上了。

電力消耗是另外一個很實際的考量指標,我們不難發(fā)現(xiàn),作為基于GPU計算的粒子法求解器,其表現(xiàn)又是最突出的。其實很容易理解,電力消耗和Wall time是成正比的,在單位耗電量比較相似的情況下,計算越快結(jié)束,耗電量就越低。

解碼GPU計算與CFDfluent分析案例圖片2

圖2:基于相同算例的計算性能對比

為什么SPH算法適合用GPU計算?

上述簡單的對比讓我們比較直觀地體會到了,GPU的計算性能卓越,成本效用最高。究竟是什么關(guān)鍵因素,形成了這樣明顯的差異呢?我們來探討一下GPU的編程模型吧。

GPU可以被看作為一種高度并行化、多線程、多核的處理器,具有超大的計算吞吐量和極高的存儲器帶寬。相比CPU,GPU會劃分出更多的執(zhí)行單元,等同于執(zhí)行相當多數(shù)量的線程,這就是GPU擁有強大的并行計算能力的奧秘所在。一句話總結(jié),由于其高度并行化的計算機制,GPU是專為密集型的計算而設(shè)計的。

那么,是不是所有的并行計算都適合用GPU來執(zhí)行呢?這里要區(qū)分兩個并行的概念:基于數(shù)據(jù)的并行和基于任務(wù)的并行。GPU的加速優(yōu)勢主要體現(xiàn)在基于數(shù)據(jù)的并行。比較常見的例子,渲染圖像的后期處理、視頻編碼和解碼、立體視覺和模式識別等都屬于數(shù)據(jù)并行模式的范疇,因此GPU在這些領(lǐng)域往往能取得不錯的加速比?;氐娇茖W(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并行得到顯著加速的。


開放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標簽搜索:解碼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電磁分析 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復(fù)電話,謝謝!
驗證碼

全國服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com