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