[논문 리뷰] An Efficient Multiway Mergesort for GPU Architectures
이 논문은 GPU를 위한 새로운 다중 방향 병합 정렬 알고리즘인 GPU 다중 방향 병합 정렬(MMS)을 제안한다. MMS는 새로운 병렬 분할 기법을 통해 공유 메모리의 베이크 커플링을 제거하고, 전역 메모리 액세스 횟수를 점근적으로 최적화한다. MMS는 Thrust 및 MGPU와 같은 최신 라이브러리보다 뛰어나며, 특히 커플링에 취약한 입력에 대해서는 각각 최대 44.3% 및 37.6%의 성능 향상을 기록한다. 이는 베이크 커플링이 없는 설계와 입출력 효율성 덕분이다.
Sorting is a primitive operation that is a building block for countless algorithms. As such, it is important to design sorting algorithms that approach peak performance on a range of hardware architectures. Graphics Processing Units (GPUs) are particularly attractive architectures as they provides massive parallelism and computing power. However, the intricacies of their compute and memory hierarchies make designing GPU-efficient algorithms challenging. In this work we present GPU Multiway Mergesort (MMS), a new GPU-efficient multiway mergesort algorithm. MMS employs a new partitioning technique that exposes the parallelism needed by modern GPU architectures. To the best of our knowledge, MMS is the first sorting algorithm for the GPU that is asymptotically optimal in terms of global memory accesses and that is completely free of shared memory bank conflicts. We realize an initial implementation of MMS, evaluate its performance on three modern GPU architectures, and compare it to competitive implementations available in state-of-the-art GPU libraries. Despite these implementations being highly optimized, MMS compares favorably, achieving performance improvements for most random inputs. Furthermore, unlike MMS, state-of-the-art algorithms are susceptible to bank conflicts. We find that for certain inputs that cause these algorithms to incur large numbers of bank conflicts, MMS can achieve up to a 37.6% speedup over its fastest competitor. Overall, even though its current implementation is not fully optimized, due to its efficient use of the memory hierarchy, MMS outperforms the fastest comparison-based sorting implementations available to date.
연구 동기 및 목표
- 전역 메모리 액세스 횟수를 최소화하고 공유 메모리의 베이크 커플링을 제거하는 GPU 정렬 알고리즘을 설계하는 것.
- 데이터 의존적 베이크 커플링으로 인한 기존 GPU 정렬 라이브러리의 성능 저하 문제를 해결하는 것.
- GPU 아키텍처를 대상으로 병렬 외부 메모리(PEM) 모델을 기반으로 한 이론적으로 타당하고 입출력 효율적인 정렬 알고리즘을 개발하는 것.
- 현대 GPU에서 표준 이원 병합 정렬보다 다중 방향 병합 정렬 접근 방식이 실질적으로 더 뛰어난 성능을 낼 수 있음을 입증하는 것.
- 초기 MMS 구현에서 발생하는 성능 저하 요인, 특히 병합 단계에서의 스레드 간 통신을 식별하고 최적화하는 것.
제안 방법
- 알고리즘은 병렬 분할 기법을 통해 입력 데이터를 여러 스레드에 분배하여 GPU 실행에 적합한 고수준 병렬성을 노출한다.
- 다중 정렬된 부분 배열을 효율적으로 병합하기 위해 minBlockHeap 기반의 다중 방향 병합 전략을 사용한다.
- 모든 전역 메모리 액세스가 코alescing되며, 액세스 횟수는 점근적으로 최적화되어 PEM 모델의 하한선과 일치한다.
- 공유 메모리의 베이크 커플링을 피하기 위해 데이터 액세스 패턴을 신중히 설계하여 동시에 동일한 베이크에 액세스하지 않도록 한다.
- 작은 부분 배열(각각 32개 원소)을 병합하기 위해 워프 내부에서 비토닉 병합 네트워크를 사용하지만, 이 구성 요소는 성능 저하 요인으로 지목된다.
- 알고리즘은 세 가지 현대적인 GPU 아키텍처에서 구현 및 평가되었으며, Thrust 및 MGPU와 같은 고도로 최적화된 라이브러리와 비교되었다.
실험 결과
연구 질문
- RQ1GPU용 다중 방향 병합 정렬 알고리즘을 설계할 수 있는가? 이 알고리즘은 입출력 최적화되어 있고 공유 메모리의 베이크 커플링이 없어야 한다.
- RQ2입출력 최적화되고 베이크 커플링이 없는 정렬 알고리즘의 성능은 Thrust 및 MGPU와 같은 고도로 최적화된 이원 병합 정렬 라이브러리와 비교해 어떻게 되는가?
- RQ3기존 GPU 정렬 라이브러리에서 발생하는 베이크 커플링이 비균형 입력 분포에서 성능에 얼마나 심각하게 영향을 미치는가?
- RQ4제안된 MMS 구현에서 주요 성능 저하 요인은 무엇이며, 이를 어떻게 해결할 수 있는가?
- RQ5MMS의 이론적 입출력 효율성은 다양한 GPU 아키텍처와 입력 유형에서 실질적인 성능 향상으로 이어질 수 있는가?
주요 결과
- MMS는 점근적으로 최적의 전역 메모리 액세스 횟수를 달성하여 병렬 외부 메모리(PEM) 모델의 이론적 하한선과 일치한다.
- 알고리즘은 공유 메모리의 베이크 커플링이 전혀 없어, 입력 순서 패턴에 영향을 받지 않는 성능을 보인다.
- 랜덤 입력에 대해서는 MMS가 Thrust 및 MGPU와 경쟁 가능한 성능을 보이며, 유사하거나 略적으로 높은 처리량을 달성한다.
- 커플링이 많은 입력에 대해서는 MMS가 Gibson GPU 플랫폼에서 Thrust 및 MGPU 대비 각각 최대 44.3% 및 37.6%의 성능 향상을 기록한다.
- 분할 단계는 총 실행 시간의 2% 미만을 차지하여, 주요 성능 저하 요인은 병합 단계에 있으며 특히 minBlockHeap 구조 내 스레드 간 통신에서 기인한다.
- 병합 단계의 성능 저하 요인은 32개 스레드로 구성된 워프 간 높은 통신 오버헤드 때문이며, 이 구성 요소의 최적화가 상당한 성능 향상을 가져올 수 있음을 시사한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.