2025-10-20 3152 0
Enhancement of GPU-accelerated smoothed particle hydrodynamics (SPH)method with dynamic parallelism
使用動態(tài)并行技術(shù)增強GPU加速的光滑粒子流體動力學(xué)(SPH)方法

摘要: 本研究引入了一種利用CUDA動態(tài)并行(CDP)的創(chuàng)新GPU編程架構(gòu),旨在提高光滑粒子流體動力學(xué)(SPH)模擬的計算效率。與傳統(tǒng)的CPU-GPU協(xié)作框架相比,動態(tài)并行能夠?qū)崿F(xiàn)動態(tài)的設(shè)備端內(nèi)核啟動和同步,有效緩解了由CPU-GPU通信瓶頸引起的延遲,從而提升了SPH求解器的端到端計算吞吐量。在此框架內(nèi),SPH中的鄰近粒子搜索和粒子相互作用計算在GPU架構(gòu)上實現(xiàn)了并行化。此外,動態(tài)并行通過CUDA流采用精細化的任務(wù)管理,實現(xiàn)了直接的設(shè)備端數(shù)據(jù)同步和并發(fā)任務(wù)調(diào)度,從而繞過了阻礙計算效率的傳統(tǒng)CPU/GPU控制屏障。通過在NVIDIA GeForce RTX 4080 SUPER GPU上進行的兩個基準(zhǔn)測試,所提出的動態(tài)并行SPH實現(xiàn)方案在大規(guī)模和動態(tài)演化的粒子系統(tǒng)中,相較于傳統(tǒng)的CPU-GPU SPH求解器,展示了約1.5倍至3.0倍的加速比。此外,SPH模擬與實驗數(shù)據(jù)之間的均方根誤差,在潰壩流中為0.03 - 0.12 m/s,在入水問題中為0.004 - 0.008 m/s。在相同的SPH算法下,采用CDP架構(gòu)可以比傳統(tǒng)的CUDA技術(shù)獲得更高的計算效率。目前沒有其他知名的SPH軟件使用此CDP概念,這應(yīng)該是CDP首次在基于GPU的SPH模擬中得到應(yīng)用。 引言: 為了在無網(wǎng)格的光滑粒子流體動力學(xué)(SPH)模擬中解析精細的表面特征并實現(xiàn)高保真精度,所需的粒子數(shù)量必須呈指數(shù)級增長。具有高空間分辨率的、物理精確的大規(guī)模實時流體動畫通常需要百萬級別的粒子系統(tǒng),這對計算資源提出了嚴(yán)格的限制,并需要高性能計算(HPC)技術(shù)。 自其首次應(yīng)用于計算流體動力學(xué)(CFD)以來,SPH建模技術(shù)已被廣泛應(yīng)用于各種工程領(lǐng)域。GPU計算技術(shù)的快速發(fā)展使GPU加速的SPH算法成為計算力學(xué)中的一個關(guān)鍵研究課題。當(dāng)Kipfer等人和Kolb等人分別提出了用于宏觀流體模擬的GPU兼容解耦粒子系統(tǒng)時,基礎(chǔ)性工作開始涌現(xiàn)。隨后,Kolb和Cuntz介紹了一種GPU原生實現(xiàn)的動態(tài)粒子耦合方案。接著,Harada等人提出了一種基于GPU的SPH鄰近粒子搜索算法,這標(biāo)志著首個GPU原生的SPH實現(xiàn)。在計算統(tǒng)一設(shè)備架構(gòu)框架提出之前,上述方法在實現(xiàn)GPU線程的高效空間調(diào)度和系統(tǒng)化利用內(nèi)存資源方面遇到了嚴(yán)重限制,因此其計算效率遠低于理論預(yù)期。英偉達在2007年創(chuàng)新性地推出了CUDA技術(shù),并于2008年將其應(yīng)用于粒子模擬,隨后在Green中得到了進一步完善。Hérault等人提出了最早的基于CUDA的SPH方法實現(xiàn),與此同時,Goswami等人提出了一種利用CUDA共享內(nèi)存優(yōu)化SPH的方法。Dominguez等人為SPH的CPU/GPU實現(xiàn)提出了若干改進的優(yōu)化策略,兩年后,Crespo等人提出了開創(chuàng)性的開源代碼Dual-SPHysics,用于在CUDA架構(gòu)上執(zhí)行SPH計算。Xia和Liang在淺水流動計算中提出了使用四叉樹而非格子鏈表的鄰近粒子搜索方法。然而,由于缺乏動態(tài)并行性,他們的算法未能充分利用GPU的并行化優(yōu)勢。另一個開源SPH求解器gpuSPHASE嘗試優(yōu)化共享內(nèi)存的使用而非全局內(nèi)存。然而,他們的系統(tǒng)僅加載了主粒子,因此性能提升并未完全實現(xiàn)。此外,Huang等人開發(fā)了一個更通用的GPGPU加速框架,主要用于SPH中的鄰近粒子搜索,并充分利用了GPU緩存(例如共享內(nèi)存和寄存器內(nèi)存)。近年來,基于GPU的SPH領(lǐng)域也取得了重大進展。例如,Yang等人將帶有自適應(yīng)粒子細化的GPU實現(xiàn)到SPH框架中,以研究多相流和流固耦合應(yīng)用。Zhang等人提出了一種基于GPU的大規(guī)模SPH模擬,采用自適應(yīng)空間排序技術(shù),用于汽車行業(yè)中常見的車輛涉水問題。此外,Cen等人在單GPU上開發(fā)了一種加速的單相表面張力SPH求解器,用于在3D實際尺度模擬數(shù)百萬個粒子。 總的來說,除了算法方面,多年來SPH中GPU實現(xiàn)的性能障礙仍然是內(nèi)存使用、負載平衡以及中央處理器(CPU)和GPU之間的高延遲通信。解決此瓶頸的最終方案可能是通過所謂的動態(tài)并行性來實現(xiàn)。CUDA動態(tài)并行(CDP)作為一種架構(gòu)創(chuàng)新,顯著增強了GPU的計算能力,并在近年涉及復(fù)雜任務(wù)和大規(guī)模問題的應(yīng)用中展示了巨大潛力。CDP原理由Jones等人首次提出,其核心在于允許各種GPU線程動態(tài)啟動子線程,從而實現(xiàn)更靈活和并行化的設(shè)計。最初的研究專注于CDP在聚類算法和非結(jié)構(gòu)化GPU應(yīng)用中的性能。隨后,Zhang等人將CDP引入圖優(yōu)化,而Neelima等人研究了其在遞歸排序方面的有效性。Plauth等人[24]評估了CDP在處理細粒度不規(guī)則工作負載時的性能,并表明CDP理論上可以提高計算性能。 另一方面,為了解決CDP在內(nèi)核啟動頻率和線程分支效率方面的性能問題,各種研究人員提出了一系列優(yōu)化方案。例如,El Hajj等人開發(fā)了內(nèi)核啟動聚合與提升(KLAP)技術(shù),顯著減少了內(nèi)核啟動開銷,從而提高了吞吐量。Tang等人通過控制內(nèi)核啟動進一步優(yōu)化了CDP的調(diào)度效率,Jarzabek和Czarnul則將CUDA統(tǒng)一內(nèi)存(UM)技術(shù)應(yīng)用于更復(fù)雜的遞歸算法。最近,Bozorgmehr等人通過動態(tài)并行化一個3D紅-黑超松弛(SOR)風(fēng)場求解器,實現(xiàn)了128倍的性能提升。Wu將CDP應(yīng)用于Barnes-Hut算法的大規(guī)模N體模擬,Kento等人提出了一種基于CUDA圖的自適應(yīng)內(nèi)核執(zhí)行方法,提高了動態(tài)應(yīng)用的資源利用率。與持續(xù)改進模擬和檢測任務(wù)計算效率的努力相一致,計算機視覺和深度學(xué)習(xí)領(lǐng)域的最新研究——例如Sarhadi等人[31]使用SWIN U-Net架構(gòu)進行優(yōu)化的混凝土裂縫檢測——凸顯了注意力機制和架構(gòu)級增強在實現(xiàn)高性能結(jié)果中的作用。 本研究探討了在SPH模擬中實現(xiàn)CDP2(CUDA動態(tài)并行2),以在GPU加速計算效率方面實現(xiàn)突破性進展。利用CDP2的架構(gòu)特性,本研究旨在為SPH粒子系統(tǒng)開發(fā)兩種創(chuàng)新范式。與為每個粒子計算分配單線程執(zhí)行的傳統(tǒng)CUDA實現(xiàn)相比,所提出的CDP2支持多線程協(xié)作。此外,當(dāng)前工作還提出了一種內(nèi)核內(nèi)流框架,用于協(xié)調(diào)動態(tài)生成的子內(nèi)核的數(shù)據(jù)同步和計算調(diào)度,從而在SPH并行計算中實現(xiàn)不依賴CPU的控制邏輯,進而消除CPU-GPU同步延遲。而且,CDP2架構(gòu)能夠通過需求驅(qū)動的線程塊配置來固有地優(yōu)化GPU工作負載平衡。這僅需要在塊內(nèi)進行局部資源分配,因此顯示出與迭代操作增強的兼容性。 全文結(jié)構(gòu)如下。第2節(jié)描述了SPH方法的基礎(chǔ)知識和傳統(tǒng)的CUDA GPU實現(xiàn)。第3節(jié)專門介紹CDP2與SPH求解器的創(chuàng)新并行化策略。第4節(jié)介紹了兩個選定的基準(zhǔn)案例,用于評估計算加速效果。最后,第5節(jié)總結(jié)了結(jié)果并提出了未來的研究發(fā)展方向。 圖表:
圖1 CUDA程序框架示意圖

圖2 GPU調(diào)度機制示意圖

圖3 NVIDIA GeForce RTX 4080 SUPER 內(nèi)存配置模型

圖4 傳統(tǒng)CUDA實現(xiàn)的GPU-SPH中的線程利用率

圖5 CUDA動態(tài)并行中的父子內(nèi)核啟動嵌套關(guān)系

圖6 CDP2-SPH子內(nèi)核計算中的塊模式與網(wǎng)格模式

圖7 CDP2-SPH框架中的鄰近粒子搜索

圖8 二維潰壩流配置的數(shù)值設(shè)置

圖9 CDP2-SPH計算得到的多個時刻潰壩流粒子分布圖

圖10 CDP2與CUDA在二維潰壩流中的計算時間對比

圖11 SPH模擬與實驗數(shù)據(jù)中隨時間變化的前緣位置對比

圖12 三維潰壩流配置的數(shù)值設(shè)置

圖13 CDP2與CUDA在三維潰壩流中的計算時間對比

圖14 實驗中使用的楔形模型幾何形狀

圖15 CDP2-SPH計算得到的楔體入水過程中的速度場與壓力場

圖16 CDP2與CUDA在二維楔體入水問題中的計算時間對比

圖17 SPH模擬與實驗數(shù)據(jù)中隨時間變化的速度剖面對比

圖18 CDP2與CUDA在三維楔體入水問題中的計算時間對比
結(jié)論: 本研究提出了一種CDP2加速的GPU-SPH計算框架,通過兩種面向SPH的編程技術(shù)——塊級和網(wǎng)格級配置,提升了傳統(tǒng)CUDA的任務(wù)并行性。塊級優(yōu)化架構(gòu)通過利用CUDA流實現(xiàn)子內(nèi)核間的并行化來改進SPH模型,而網(wǎng)格級優(yōu)化則為粒子提供多線程塊平臺,并在需要時提供額外的線程。我們僅在塊模式下通過利用流優(yōu)化各種子內(nèi)核之間的內(nèi)核函數(shù)并行化來增強SPH代碼。網(wǎng)格模式僅作為概念框架提出,因為它需要不同的子內(nèi)核來計算粒子。對于涉及大量粒子的場景,不推薦使用此模式,其潛力應(yīng)進一步探索。需要指出的是,在相同的SPH算法下,采用CDP架構(gòu)可以比傳統(tǒng)CUDA技術(shù)獲得更高的計算效率。目前沒有其他知名的SPH軟件使用此CDP概念,這應(yīng)該是CDP首次在基于GPU的SPH模擬中得到應(yīng)用。 通過在NVIDIA GeForce RTX 4080 SUPER GPU上進行的兩個基準(zhǔn)測試,提出的CDP SPH實現(xiàn)相較于CUDA的加速比為:在2D潰壩流中達到1.76倍-2.88倍,在3D潰壩流中達到1.78倍-2.32倍;而在楔體入水問題中,2D和3D的加速比分別為1.42倍-2.58倍和1.60倍-1.81倍。此外,SPH模擬與實驗數(shù)據(jù)之間的均方根誤差,在2D配置中,潰壩流為0.03-0.12 m/s,楔體入水為0.004-0.008 m/s。值得注意的是,CDP的加速優(yōu)勢在3D楔體入水場景中明顯下降。這并非CDP基本架構(gòu)的缺陷,而是與剛體跟蹤方案中未解決的多線程原子求和沖突有關(guān),該問題在CDP2和CUDA實現(xiàn)中都會導(dǎo)致不可避免的延遲管道。 為了在3D SPH流固耦合中充分發(fā)揮CDP的潛力,應(yīng)針對雙向流固耦合過程開發(fā)進一步優(yōu)化的GPU閉環(huán)架構(gòu)。CDP2相對于CUDA的加速比隨著粒子數(shù)量的增加而下降。這一趨勢源于CDP架構(gòu)的基本機制:CDP的加速原理之一是通過并行化鄰近粒子的串行加權(quán)計算,更有效地利用GPU硬件資源,從而增強基于CUDA的SPH計算的并行性。這意味著在相同粒子數(shù)和相同時間范圍內(nèi),CDP可以利用更多GPU資源并實現(xiàn)高負載操作。然而,隨著粒子數(shù)量的增加,GPU資源變得飽和,因此CDP的優(yōu)勢相應(yīng)減弱。但應(yīng)注意,CDP也具有負載平衡功能,因此在這方面仍比CUDA更具優(yōu)勢。另一方面,對于大規(guī)模粒子計算,與傳統(tǒng)CUDA架構(gòu)相比,CDP在更高粒子數(shù)下仍能保持較高的加速比。也就是說,盡管加速優(yōu)勢隨著粒子數(shù)量的增加而下降,但這實際上是指所有CDP計算本身。與CUDA計算相比,CDP在整個數(shù)據(jù)分辨率范圍內(nèi)始終更高效。 然而,也應(yīng)認(rèn)識到CDP2方案也引入了額外的性能開銷,例如與控制邏輯、數(shù)據(jù)同步和資源分配相關(guān)的開銷。此外,盡管本研究側(cè)重于CDP2與SPH的耦合,但相關(guān)方法和技術(shù)也可以擴展到高效并行處理占主導(dǎo)地位的其他科學(xué)計算領(lǐng)域。 參考文獻:
[1]Xue L, Gu S, Shao S. Enhancement of GPU-Accelerated Smoothed Particle Hydrodynamics (SPH) Method with Dynamic Parallelism[J]. Results in Engineering, 2025: 106799.
版權(quán)聲明:
本文僅用于學(xué)術(shù)交流與分享,版權(quán)屬于原作者/出版商。文字翻譯部分僅代表小編個人理解,如果錯漏或侵權(quán),請聯(lián)系小編修改或刪除。
Hot News
成功提示
錯誤提示
警告提示
評論 (0)