[논문 리뷰] High-speed turbulent flows towards the exascale: STREAmS-2 porting and performance
이 논문은 초고성능 컴퓨팅(HPC) 시스템을 위한 이식 가능하고 고성능의 압축성 흐름 해소기인 STREAmS-2를 제시한다. 이는 기존 CUDA Fortran 백엔드 외에 AMD GPU를 위한 새로운 HIPFort 백엔드를 추가하여 확장하였다. 512개 노드에서 95% 이상의 약한 스케일링 성능을 달성하여 초음속 및 고초음속 난류 흐름의 트리리언 포인트 시뮬레이션을 가능하게 했다.
Exascale High Performance Computing (HPC) represents a tremendous opportunity to push the boundaries of Computational Fluid Dynamics (CFD), but despite the consolidated trend towards the use of Graphics Processing Units (GPUs), programmability is still an issue. STREAmS-2 (Bernardini et al. Comput. Phys. Commun. 285 (2023) 108644) is a compressible solver for canonical wall-bounded turbulent flows capable of harvesting the potential of NVIDIA GPUs. Here we extend the already available CUDA Fortran backend with a novel HIPFort backend targeting AMD GPU architectures. The main implementation strategies are discussed along with a novel Python tool that can generate the HIPFort and CPU code versions allowing developers to focus their attention only on the CUDA Fortran backend. Single GPU performance is analysed focusing on NVIDIA A100 and AMD MI250x cards which are currently at the core of several HPC clusters. The gap between peak GPU performance and STREAmS-2 performance is found to be generally smaller for NVIDIA cards. Roofline analysis allows tracing this behavior to unexpectedly different computational intensities of the same kernel using the two cards. Parallel performance is measured on the two largest EuroHPC pre-exascale systems, LUMI (AMD GPUs) and Leonardo (NVIDIA GPUs). Strong scalability reveals more than 80% efficiency up to 16 nodes for Leonardo and up to 32 for LUMI. Weak scalability shows an impressive efficiency of over 95% up to the maximum number of nodes tested (256 for LUMI and 512 for Leonardo). This analysis shows that STREAmS-2 is the perfect candidate to fully exploit the power of current pre-exascale HPC systems in Europe, allowing users to simulate flows with over a trillion mesh points, thus reducing the gap between the Reynolds numbers achievable in high-fidelity simulations and those of real engineering applications.
연구 동기 및 목표
- 다양한 HPC 아키텍처에서 고정밀도 CFD 시뮬레이션의 GPU 이식성 문제를 해결한다.
- 코드의 가독성과 유지보수성을 유지하면서도 NVIDIA 및 AMD GPU 아키텍처를 모두 지원하도록 STREAmS-2 해소기를 확장한다.
- 프리-엑사스케일 시스템에서의 탄성벽 기반 압축성 난류 흐름에 대한 대규모 직접 수치 시뮬레이션(DNS)을 가능하게 한다.
- 루프라인 분석과 통신 회피 패tern을 활용하여 다양한 GPU 아키텍처에서의 성능을 최적화한다.
- 주요 유럽 초초계산 프리-엑사스케일 시스템인 LUMI와 Leonardo에서 거의 이상적인 강한 및 약한 스케일링 성능을 달성한다.
제안 방법
- AMD GPU 아키텍처를 위한 새로운 HIPFort 백엔드를 개발하여 기존 CUDA Fortran 백엔드를 보완하였다.
- 자동으로 CUDA Fortran 커널을 HIPFort 및 CPU 코드로 변환할 수 있는 파이썬 기반의 코드 생성 도구를 설계하여 일관성 확보 및 유지보수 부담 감소를 달성하였다.
- 객체지향적이고 다중 백엔드 소프트웨어 아키텍처를 도입하여 알고리즘 로직과 하드웨어에 종속적인 구현을 분리하였다.
- NVIDIA A100과 AMD MI250x GPU에서 단일 GPU 성능 분석을 수행하여 격자 크기, 루프 병렬화, 스레드 마스킹, 분산성 등을 평가하였다.
- 루프라인 성능 모델링을 적용하여 GPU 아키텍처 간의 계산 밀도 차이를 규명하였다.
- 동기 및 비동기 통신 패턴을 모두 사용하여 LUMI(AMD)와 Leonardo(NVIDIA)에서 강한 및 약한 스케일링을 평가하였다.
실험 결과
연구 질문
- RQ1단일 노드 환경에서 STREAmS-2의 성능은 NVIDIA A100과 AMD MI250x GPU 간에 어떻게 비교되는가?
- RQ2다양한 GPU 아키텍처에서 피크 GPU 대역폭과 실제 STREAmS-2 성능 간의 격차는 무엇에 기인하는가?
- RQ3비동기 통신은 대규모 HPC 시스템에서 강한 및 약한 스케일링 성능 향상에 얼마나 기여하는가?
- RQ4새로운 HIPFort 백엔드는 LUMI와 같은 AMD 기반 시스템에서 CUDA Fortran과 유사한 성능을 달성할 수 있는가?
- RQ5현재의 프리-엑사스케일 시스템에서 STREAmS-2가 효율적으로 시뮬레이션할 수 있는 최대 문제 크기(격자 점 수 기준)는 얼마인가?
주요 결과
- 피크 GPU 대역폭과 실제 STREAmS-2 성능 간 격차는 이론적 피크 성능가 유사한데도 불구하고, NVIDIA A100에서는 AMD MI250x보다 작다.
- 루프라인 분석 결과, 동일한 커널이 NVIDIA와 AMD GPU에서 계산 밀도가 상당히 다름을 확인하여 성능 격차를 설명할 수 있었다.
- Leonardo(NVIDIA)에서는 최대 16개 노드까지, LUMI(AMD)에서는 최대 32개 노드까지 강한 스케일링 효율이 80% 이상을 기록하여 뛰어난 강한 스케일링 성능을 입증하였다.
- LUMI에서는 최대 256개 노드까지, Leonardo에서는 최대 512개 노드까지 약한 스케일링 효율이 95% 이상을 기록하여 거의 이상적인 약한 스케일링 성능을 확보하였다.
- 비동기 통신은 동기 모드 대비 성능 손실을 1~2.5% 감소시키며, 특히 GPU당 격자 크기가 작은 경우 더 큰 이점이 있었다.
- 시스템은 1조 개 이상의 메쉬 포인트를 효율적으로 시뮬레이션할 수 있으며, 이는 시뮬레이션된 레이놀즈 수와 실제 세계의 레이놀즈 수 간 격차를 크게 줄였다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.