Skip to main content
QUICK REVIEW

[논문 리뷰] Multi GPU Performance of Conjugate Gradient Algorithm with Staggered Fermions

Hyungjin Kim, Weonjong Lee|arXiv (Cornell University)|2010. 10. 22.
Radiation Detection and Scintillator Technologies참고 문헌 3인용 수 7
한 줄 요약

이 논문은 28³×96 격자에서 스터지드 페르미온에 대해 케이시드 컨jugate gradient (CG) 알고리즘의 고도로 최적화된 CUDA 구현을 제시한다. NVIDIA GTX 295 하드웨어에서 단일 GPU당 35 GFLOPS(정점 성능의 47%)를 달성하였다. 최적화에도 불구하고, PCI-E 및 InfiniBand 데이터 전송으로 인한 I/O 병목 현상으로 인해 다중 GPU 환경에서는 성능이 12.3 GFLOPS로 떨어지며, 이는 대규모 라티스 QCD 시뮬레이션에서 이러한 제약을 극복하기 위해 메모리 공유, 레지스터 사용량 및 비동기 통신 전략을 분석하는 데로 이어졌다.

ABSTRACT

We report results of the performance test of GPUs obtained using the conjugate gradient (CG) algorithm for staggered fermions on the MILC fine lattice ($28^3 imes 96$). We use GPUs of nVIDIA GTX 295 model for the test. When we turn off the MPI communication and use only a single GPU, the performance is 35 giga flops in double precision, which corresponds to 47% of the peak. When we turn on the MPI communication and use multi-GPUs, the performance is reduced down to 12.3 giga flops. The data transfer through the infiniband network and PCI-E bus I/O is a main bottle neck. We suggest two potential solutions of how to optimize the data transfer.

연구 동기 및 목표

  • 미세한 MILC 격자에서 스터지드 페르미온을 위한 라티스 QCD 시뮬레이션에 GPU를 활용한 케이시드 컨주게이트 그레디언트(CG) 알고리즘의 가속화를 목적으로 한다.
  • PCI-E 및 InfiniBand로 인한 I/O 및 통신 오버헤드로 인한 다중 GPU CG 실행 환경에서의 성능 병목 현상을 규명하고 이를 완화한다.
  • 메모리 공유, 레지스터 사용량 감소, 분기 코드 최소화를 통한 GPU 커널 성능 최적화를 목적으로 한다.
  • GPU 메모리 전송과 MPI 통신 간의 겹침을 통해 총 실행 시간을 단축시키는 것이 가능한지 평가한다.
  • 향후 GPU-직접 기술과 혼합 정밀도 계산을 통한 확장성 향상을 위한 개선 방안을 탐색한다.

제안 방법

  • 스터지드 페르미온 계산에서 주로 발생하는 디랙 행렬-벡터 곱셈을 위한 커스텀 CUDA 커널과 CUBLAS를 사용한 선형 대수 연산을 포함한 CUDA 기반 CG 커널을 구현하였다.
  • GPU 스레드 블록 간의 연속된 메모리 액세스를 가능하게 하기 위해 데이터 구조를 정렬하여 메모리 액세스를 최적화하였다.
  • 데이터 액세스 패턴을 재구성하여 스레드 블록당 레지스터 사용량을 77에서 61로 감소시켰으며, 이로 인해 점유율과 성능이 7% 향상되었다.
  • 분기 수를 최소화하고 비트 연산 및 루프 전개를 사용하여 명령 수준의 병렬성 향상과 분기 오버헤드 감소를 달성하였다.
  • 비동기 cudaMemcpy 및 비차단 모드의 MPI-IO를 사용하여 계산과 데이터 전송 간의 겹침을 도모하였으며, 통신 지연을 줄이기 위한 목적이었다.
  • GPU-직접 기술과 Fermi 아키텍처의 이중 메모리 복사 엔진(이중 복사 엔진)이 현재의 메모리 공유 및 I/O 제약을 해결하는 데 어떻게 기여할 수 있는지 평가하였다.

실험 결과

연구 질문

  • RQ128³×96 격자에서 스터지드 페르미온에 대해 CUDA 최적화된 CG 솔버의 단일 GPU 성능은 어느 정도 도달할 수 있는가?
  • RQ2라티스 QCD의 다중 GPU CG 실행 환경에서의 주요 성능 병목 현상은 무엇이며, 노드 수 증가에 따라 어떻게 변화하는가?
  • RQ3GPU와 CPU 간의 비동기 데이터 전송이 MPI 통신과 얼마나 겹쳐서 총 I/O 시간을 줄일 수 있는가?
  • RQ4현재 시스템에서 CUDA와 MPI 메모리 전송 간 겹침이 실패하는 이유는 무엇이며, 이를 가능하게 하기 위한 하드웨어/소프트웨어 조건은 무엇인가?
  • RQ5GPU-직접 기술과 혼합 정밀도 산술이 라티스 양자장 이론에서 다중 GPU CG 성능 향상에 어떻게 기여할 수 있는가?

주요 결과

  • 단일 GPU CG 구현은 더블 정밀도에서 35 GFLOPS를 달성하였으며, GTX 295의 이론적 정점 성능의 47%에 해당한다.
  • GPU 코드는 해당 CPU 구현보다 76배 빠르게 작동하여, GPU 가속화가 라티스 QCD에 효과적임을 입증하였다.
  • 4개의 노드를 사용한 다중 GPU 환경에서 총 실행 시간은 약 14.5 ms였으며, 이 중 데이터 전송 작업이 총 시간의 약 70%를 차지하였다.
  • 4노드 환경에서 GPU 계산 시간은 총 시간의 32%에 불과하여, I/O 및 통신 오버헤드가 성능 저하의 주요 원인임을 확인하였다.
  • 비동기 메모리 전송과 MPI 통신은 원칙적으로 통신 시간을 최대 1/3까지 줄일 수 있으나, 현재 시스템의 하드웨어 제약으로 인해 효과적인 겹침이 불가능하였다.
  • 미래의 GPU-직접 기술과 이중 메모리 복사 엔진을 갖춘 Fermi 아키텍처 GPU를 통해 현재의 메모리 공유 및 I/O 병목 현상이 해결될 것으로 기대된다.

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

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

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

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