Skip to main content
QUICK REVIEW

[논문 리뷰] High-performance Implementation of Matrix-free High-order Discontinuous Galerkin Methods

Steffen Müthing, Marian Piatkowski|arXiv (Cornell University)|2017. 11. 29.
Advanced Numerical Methods in Computational Mathematics참고 문헌 7인용 수 26
한 줄 요약

이 논문은 고차수 불연속 갈레르킨 방법의 고성능, 행렬 기반 구현을 피한 구현 방식을 제안한다. 이는 CPU 아키텍처에서 합성 인자화(sum factorization)와 SIMD 벡터화를 사용하여 달성된다. AVX2를 지원하는 인텔 CPU에서 이론적 최고 성능의 50% 이상을 달성하며, 다항식 차수 7에서 기존의 행렬 기반 접근 방식 대비 100배 이상의 속도 향상을 보였다. 이는 최대 6,144개의 코어에서 우수한 약한 스케일러빌리티와 강한 스케일러빌리티를 입증한다.

ABSTRACT

Achieving a substantial part of peak performance on todays and future high-performance computing systems is a major challenge for simulation codes. In this paper we address this question in the context of the numerical solution of partial differential equations with finite element methods, in particular the discontinuous Galerkin method applied to a convection-diffusion-reaction model problem. Assuming tensor product structure of basis functions and quadrature on cuboid meshes in a matrix-free approach a substantial reduction in computational complexity can be achieved for operator application compared to a matrix-based implementation while at the same time enabling SIMD vectorization and the use of fused-multiply-add. Close to 60\% of peak performance are obtained for a full operator evaluation on a Xeon Haswell CPU with 16 cores and speedups of several hundred (with respect to matrix-based computation) are achieved for polynomial degree seven. Excellent weak scalability on a single node as well as the roofline model demonstrate that the algorithm is fully compute-bound with a high flop per byte ratio. Excellent scalability is also demonstrated on up to 6144 cores using message passing.

연구 동기 및 목표

  • 현대 HPC 시스템에서 PDE의 유한요소 시뮬레이션을 위한 고성능 달성을 위한 과제를 해결하기 위해.
  • 행렬 조립을 피함으로써 고차수 불연속 갈레르킨 방법의 계산 복잡도를 감소시키기 위해.
  • 다중 코어 CPU에서 SIMD 벡터 유닛과 융합 곱셈-덧셈 명령어를 효율적으로 활용하기 위해.
  • 대규모 시뮬레이션에서 메모리 대역폭 제약을 최소화하고 고성능의 FLOP/바이트 비율을 달성하기 위해.
  • 메시지 전달을 사용한 분산 메모리 시스템에서의 강한 및 약한 스케일러빌리티를 입증하기 위해.

제안 방법

  • 정육면체 메esh에서 텐서 곱 기반 함수와 적분을 사용하여 행렬 저장 및 조립을 제거하는 행렬 기반 접근 방식을 채택한다.
  • 각 요소당 연산 평가의 계산 복잡도를 O(p^6)에서 O(p^4)로 감소시키기 위해 합성 인자화를 적용한다.
  • 고성능의 산술 강도와 도메인 자유도에 걸친 벡터화를 위해 AVX-512와 융합 곱셈-덧셈 명령어를 활용한다.
  • 다중 요소나 면에 걸쳐 벡터화가 필요 없는 셀 기반 커널을 사용하여 개별 요소를 처리한다.
  • 분산 메모리 클러스터에서 확장 가능한 메시지 전달을 위해 환경 영역 교환 및 통신 오버랩 전략을 구현한다.
  • 산술 강도가 높고 계산 중심임을 확인하기 위해 루프라이닝 모델을 사용하여 성능를 검증한다.

실험 결과

연구 질문

  • RQ1가속기 없이도 현대 CPU 아키텍처에서 고성능을 달성할 수 있는가?
  • RQ2합성 인자화와 SIMD 벡터화가 DG 방법에서 계산 복잡도를 얼마나 감소시키고 FLOP/바이트 비율을 향상시킬 수 있는가?
  • RQ3분산 메모리 환경에서 수천 개의 CPU 코어에서 성능가 어떻게 스케일링되는가?
  • RQ4오직 네이티브 CPU 명령어와 최적화된 메모리 액세스 패턴을 사용할 때 성능의 최대 비율은 얼마인가?
  • RQ5프레임워크 수준의 코드 재구성 없이도 행렬 기반 접근 방식이 높은 효율을 유지할 수 있는가?

주요 결과

  • AVX2와 융합 곱셈-덧셈 명령어를 사용한 16코어 Xeon Haswell CPU에서, 행렬 기반 구현은 이론적 최고 성능의 50% 이상을 달성한다.
  • 동일한 하드웨어에서 다항식 차수 7에서 기존의 행렬 기반 계산 대비 100배 이상의 속도 향상을 달성한다.
  • 루프라이닝 모델을 통한 검증 결과, 구현은 완전히 계산 중심이며 고성능의 FLOP/바이트 비율을 확보한다.
  • 약한 스케일러빌리티는 384개 노드(768개 코어)까지 매우 우수하며, 문제 크기에 관계없이 거의 수평적인 효율성을 보인다.
  • 최대 6,144개 코어에서 강한 스케일러빌리티를 입증하였으며, 통신 오버랩이 제한되어 있어 최고 코어 수에서 효율이 약 39%로 감소한다.
  • 다중 요소나 면에 걸친 벡터화가 필요 없기 때문에, 기존의 유한요소 프레임워크에 원활하게 통합될 수 있다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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