Skip to main content
QUICK REVIEW

[논문 리뷰] BLASX: A High Performance Level-3 BLAS Library for Heterogeneous Multi-GPU Computing

Linnan Wang, Wei Wu|arXiv (Cornell University)|2015. 10. 16.
Parallel Computing and Optimization Techniques인용 수 9
한 줄 요약

BLASX는 이질적 다중 GPU 환경을 위한 고성능이며 후행 호환성 있는 레벨-3 BLAS 라이브러리로, 동적이고 캐시 및 국소성 인식 런타임을 사용하며, 통신을 최소화하고 동시성을 극대화하기 위해 혁신적인 이중 계층 히에라르키컬 타일 캐시 아키텍처를 구현한다. 딥러닝 워크로드에서는 최대 2.48배, MATLAB 워크로드에서는 최대 12.75배 빠르며, 통신 볼륨은 200% 감소한다.

ABSTRACT

Basic Linear Algebra Subprograms (BLAS) are a set of low level linear algebra kernels widely adopted by applications involved with the deep learning and scientific computing. The massive and economic computing power brought forth by the emerging GPU architectures drives interest in implementation of compute-intensive level 3 BLAS on multi-GPU systems. In this paper, we investigate existing multi-GPU level 3 BLAS and present that 1) issues, such as the improper load balancing, inefficient communication, insufficient GPU stream level concurrency and data caching, impede current implementations from fully harnessing heterogeneous computing resources; 2) and the inter-GPU Peer-to-Peer(P2P) communication remains unexplored. We then present BLASX: a highly optimized multi-GPU level-3 BLAS. We adopt the concepts of algorithms-by-tiles treating a matrix tile as the basic data unit and operations on tiles as the basic task. Tasks are guided with a dynamic asynchronous runtime, which is cache and locality aware. The communication cost under BLASX becomes trivial as it perfectly overlaps communication and computation across multiple streams during asynchronous task progression. It also takes the current tile cache scheme one step further by proposing an innovative 2-level hierarchical tile cache, taking advantage of inter-GPU P2P communication. As a result, linear speedup is observable with BLASX under multi-GPU configurations; and the extensive benchmarks demonstrate that BLASX consistently outperforms the related leading industrial and academic projects such as cuBLAS-XT, SuperMatrix, MAGMA and PaRSEC.

연구 동기 및 목표

  • 기존 다중 GPU 레벨-3 BLAS 라이브러리의 성능이 열악한 이유인 부적절한 로드 밸런싱, 비효율적 통신, GPU 스트림 동시성 부족 문제를 해결한다.
  • GPU 성능과 실시간 성능가 변동이 큰 이질적 GPU 환경에서 현재 구현의 한계를 극복한다.
  • GPU 간 피어 투 피어(P2P) 액세스를 활용하고 이중 계층 히에라르키컬 타일 캐시를 도입하여 CPU-GPU 통신을 최소화한다.
  • 기존 CPU BLAS 기반 애플리케이션과의 후행 호환성을 유지하면서도, 작업 스케줄링 및 메모리 관리와 같은 저수준 복잡성을 추상화한다.
  • 다양한 다중 GPU 시스템, 특히 킬러 및 매그놀리아 GPU를 포함한 이질적 구성에서도 선형 확장성과 고성능을 달성한다.

제안 방법

  • 행렬을 타일로 분할하고 타일 간 연산을 원자적 작업으로 간주하여 세밀한 병렬성을 확보하는 타일 기반 알고리즘을 채택한다.
  • 캐시 및 국소성 인식 런타임을 사용하여 비동기적 동적 런타임을 구현함으로써 이질적 GPU 간 작업 분배를 적응적으로 스케줄링한다.
  • 이중 계층 히에라르키컬 타일 캐시 아키텍처를 구현: L1 캐시는 GPU 온보드 메모리를 사용하고, L2 캐시는 다중 GPU 메모리를 집계하여 CPU-GPU 데이터 이동을 감소시킨다.
  • 비동기적 작업 실행 중 데이터 일관성을 유지하기 위해 새로운 LRU 교체 알고리즘과 캐시 일관성 프로토콜을 설계한다.
  • 다중 GPU 스트림 간 비동기적 작업 진행을 통해 통신과 계산을 겹치며, 통신 비용을 극복한다.
  • 플랫폼 간 최적화를 위해 사용자 노력 최소화를 위해 단일 튜닝 매개변수인 타일 크기만을 노출한다. 이는 GPU 포화도, PCI-E 효율성, 병렬성 간 균형을 맞춘다.

실험 결과

연구 질문

  • RQ1이질적 GPU 간 로드 불균형은 다중 GPU 레벨-3 BLAS 구현에서 어떻게 효과적으로 완화될 수 있는가?
  • RQ2다중 GPU 시스템에서 계산과 겹쳐 통신 오버헤드를 얼마나 줄일 수 있는가?
  • RQ3GPU 간 피어 투 피어(P2P) 액세스를 활용한 이중 계층 히에라르키컬 타일 캐시는 CPU-GPU 통신을 효과적으로 줄일 수 있는가?
  • RQ4BLASX는 다중 GPU 시스템에서 뛰어난 성능을 제공하면서도 기존 CPU BLAS 기반 애플리케이션과의 후행 호환성을 어떻게 달성하는가?
  • RQ5타일 크기의 성능에 대한 영향은 무엇이며, 다양한 하드웨어 플랫폼에서 최적 성능을 달성하기 위해 단일 타일 크기 설정이 가능한가?

주요 결과

  • BLASX는 2대의 K40과 2대의 TITAN X GPU를 포함한 이질적 구성에서도 다중 GPU 시스템에서 선형 스피드업을 달성한다. 반면 cuBLAS-XT, MAGMA, SuperMatrix는 낮은 확장성을 보인다.
  • 3대의 K40c GPU를 탑재한 Everest 시스템에서 BLASX는 DGEMM 성능에서 SuperMatrix, MAGMA, PaRSEC와 같은 학술적 구현보다 일관되게 뛰어난 성능을 보였다.
  • NVIDIA의 cuBLAS-XT과 비교해 BLASX는 평균 25% 성능 향상을 기록했으며, 통신 볼륨은 200% 감소했다.
  • Caffe에서 BLASX는 GPU 전용 Caffe 대비 최대 2.48배, CPU 전용 Caffe 대비 최대 62.3배 빠른 딥러닝 학습을 가능하게 하였으며, 최대 3.2×10^10개의 파라미터를 가진 모델을 지원한다.
  • Everest 시스템에서 MATLAB에서 BLASX는 단정밀도 행렬 곱셈 연산을 12.75배 빠르게 하고, 더블 정밀도 연산은 8.27배 빠르게 하였다.
  • BLASX의 성능은 타일 크기 1024×1024에서 최대로 향상되며, 이는 GPU 포화도, PCI-E 효율성, 가용 병렬성 간 균형을 잘 맞춘다.

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

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

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

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