基于ICCG法的飛行器部件強度校核快速計算方法
發(fā)布時間:2021-11-04 09:36
為滿足可重復使用飛行器結(jié)構(gòu)故障快速校核計算的求解要求,以GPU(Graphics Processing Unit)作為協(xié)處理器,利用其高度并行化、高顯存帶寬的優(yōu)勢完成稀疏線性方程組的加速求解。鑒于線性方程組的求解最為耗時,采用不完全Cholesky分解的共軛梯度法(ICCG)完成機翼算例的計算,在GTX1060顯卡上較E3 1230V5有最高約25倍的加速比。結(jié)果表明,基于CUDA的ICCG算法能夠滿足至少60 000階矩陣的飛行器有限元模型的相關計算。
【文章來源】:計算機科學. 2020,47(S2)北大核心CSCD
【文章頁數(shù)】:5 頁
【部分圖文】:
程序框架時序圖
圖1中最為重要的步驟即CPU上的任務劃分和數(shù)據(jù)分割。通常情況下,稀疏矩陣經(jīng)帶寬優(yōu)化可化為帶狀稀疏矩陣,用分塊矩陣形式表示。以有兩個計算節(jié)點的計算集群為例,計算節(jié)點0負責計算前兩行,即子矩陣A11-A23均放至計算節(jié)點0進行計算。計算節(jié)點1負責計算后兩行,以此表征節(jié)點間的任務級并行。而節(jié)點內(nèi)部的兩部GPU分別負責計算任意一行,用以表征節(jié)點內(nèi)的并行層級;當矩陣較小時各GPU僅需調(diào)用一次SpMV函數(shù),如圖2(a)所示;當矩陣較大數(shù)據(jù)傳輸耗時較多時采用流[20]形式進行計算,用以表示GPU內(nèi)部并行層級,如圖2(b)所示。記計算節(jié)點數(shù)目為N,節(jié)點內(nèi)流的數(shù)目為S,每個計算節(jié)點內(nèi)的GPU數(shù)目為in,其中n<N。若SpMV在第n個節(jié)點內(nèi)計算時,第i個GPU上的第s個流對應計算編號A的子矩陣,即該GPU計算當前子矩陣所在行的所有數(shù)據(jù)。該方案的優(yōu)點是在一個GPU內(nèi)易實現(xiàn)Thrust庫[21]的求和操作,但在原矩陣帶寬變化較大時會出現(xiàn)負載不均衡的現(xiàn)象,不易保證硬件利用率。由于P2P[22]技術的出現(xiàn),不同GPU顯存可以通過PCIE總線直連,因此本文應用任務結(jié)構(gòu)體,采用更為高效的多流策略[23],如算法2所示。
針對運載器機翼在飛行過程中的動載荷問題,在CAE軟件中建模并在Abaqus中用三維8節(jié)點六面體單元劃分該示例模型,通過控制各邊上的節(jié)點數(shù)目得到不同階數(shù)的稀疏矩陣,如圖3所示。inp文件輸出的節(jié)點、單元、材料、載荷信息通過函數(shù)接口導入并計算總剛度矩陣。因在計算時總剛度矩陣不變,載荷向量待定,故在對比計算效率時僅統(tǒng)計載荷向量從主機端至顯卡(后稱設備端)的拷貝花銷、解算時間、位移向量從設備端至主機端的拷貝花銷這3項。為加快內(nèi)存拷貝速度,主機端內(nèi)存分配均采用鎖頁內(nèi)存,通過cudamallochost函數(shù)申請空間[7];因在Windows系統(tǒng)下,CPU端的計時器精度為1 ms,設備端采用CUDA自帶cudaEvent_t類計時,精度為0.5 μs。迭代終止條件為迭代循環(huán)內(nèi)向量內(nèi)積小于1×10-7或迭代10 000次。
【參考文獻】:
期刊論文
[1]基于CUDA的大規(guī)模稀疏矩陣的PCG算法優(yōu)化[J]. 鄭經(jīng)緯,安雪暉,黃綿松. 清華大學學報(自然科學版). 2014(08)
[2]考慮氣動—推進—彈性耦合的高超聲速飛行器面向控制建模與分析[J]. 張希彬,宗群,曾凡琳. 宇航學報. 2014(05)
[3]GPU上計算流體力學的加速[J]. 董廷星,李新亮,李森,遲學斌. 計算機系統(tǒng)應用. 2011(01)
[4]高超聲速飛行器氣動彈性力學研究綜述[J]. 楊超,許赟,謝長川. 航空學報. 2010(01)
本文編號:3475477
【文章來源】:計算機科學. 2020,47(S2)北大核心CSCD
【文章頁數(shù)】:5 頁
【部分圖文】:
程序框架時序圖
圖1中最為重要的步驟即CPU上的任務劃分和數(shù)據(jù)分割。通常情況下,稀疏矩陣經(jīng)帶寬優(yōu)化可化為帶狀稀疏矩陣,用分塊矩陣形式表示。以有兩個計算節(jié)點的計算集群為例,計算節(jié)點0負責計算前兩行,即子矩陣A11-A23均放至計算節(jié)點0進行計算。計算節(jié)點1負責計算后兩行,以此表征節(jié)點間的任務級并行。而節(jié)點內(nèi)部的兩部GPU分別負責計算任意一行,用以表征節(jié)點內(nèi)的并行層級;當矩陣較小時各GPU僅需調(diào)用一次SpMV函數(shù),如圖2(a)所示;當矩陣較大數(shù)據(jù)傳輸耗時較多時采用流[20]形式進行計算,用以表示GPU內(nèi)部并行層級,如圖2(b)所示。記計算節(jié)點數(shù)目為N,節(jié)點內(nèi)流的數(shù)目為S,每個計算節(jié)點內(nèi)的GPU數(shù)目為in,其中n<N。若SpMV在第n個節(jié)點內(nèi)計算時,第i個GPU上的第s個流對應計算編號A的子矩陣,即該GPU計算當前子矩陣所在行的所有數(shù)據(jù)。該方案的優(yōu)點是在一個GPU內(nèi)易實現(xiàn)Thrust庫[21]的求和操作,但在原矩陣帶寬變化較大時會出現(xiàn)負載不均衡的現(xiàn)象,不易保證硬件利用率。由于P2P[22]技術的出現(xiàn),不同GPU顯存可以通過PCIE總線直連,因此本文應用任務結(jié)構(gòu)體,采用更為高效的多流策略[23],如算法2所示。
針對運載器機翼在飛行過程中的動載荷問題,在CAE軟件中建模并在Abaqus中用三維8節(jié)點六面體單元劃分該示例模型,通過控制各邊上的節(jié)點數(shù)目得到不同階數(shù)的稀疏矩陣,如圖3所示。inp文件輸出的節(jié)點、單元、材料、載荷信息通過函數(shù)接口導入并計算總剛度矩陣。因在計算時總剛度矩陣不變,載荷向量待定,故在對比計算效率時僅統(tǒng)計載荷向量從主機端至顯卡(后稱設備端)的拷貝花銷、解算時間、位移向量從設備端至主機端的拷貝花銷這3項。為加快內(nèi)存拷貝速度,主機端內(nèi)存分配均采用鎖頁內(nèi)存,通過cudamallochost函數(shù)申請空間[7];因在Windows系統(tǒng)下,CPU端的計時器精度為1 ms,設備端采用CUDA自帶cudaEvent_t類計時,精度為0.5 μs。迭代終止條件為迭代循環(huán)內(nèi)向量內(nèi)積小于1×10-7或迭代10 000次。
【參考文獻】:
期刊論文
[1]基于CUDA的大規(guī)模稀疏矩陣的PCG算法優(yōu)化[J]. 鄭經(jīng)緯,安雪暉,黃綿松. 清華大學學報(自然科學版). 2014(08)
[2]考慮氣動—推進—彈性耦合的高超聲速飛行器面向控制建模與分析[J]. 張希彬,宗群,曾凡琳. 宇航學報. 2014(05)
[3]GPU上計算流體力學的加速[J]. 董廷星,李新亮,李森,遲學斌. 計算機系統(tǒng)應用. 2011(01)
[4]高超聲速飛行器氣動彈性力學研究綜述[J]. 楊超,許赟,謝長川. 航空學報. 2010(01)
本文編號:3475477
本文鏈接:http://sikaile.net/kejilunwen/hangkongsky/3475477.html
最近更新
教材專著