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)|2019. 03. 27.
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 가속을 통해 유동 내 고밀도 이동 강체를 효율적으로 시뮬레이션하는 데 도전한다.
  • 불규칙한 메모리 액세스와 국소적이지 않은 연산으로 인해 기존 GPU 기반 IBM 실행에서 발생하는 성능 저하 문제를 해결한다.
  • 혈액 세포 시뮬레이션 또는 다중 프로펠러 시스템과 같이 고밀도 유체 영역에서 표면 점이 큰 비율을 차지하는 경우에도 고성능 GPU 성능을 유지한다.
  • 라그랑주 점 수 증가에 따라 잘 스케일링되면서도 수치 정확도를 유지하는 CUDA 기반 LBM-IBM 프레임워크를 개발한다.
  • CPU 기반 방법이 불규칙한 메모리 액세스로 인해 성능 우위를 점할 것으로 예상되는 경우에도 GPU 가속이 여전히 매우 효과적임을 입증한다.

제안 방법

  • 정적 올레아리안 그리드에서 유체 역학을 위해 D3Q19 격자 보간법과 BGK 충돌 모델을 사용한다.
  • 침입 강체는 직접 힘 적용 방식의 라그랑주 점으로 표현되며, 유체와 고체 점 사이의 커널 기반 보간을 통해 힘이 적용된다.
  • 알고리즘은 두 개의 CUDA 커널로 분리된다: 하나는 유체에서 표면으로의 데이터 전송(속도 보간), 다른 하나는 표면에서 유체로의 힘 적용으로, 더 나은 메모리 연속성 확보가 가능하다.
  • 최적화된 메모리 순회를 통해 비연속 액세스를 줄이고, 커널 기반의 힘 확산 및 보간을 사용한다.
  • 힘 확산에 대해 커널 및 박스 전략을 평가하였으며, 희박하거나 중간 정도의 물체 밀도에서는 커널 전략이 우수한 성능을 보였다.
  • 성능는 매초 백만 개의 격자 셀 업데이트 수(Mlups)로 측정되었으며, MPI를 사용한 CPU 병렬 Palabos 구현과 비교되었다.

실험 결과

연구 질문

  • RQ1침입 물체가 유체 영역의 큰 비율을 차지할 경우, GPU 가속 LBM-IBM 구현이 높은 성능을 유지할 수 있는가?
  • RQ2라그랑주 점 수 증가에 따라 커널 기반과 박스 기반 힘 확산 전략의 성능가 어떻게 스케일링되는가?
  • RQ3IBM의 불규칙한 메모리 액세스 패턴이 고밀도 이동 물체 시뮬레이션에서 GPU 가속을 얼마나 제한하는가?
  • RQ4복잡하고 고밀도로 포화된 유체-구조 상호작용 문제에서 GPU 구현이 CPU 대비 어떤 정도의 성능 향상을 달성할 수 있는가?
  • RQ5제안된 CUDA 기반 LBM-IBM 프레임워크는 다중 회전 프로펠러나 적혈구와 같은 현실적인 고밀도 구성 요소를 처리할 수 있는가?

주요 결과

  • 단일 회전 프로펠러의 경우 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개의 프로펠러를 대상으로 한 모든 경우에서 커널 기반 힘 확산 전략이 박스 전략보다 뛰어난 성능을 보였으며, 물체 수가 증가할수록 성능 격차가 커졌다.
  • 라그랑주 점 수 증가로 인해 메모리 대역폭 제약과 비연속 액세스로 인해 성능이 저하되었지만, GPU는 여전히 CPU 대비 10배 이상의 성능 향상을 제공했다.
  • 기존 GPU-IBM 방법이 메모리 액세스 병목 현상으로 실패할 수 있는 복잡하고 고밀도의 시뮬레이션—예를 들어 적혈구 시뮬레이션—에도 이 구현은 유의미하게 유지될 수 있다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.