Skip to main content
QUICK REVIEW

[論文レビュー] Efficient LBM on GPUs for dense moving objects using immersed boundary condition

Joël Bény, Jonas Lätt|arXiv (Cornell University)|Mar 27, 2019
Lattice Boltzmann Simulation Studies被引用数 5
ひとこと要約

本稿では、複数の回転するプロペラなどの密度が高く移動する剛体物体をシミュレートするために、浸漬境界条件(IBM)を用いたGPUアクセラレートLattice Boltzmann Method(LBM)の実装を提示する。流体計算と表面計算を別々のCUDAカーネルに分離し、メモリアクセスパターンを最適化することで、70,740個のラグランジュ点を有する状況ですら、CPU実行比で最大19.7倍の高速化を達成し、高密度で複雑な流体-物体相互作用においても安定した性能を示した。

ABSTRACT

There exists an increasing interest for using immersed boundary methods (IBMs) (Peskin 2000) to model moving objects in computational fluid dynamics. Indeed, this approach is particularly efficient, because the fluid mesh does not require to be body-fitted or to adjust dynamically to the motion of the body. Frequently, IBMs are implemented in combination with the lattice Boltzmann methods (LBM) (Kr\\"uger 2016). They fit elegantly into the framework of this method, and yield impressive parallel performances. It has also become quite common to accelerate LBM simulations with the use of Graphics Processing Units (GPUs) (T\\"olke 2010), as the underlying algorithm adjusts naturally to the architecture of such platforms. It is not uncommon that speedups of an order of magnitude, or more, at equal financial cost or energy consumption are observed, as compared to classical CPUs. IBM algorithms are however more difficult to adapt to GPUs, because their complex memory access pattern conflicts with a GPU's strategy of broadcasting data to a large number of GPU cores in single memory accesses. In the existing literature, GPU implementations of LBM-IBM codes are therefore restricted to situations in which the immersed surfaces are very small compared to the total number of fluid cells (Valero-Lara 2014), as is often the case in exterior flow simulations around an obstacle. This assumption is however not valid in many other cases of interest. We propose a new method for the implementation of a LBM-IBM on GPUs in the CUDA language, which allows to handle a substantially larger immersed surfaces with acceptable performance than previous implementations.

研究の動機と目的

  • GPUアクセラレーションを用いて、流体内の高密度で移動する剛体体を効率的にシミュレートする課題に対処すること。
  • 不規則なメモリアクセスと非局所的演算のため、従来のIBM実装がGPUで性能に限界を受ける問題を克服すること。
  • 血液球のシミュレーションやマルチプロペラ系のように、浸漬表面が流体領域の大部分を占める状況でも、GPUの高い性能を維持できること。
  • ラグランジュ点数の増加に伴い良好にスケーリングするが、数値的精度を保持するCUDAベースのLBM-IBMフレームワークを開発すること。
  • CPUベースの手法が不規則なメモリアクセスのため性能が優れる可能性がある状況でも、GPUアクセラレーションが依然として顕著に効果的であることを示すこと。

提案手法

  • 静的なEulerグリッド上での流体動力学に、BGK衝突を用いたD3Q19格子ボルツマンモデルを適用する。
  • 浸漬剛体体は、直接力適用型IBMを用いたラグランジュ点で表現され、流体点と固体点の間でカーネルベースの補間により力が適用される。
  • アルゴリズムは2つのCUDAカーネルに分割される:1つは流体から表面へのデータ転送(速度補間)、もう1つは表面から流体への力適用で、より良いメモリコalescingを実現する。
  • 最適化されたメモリ走査を伴うカーネルベースの力拡散と補間を採用し、非コalescedアクセスを低減する。
  • カーネル法とボックス法の2つの戦略を力拡散に評価したが、希なから中程度の物体密度ではカーネル法が優れた性能を示した。
  • 性能は1秒あたりの格子セル更新回数(Mlups)で測定され、MPIを用いたCPU並列化Palabos実装との比較が行われた。

実験結果

リサーチクエスチョン

  • RQ1浸漬物体が流体領域の大部分を占める場合でも、GPUアクセラレートLBM-IBM実装が高パフォーマンスを維持できるか?
  • RQ2ラグランジュ点数の増加に伴い、カーネルベースとボックスベースの力拡散戦略の性能スケーリングはどのように変化するか?
  • RQ3IBMの不規則なメモリアクセスパターンが、高密度で移動する物体のシミュレーションにおいてGPUアクセラレーションをどの程度制限するか?
  • RQ4高密度で複雑な流体-構造相互作用問題において、GPU実装がCPU実装に対してどの程度の高速化を達成できるか?
  • RQ5提案されたCUDAベースLBM-IBMフレームワークは、複数の回転するプロペラや赤血球のような現実的で高密度な構成を処理できるか?

主な発見

  • 1つの回転するプロペラの場合、GPU実装はピークで893 Mlupsを達成したのに対し、CPUでは45.3 Mlupsにとどまり、19.7倍の高速化を達成した。
  • 6つのプロペラでは、GPUが650 Mlups、CPUが21.7 Mlupsに達し、高密度状況下でも15.8倍の高速化を示した。
  • 18つのプロペラ(70,740個のラグランジュ点)では、GPUがCPU比で依然15.8倍の高速化を維持し、高密度でも安定した性能を示した。
  • 1~6つのプロペラの全ケースにおいて、カーネルベースの力拡散戦略がボックス戦略を上回り、物体数の増加に伴い性能差が拡大した。
  • ラグランジュ点数の増加に伴い、メモリ帯域幅の制限と非コalescedアクセスの影響で性能が低下したが、GPUはCPU比で1桁の高速化を達成した。
  • 赤血球を含む複雑で高密度のシミュレーションに対しても、本実装は有効であり、従来のGPU-IBM手法がメモリアクセスボトルネックで失敗する状況でも運用可能である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。