Skip to main content
QUICK REVIEW

[논문 리뷰] Improving Locality of Unstructured Mesh Algorithms on GPUs

András Attila Sulyok, Gábor Dániel Balogh|arXiv (Cornell University)|2018. 02. 11.
Computational Geometry and Mesh Generation인용 수 1
한 줄 요약

이 논문은 공유 메모리와 이중 색칠 기법을 활용하여 GPU에서 비정형 메쉬 알고리즘의 데이터 국소성을 향상시키기 위해 라이브러리 기반 최적화 기법을 제안한다. 알고리즘 변경 없이 커널 연산과 데이터 액세스를 투명하게 재정렬함으로써, Airfoil 및 miniAero와 같은 응용 프로그램의 과학적 커널에서 펌버스 및 볼타 GPU에서 1.2×에서 2.5×의 성능 향상을 달성한다.

ABSTRACT

To most efficiently utilize modern parallel architectures, the memory access patterns of algorithms must make heavy use of the cache architecture: successively accessed data must be close in memory (spatial locality) and one piece of data must be reused as many times as possible (temporal locality). In this work we analyse the performance of unstructured mesh algorithms on GPUs, specifically the use of the shared memory and two-layered colouring to cache the data. We also look at different block layouts to analyse the trade-off between data reuse and the amount of synchronisation. We developed a standalone library that can transparently reorder the operations done and data accessed by a kernel, without modifications to the algorithm by the user. Using this, we performed measurements on relevant scientific kernels from different applications, such as Airfoil, Volna, Bookleaf, Lulesh and miniAero; using Nvidia Pascal and Volta GPUs. We observed significant speedups ($1.2 ext{--}2.5 imes$).

연구 동기 및 목표

  • 현대 GPU에서 실행되는 비정형 메쉬 알고리즘의 데이터 국소성을 향상시키기 위해.
  • 공유 메모리와 색칠 전략을 통해 공간적 및 시간적 국소성을 향상시켜 글로벌 메모리 액세스를 줄이기 위해.
  • 사용자 커널에 대한 변경 없이도 운영 및 데이터 액세스를 재정렬하는 투명한 라이브러리를 개발하기 위해.
  • 다양한 블록 레이아웃에서 데이터 재사용과 동기화 오버헤드 간의 성능 트레이드오프를 평가하기 위해.
  • 다양한 응용 프로그램에서 유래한 실제 과학적 커널에서 최적화의 효과를 측정하기 위해.

제안 방법

  • 이 방법은 데이터 액세스를 그룹화하고 공유 메모리에서의 재사용을 향상시키기 위해 이중 색칠 기법을 사용한다.
  • 독립형 라이브러리를 통해 커널 연산과 데이터 액세스 패턴을 자동으로 재정렬하여 투명하게 구현한다.
  • GPU의 공유 메모리를 활용하여 자주 액세스되는 데이터를 캐시함으로써 글로벌 메모리 트래픽을 감소시킨다.
  • 다양한 블록 레이아웃을 평가하여 데이터 재사용과 동기화 비용 간의 균형을 도모한다.
  • Airfoil, Volna, Bookleaf, Lulesh 및 miniAero와 같은 과학 응용 프로그램의 커널에 최적화를 적용한다.
  • 대표적인 과학 워크로드를 사용하여 Nvidia 펌버스 및 볼타 GPU에서 성능을 측정한다.

실험 결과

연구 질문

  • RQ1이중 색칠 기법은 GPU에서 비정형 메쉬 커널의 데이터 국소성에 어떻게 기여하는가?
  • RQ2비정형 메쉬 알고리즘에서 공유 메모리를 사용해 데이터를 캐시함으로써 성능에 어떤 영향을 미치는가?
  • RQ3다양한 블록 레이아웃은 데이터 재사용과 동기화 오버헤드 간의 트레이드오프에 어떻게 영향을 미치는가?
  • RQ4원본 커널 코드를 수정하지 않고도 투명한 라이브러리가 얼마나 효과적으로 메모리 액세스 패턴을 최적화할 수 있는가?
  • RQ5이러한 국소성 최적화 기법을 사용하여 실제 과학적 커널에서 어떤 성능 향상을 달성할 수 있는가?

주요 결과

  • 제안된 최적화 기법은 Nvidia 펌버스 및 볼타 GPU에서 1.2×에서 2.5×의 성능 향상을 달성했다.
  • 공유 메모리와 이중 색칠 기법의 사용은 데이터 재사용을 크게 향상시키고 글로벌 메모리 액세스를 감소시켰다.
  • 라이브러리는 원래 알고리즘에 대한 변경 없이도 데이터 액세스와 커널 연산을 성공적으로 재구성했다.
  • 다양한 블록 레이아웃 분석을 통해 동기화 비용과 데이터 재사용 효율성 간의 명확한 트레이드오프를 확인할 수 있었다.
  • Airfoil, Volna, Bookleaf, Lulesh 및 miniAero를 포함한 다양한 과학적 커널에서 일관된 성능 향상이 나타났다.
  • 결과적으로, 비정형 메쉬 워크로드에서 비정규적인 메모리 액세스 패턴이 존재하더라도 국소성 최적화가 효과적임을 확인했다.

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

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

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

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