Skip to main content
QUICK REVIEW

[논문 리뷰] Conjugate gradient solvers on Intel Xeon Phi and NVIDIA GPUs

Olaf Kaczmarek, Christian Schmidt|arXiv (Cornell University)|2014. 11. 17.
Parallel Computing and Optimization Techniques참고 문헌 3인용 수 6
한 줄 요약

이 논문은 인텔 Xeon Phi와 NVIDIA 테슬라 GPU에서 라티스 QCD 시뮬레이션을 위한 매우 최적화된 공액 그래디언트 솔버를 제시하며, 다중 우변 행렬 동시 역행렬 계산과 사이트 융합을 활용해 산술 강도와 메모리 대역폭 활용도를 향상시킨다. 이로 인해 두 아키텍처에서 모두 300 GFlop/s 이상의 성능을 달성했으며, 병렬 처리와 소프트웨어 프리패칭 기법을 통해 메모리 병목 현상을 줄여 역행렬 성능을 두 배 이상 향상시켰다.

ABSTRACT

Lattice Quantum Chromodynamics simulations typically spend most of the runtime in inversions of the Fermion Matrix. This part is therefore frequently optimized for various HPC architectures. Here we compare the performance of the Intel Xeon Phi to current Kepler-based NVIDIA Tesla GPUs running a conjugate gradient solver. By exposing more parallelism to the accelerator through inverting multiple vectors at the same time, we obtain a performance greater than 300 GFlop/s on both architectures. This more than doubles the performance of the inversions. We also give a short overview of the Knights Corner architecture, discuss some details of the implementation and the effort required to obtain the achieved performance.

연구 동기 및 목표

  • 라티스 QCD 시뮬레이션에서 사용되는 공액 그래디언트 솔버의 성능을 향상시키기 위해, 주로 페르미온 행렬 역행렬 계산에 의해 지배되는 성능을 개선한다.
  • 인텔 Xeon Phi와 NVIDIA 킵스톤 기반 GPU에서 이러한 솔버의 성능를 평가하고 최적화한다.
  • 다수의 우변 행렬을 동시에 역행렬 계산하여 산술 강도를 높임으로써 메모리 대역폭 병목 현상을 줄인다.
  • 불규칙한 메모리 액세스 패턴을 보이는 Dslash 커널에서 소프트웨어 프리패칭 및 메모리 액세스 최적화를 구현하고 벤치마킹한다.
  • 고성능 라티스 QCD 계산 환경에서 Xeon Phi와 GPU 가속기의 상대적 성능을 비교한다.

제안 방법

  • 다중 우변 행렬을 동시에 역행렬 계산함으로써 공액 그래디언트 솔버를 최적화하여, 8개의 우변 행렬을 사용할 경우 산술 강도를 0.73에서 2.08 flop/byte로 증가시켰다.
  • 8배 융합 방식을 사용한 사이트 융합을 적용하여 같은 페럴리티의 8개 라티스 사이트를 x방향으로 결합함으로써 레지스터 압력을 감소시키고, 16배 융합 대비 성능을 55% 향상시켰다.
  • 16개의 벡터와 행렬에 대해 '배열의 구조'(SoA) 데이터 레이아웃을 사용하여, Xeon Phi에서 AVX-512 명령어를 활용해 다수의 우변 행렬에 걸쳐 벡터 연산을 수행할 수 있도록 했다.
  • 인트린식을 사용해 소프트웨어 프리패칭을 삽입하여, 특히 Dslash 커널의 간접 메모리 액세스에서 데이터 국소성을 향상시켰으며, 벡터에는 시간적 힌트를, 게이지 링크에는 비시간적 힌트를 사용했다.
  • 모든 우변 행렬을 라티스 사이트당 연속적으로 저장하도록 메모리 레이아웃을 재구성하여 TLB 압력을 줄이고 캐시 효율성을 향상시켰다.
  • 구현은 Xeon Phi용 Intel Compiler 14.0과 MPSS 3.3, NVIDIA GPU용 CUDA 6.0을 사용하였으며, ECC를 활성화하고 메모리 대역폭을 주요 성능 병목 요소로 간주했다.

실험 결과

연구 질문

  • RQ1다중 우변 행렬을 동시에 역행렬 계산할 경우, 가속기에서 공액 그래디언트 솔버의 산술 강도와 성능에 어떤 영향을 미치는가?
  • RQ2라티스 QCD Dslash 연산에서 Xeon Phi에서 사이트 융합과 SoA 데이터 레이아웃을 사용할 경우 성능 향상은 어느 정도인가?
  • RQ3복잡한 액세스 패턴으로 인해 하드웨어 프리패칭이 실패할 경우, 소프트웨어 프리패칭이 Xeon Phi에서 성능 향상에 얼마나 기여하는가?
  • RQ4동일한 워크로드 하에서 Xeon Phi와 NVIDIA GPU의 라티스 QCD 공액 그래디언트 솔버 성능 특성은 어떻게 비교되는가?
  • RQ5메모리 대역폭 제약이 라티스 QCD 시뮬레이션에서 페르미온 행렬 역행렬 계산의 구현 가능한 성능에 어떤 영향을 미치는가?

주요 결과

  • 공액 그래디언트 솔버는 인텔 Xeon Phi 5110P와 NVIDIA K40 GPU에서 모두 300 GFlop/s 이상의 성능를 기록했으며, 단일 우변 행렬 역행렬 대비 성능이 두 배 이상 향상되었다.
  • 4개의 우변 행렬을 사용할 경우 산술 강도가 2.16배 증가하여 전체 공액 그래디언트 솔버에서 2.05배의 성능 향상이 이루어졌고, 예상 성능 향상의 95%를 달성했다.
  • 8배 사이트 융합 방식은 16배 융합 대비 레지스터 압력을 50% 감소시켜 Xeon Phi에서 4개의 우변 행렬을 사용할 경우 성능을 55% 향상시켰다.
  • 소프트웨어 프리패칭은 복잡한 액세스 패턴으로 인해 하드웨어 프리패칭이 실패할 경우 Xeon Phi에서 성능을 2배 향상시켰다.
  • 7120P Xeon Phi는 K20 GPU보다 1.2배 빠르며, K40 GPU는 K20보다 1.4배 더 빠르며, 성능 순위는 다음과 같다: K40 > 7120P > 5110P > K20.
  • 모든 우변 행렬을 라티스 사이트당 연속적으로 저장함으로써 대규모 라티스에서 TLB 압력을 줄여 성능을 15% 향상시켰다.

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

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

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

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