Skip to main content
QUICK REVIEW

[논문 리뷰] dMath: A Scalable Linear Algebra and Math Library for Heterogeneous GP-GPU Architectures

Steven Eliuk, Cameron Upright|arXiv (Cornell University)|2016. 04. 05.
Parallel Computing and Optimization Techniques참고 문헌 34인용 수 6
한 줄 요약

dMath는 고성능, 확장 가능한 선형 대수 및 수학 라이브러리로, GPU-GPU 이질적 아키텍처를 대상으로 하며, GPU 메모리에 데이터를 지속적으로 저장하여 CPU-GPU 전송을 최소화하고 고도로 발전된 메모리 관리 기법을 통해 효율적인 분산 딥러닝을 가능하게 한다. MPI와 GPU-Direct RDMA를 활용한 하이브리드 내노드/내노드 병렬 처리를 지원하며, 분산 DNN 학습에서 최고 수준의 강한 및 약한 스케일링 성능을 달성한다. 기존 프레임워크를 능가하며, 저수준 병렬 처리를 추상화하면서도 높은 생산성을 유지한다.

ABSTRACT

A new scalable parallel math library, dMath, is presented in this paper that demonstrates leading scaling when using intranode, or internode, hybrid-parallelism for deep-learning. dMath provides easy-to-use distributed base primitives and a variety of domain-specific algorithms. These include matrix multiplication, convolutions, and others allowing for rapid development of highly scalable applications, including Deep Neural Networks (DNN), whereas previously one was restricted to libraries that provided effective primitives for only a single GPU, like Nvidia cublas and cudnn or DNN primitives from Nervana neon framework. Development of HPC software is difficult, labor-intensive work, requiring a unique skill set. dMath allows a wide range of developers to utilize parallel and distributed hardware easily. One contribution of this approach is that data is stored persistently on the GPU hardware, avoiding costly transfers between host and device. Advanced memory management techniques are utilized, including caching of transferred data and memory reuse through pooling. A key contribution of dMath is that it delivers performance, portability, and productivity to its specific domain of support. It enables algorithm and application programmers to quickly solve problems without managing the significant complexity associated with multi-level parallelism.

연구 동기 및 목표

  • 이질적 GPU-GPU 클러스터에서 저수준 병렬 프로그래밍 전문 지식 없이도 고성능, 확장 가능한 딥러닝 응용 프로그램을 개발하는 데 도전하는 것.
  • 반복적인 CPU-GPU 메모리 전송으로 인한 성능 저하를 줄이기 위해 데이터를 GPU 장치 메모리에 지속적으로 캐시하는 것.
  • 다중 정밀도 산술과 효율적인 데이터 재구성 기능을 지원하면서도, 다중 GPU 및 분산 컴퓨팅 복잡성을 추상화한 고수준의 사용자 친화적 프로그래밍 모델을 제공하는 것.
  • 표준 하드웨어(COTS) GPU 집약적 클러스터에서 MPI와 CUDA를 조합한 하이브리드 병렬 처리를 활용해 분산 딥뉴럴넷 학습에서 강한 및 약한 스케일링을 실현하는 것.
  • 고도로 발전된 메모리 관리, 캐싱, GPU-Direct RDMA를 통한 최적화된 통신 기법을 통합하여 HPC 및 머신러닝 워크로드의 성능과 생산성을 향상시키는 것.

제안 방법

  • dMath는 GPU에 연산자 데이터를 지속적으로 유지시켜 반복적인 CPU-GPU 데이터 전송을 제거하고 지연 시간을 줄인다.
  • 사용자 메인 스레드가 백엔드 계산을 제어하는 클라이언트-서버 아키텍처를 구현하며, 연산 간에도 데이터가 GPU 메모리에 캐시된 상태로 유지된다.
  • 다양한 정밀도(단정밀도, 双정밀도, 반정밀도), 레이아웃, 계산 대상(CPU, GPU, 분산 환경)을 지원하는 추상 행렬 및 벡터 클래스를 포함한 객체 지향 설계를 사용한다.
  • DNN의 파이프라인 단계에서 성능을 최적화하기 위해, 다양한 병렬 레이아웃 간에 매트릭스를 효율적으로 재매핑할 수 있는 데이터 재구성 및 복제 서비스를 제공한다.
  • MPI와 통합되어 GPU-Direct 원격 메모리 액세스(RDMA)를 활용하여 GPU 간 통신을 가속화하며, 지연 시간을 감소시키고 대역폭을 증가시킨다.
  • 혼합 정밀도 연산과 손실 압축을 지원하기 위해 데이터 캐싱, 메모리 풀링, 효율적인 형식 변환과 같은 고급 메모리 관리 기법을 포함한다.

실험 결과

연구 질문

  • RQ1어떻게 선형 대수 라이브러리가 GPU 집약적 클러스터에서 분산 딥러닝 워크로드에서 최고 수준의 강한 및 약한 스케일링 성능을 달성할 수 있는가?
  • RQ2지속적인 GPU 메모리 저장 및 고도로 발전된 메모리 관리 기법이 대규모 머신러닝 워크로드에서 CPU-GPU 데이터 전송 오버헤드를 얼마나 줄일 수 있는가?
  • RQ3하이브리드 병렬 처리(MPI + CUDA)의 복잡성을 효과적으로 숨기면서도 분산 DNN 학습에서 높은 성능을 유지할 수 있는 고수준 추상화 계층이 가능한가?
  • RQ4GPU-Direct RDMA는 기존 PCIe 기반 MPI와 비교해 다중 GPU 시스템에서 GPU 간 통신 성능을 어떻게 향상시키는가?
  • RQ5깊이 신경망 파이프라인의 연속적 연산 간 성능 최적화에 있어 데이터 재구성 및 레이아웃 변환은 어떤 역할을 하는가?

주요 결과

  • dMath는 오픈소스 프레임워크와 비교해 뛰어난 강한 및 약한 스케일링 성능을 입증하였으며, Expresso 프레임워크 기반 실험 결과 분산 DNN 학습에서 성능 향상을 입증했다.
  • GPU 메모리에 데이터를 지속적으로 캐시함으로써 고비용의 CPU-GPU 전송을 제거하고, GEMM과 같은 반복적 알고리즘에서 지연 시간을 감소시켜 뚜렷한 성능 향상을 달성했다.
  • OpenMPI 및 MVAPICH2와 통합된 GPU-Direct RDMA는 통신 지연 시간을 감소시키고 대역폭을 증가시켜 노드 간 및 노드 내 GPU 간 통신을 효율적으로 구현했다.
  • 데이터 재구성 및 복제 서비스를 통해 다양한 병렬 데이터 분포 간의 효율적인 레이아웃 변환을 가능하게 하여 DNN 파이프라인 단계의 성능 최적화를 이뤘다.
  • 반정밀도, 단정밀도, 이중정밀도를 모두 지원하며, 효율적인 형식 변환과 손실 압축을 통해 정밀도 손실 없이 메모리 대역폭 사용량을 줄였다. 이는 적절한 수치 알고리즘에서는 정확도를 유지한다.
  • MPI, CUDA, 데이터 레이아웃 관리의 저수준 세부 사항을 추상화함으로써 개발자가 알고리즘 설계에 집중할 수 있도록 하여 높은 생산성을 달성했다.

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

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

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

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