解碼GPU計算與CFD

2018-04-03  by:CAE仿真在線  來源:互聯(lián)網(wǎng)


說起GPU相信大家對它一定都不陌生,GPU就是圖形處理器(Graphics Processing Unit)的簡稱,它是每臺電腦上都配有的顯卡處理器。但是,除了為大家所熟知的圖形渲染功能外,GPU還有什么其他的用途嗎?GPU計算又是一個什么概念呢?

什么是GPU計算?

GPU加速計算是指同時利用GPU和CPU,加快科學、分析、工程、消費和企業(yè)應用程序的運行速度。GPU加速器于 2007 年由 NVIDIA率先推出,現(xiàn)已在世界各地為政府實驗室、高校、公司以及中小型企業(yè)的高能效數(shù)據(jù)中心提供支持。GPU能夠使從汽車、手機和平板電腦到無人機和機器人等平臺的應用程序加速運行.

GPU 如何加快軟件應用程序的運行速度?GPU 加速計算可以提供非凡的應用程序性能,能將應用程序計算密集部分的工作負載轉移到 GPU,同時仍由 CPU 運行其余程序代碼。從用戶的角度來看,應用程序的運行速度明顯加快.

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

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

圖1:Nvidia Tesla系列GPU

GPU vs CPU,哪個更厲害?

通過下面的數(shù)據(jù)來體會一下在GPU和CPU在粒子法計算應用中的性能差異。我們將一個典型的變速箱模型,分別采用傳統(tǒng)的有限體積法求解器、基于CPU的SPH求解器、基于GPU的SPH(光滑粒子流體動力學方法)求解器這三種求解策略,得到了如下統(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千瓦時。

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

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

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

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

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

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

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

那么,是不是所有的并行計算都適合用GPU來執(zhí)行呢?這里要區(qū)分兩個并行的概念:基于數(shù)據(jù)的并行和基于任務的并行。GPU的加速優(yōu)勢主要體現(xiàn)在基于數(shù)據(jù)的并行。比較常見的例子,渲染圖像的后期處理、視頻編碼和解碼、立體視覺和模式識別等都屬于數(shù)據(jù)并行模式的范疇,因此GPU在這些領域往往能取得不錯的加速比?;氐娇茖W計算領域,以粒子法為例,其計算是由一系列的流體粒子的相互作用來完成的,在計算中每個粒子所執(zhí)行的計算是完全相同的;這種在不同的數(shù)據(jù)上執(zhí)行相同的程序,是最合適GPU的計算問題。

SPH的計算流程是怎樣的?

首先,用前處理把計算域離散成粒子,然后求解器讀入粒子的初始化信息及相應的設置以對求解器進行初始化,接著再把初始化的數(shù)據(jù)復制到GPU上開始求解。整個求解過程又可分為三大步驟:

  • 鄰居粒子的搜尋與更新;

  • 粒子間相互作用的計算;

  • 系統(tǒng)信息(位移,速度等)的更新

這三個步驟,是SPH算法的三大核心,也同時是GPU運行時間的三大重要組成部分。一些專業(yè)論文中的研究表明:使用GPU并行時,粒子間相互作用的計算用時百分比是三者中最高的,相較而言,搜尋鄰居粒子和系統(tǒng)更新的計算效率要高很多;隨著并形程度的增大,粒子間相互作用計算在總時間中的比例逐漸減少,而整體的計算效率會不斷提高。這種加速的有效性說明了SPH算法是可以有效分解為數(shù)據(jù)流并行問題,從而通過GPU并行得到顯著加速的。


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

相關標簽搜索:解碼GPU計算與CFD Fluent培訓 Fluent流體培訓 Fluent軟件培訓 fluent技術教程 fluent在線視頻教程 fluent資料下載 fluent分析理論 fluent化學反應 fluent軟件下載 UDF編程代做 Fluent、CFX流體分析 HFSS電磁分析 

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

全國服務熱線

1358-032-9919

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