Skip to main content
QUICK REVIEW

[논문 리뷰] An Evaluative Comparison of Performance Portability across GPU Programming Models

Joshua Hoke Davis|arXiv (Cornell University)|2024. 02. 14.
Distributed and Parallel Computing Systems인용 수 1
한 줄 요약

이 논문은 NVIDIA 및 AMD GPU에서 다섯 개인 과학적 프록시 애플리케이션을 사용하여 CUDA, HIP, Kokkos, RAJA, OpenMP, OpenACC 및 SYCL의 일곱 가지 GPU 프로그래밍 모델 간의 성능 이식성(Performance Portability)을 평가한다. SYCL이 다양한 아키텍처 간에 가장 일관된 성능을 보였으며, OpenACC와 OpenMP는 특히 감소 연산에서 AMD 시스템에서 뚜렷한 성능 격차를 보였다. 또한 포트폴리오 향상을 위한 핵심 최적화 전략을 규명하였다.

ABSTRACT

Portability is critical to ensuring high productivity in developing and maintaining scientific software as the diversity in on-node hardware architectures increases. While several programming models provide portability for diverse GPU systems, they don't make any guarantees about performance portability. In this work, we explore several programming models -- CUDA, HIP, Kokkos, RAJA, OpenMP, OpenACC, and SYCL, to assess the consistency of their performance across NVIDIA and AMD GPUs. We use five proxy applications from different scientific domains, create implementations where missing, and use them to present a comprehensive comparative evaluation of the performance portability of these programming models. We provide a Spack scripting-based methodology to ensure reproducibility of experiments conducted in this work. Finally, we analyze the reasons for why some programming models underperform in certain scenarios and in some cases, present performance optimizations to the proxy applications.

연구 동기 및 목표

  • 다양한 GPU 아키텍처 간에 일곱 가지 GPU 프로그래밍 모델의 성능 이식성을 평가하기 위해.
  • 이종 시스템에서 이식 가능한 구현의 성능 저하 요인과 일관성 없는 성능을 규명하기 위해.
  • 향후 성능 이식성 연구를 위한 재현 가능하고 Spack 기반의 방법론을 제공하기 위해.
  • 개발자 및 프레임워크 설계자들이 다양한 아키텍처 간 성능을 향상시키기 위한 실질적인 통찰을 제공하기 위해.

제안 방법

  • 모든 일곱 가지 프로그래밍 모델에 걸쳐 도메인 대표 프록시 애플리케이션 다섯 개를 개발하고 구현하였다.
  • 재현 가능성을 보장하고 시스템 간 체계적인 배포를 위해 Spack 기반 스크립팅 프레임워크를 사용하였다.
  • 리더십 수준의 HPC 시스템에서 NVIDIA 및 AMD GPU를 사용하여 광범위한 벤치마킹을 수행하였다.
  • 성능 저하 요인을 분리하고 개선하기 위해 대상 커널 최적화를 적용하였다.
  • 성능 이식성을 정량화하기 위해 응용 프로그램 효율성의 조화평균(PPE)을 메트릭으로 사용하였다.
  • 레지스터 오버행 및 명령 수준의 비효율성과 같은 저수준 성능 문제를 규명하기 위해 프로파일링 도구를 활용하였다.

실험 결과

연구 질문

  • RQ1실제 과학적 워크로드에서 다양한 GPU 프로그래밍 모델은 NVIDIA 및 AMD GPU 아키텍처 간에 어떻게 성능을 보이며?
  • RQ2모델과 하드웨어 플랫폼 간 성능 불일치의 주요 원인은 무엇인가?
  • RQ3어느 프로그래밍 모델이 가장 강력한 성능 이식성을 보이며, 그 이유는 무엇인가?
  • RQ4어떤 최적화가 이식 가능한 코드의 성능 이식성 향상에 크게 기여하는가?
  • RQ5향후 성능 이식성 연구를 위한 재현 가능하고 확장 가능한 실험 프레임워크는 어떻게 구축할 수 있는가?

주요 결과

  • SYCL은 모든 애플리케이션과 시스템에서 조화평균 효율성 0.99를 기록하여 가장 높은 성능 이식성을 보였다.
  • OpenACC와 OpenMP는 AMD GPU에서 뚜렷한 성능 저하를 보였으며, 특히 감소 연산에서 조화평균 효율성이 0.6 이하였다.
  • RAJA와 OpenMP는 AMD 시스템에서 낮은 감소 성능을 보였는데, 이는 병렬 감소 처리를 위한 컴파일러나 런타임의 한계를 시사한다.
  • miniBUDE 커널은 모든 모델과 시스템에서 일관되게 낮은 성능을 보였는데, 이는 높은 레지스터 압력과 계산 중심 특성 때문이었다.
  • 감소 처리 향상 및 레지스터 압력 감소 등의 최적화는 특히 RAJA와 OpenACC에서 성능 향상에 크게 기여하였다.
  • 프로파일링 도구에서 라인 단위의 스탤 할당 기능이 부족한 것으로 규명되었으며, 이는 이식 가능한 코드 최적화의 효과를 제한하는 주요 요인였다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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