Skip to main content
QUICK REVIEW

[논문 리뷰] Stateful Dataflow Multigraphs: A Data-Centric Model for Performance Portability on Heterogeneous Architectures

Tal Ben‐Nun, Johannes de Fine Licht|arXiv (Cornell University)|2019. 02. 27.
Parallel Computing and Optimization Techniques참고 문헌 53인용 수 5
한 줄 요약

이 논문은 과학적 코드를 저수준 최적화에서 분리하여 CPU, GPU, FPGA 등 다양한 아키텍처에서 성능 이식성을 보장하는 데이터 중심형 중간 표현인 상태 기반 데이터플로우 다중그래프(SDFG)를 소개한다. SDFG에 대해 확장 가능한 그래프 리라이팅과 패턴 기반 변환을 적용함으로써, 원본 도메인 과학자 코드를 수정하지 않고도 이질적 아키텍처에서 최고 성능에 가까운 성능을 달성할 수 있다.

ABSTRACT

The ubiquity of accelerators in high-performance computing has driven programming complexity beyond the skill-set of the average domain scientist. To maintain performance portability in the future, it is imperative to decouple architecture-specific programming paradigms from the underlying scientific computations. We present the Stateful DataFlow multiGraph (SDFG), a data-centric intermediate representation that enables separating program definition from its optimization. By combining fine-grained data dependencies with high-level control-flow, SDFGs are both expressive and amenable to program transformations, such as tiling and double-buffering. These transformations are applied to the SDFG in an interactive process, using extensible pattern matching, graph rewriting, and a graphical user interface. We demonstrate SDFGs on CPUs, GPUs, and FPGAs over various motifs --- from fundamental computational kernels to graph analytics. We show that SDFGs deliver competitive performance, allowing domain scientists to develop applications naturally and port them to approach peak hardware performance without modifying the original scientific code.

연구 동기 및 목표

  • GPU 및 FPGA와 같은 이질적 HPC 아키텍처에서 성능이 우수하고 이식 가능한 코드를 작성하는 데 점점 복잡해지는 문제를 해결한다.
  • 도메인 과학자들의 고수준 코드를 저수준 성능 최적화에서 분리하여 유지보수성과 생산성을 향상시킨다.
  • 성능 엔지니어가 원래 과학적 논리에 영향을 주지 않고도 체계적이고 확장 가능한 변환 인터페이스를 통해 코드 최적화를 수행할 수 있도록 한다.
  • 통합적이고 확장 가능한 중간 표현을 통해 프로그램 의미와 최적화를 표현함으로써 고성능 이식성을 달성한다.
  • 패턴 매칭과 데이터플로우 기반 모델에서의 그래프 리라이팅을 통한 자동 및 상호작용식 코드 변환을 지원한다.

제안 방법

  • 과학적 코드를 상태 기반 데이터플로우 다중그래프(SDFG)로 표현한다. 이는 계산을 위한 노드와 데이터 이동을 위한 간선을 포함하는 방향 그래프로, 세밀한 데이터 종속성을 포괄한다.
  • 이중 역할 개발 모델을 사용한다: 도메인 과학자는 고수준 언어(예: 제한된 파이썬/MATLAB)로 코드를 작성하고, 성능 엔지니어는 변환을 통해 SDFG를 최적화한다.
  • 확장 가능한 패턴 매칭과 그래프 리라이팅 규칙을 사용하여 타일링, 더블 버퍼링, 루프 융합 등의 프로그램 변환을 적용한다.
  • SDFG 표현에 대한 변환을 상호작용적으로 탐색하고 적용할 수 있는 그래픽 사용자 인터페이스를 통합한다.
  • 최적화된 SDFG를 목표 아키텍처 코드(예: CUDA, OpenMP, OpenCL)로 컴파일하면서 데이터플로우 의미론과 성능 특성을 유지한다.
  • SDFG의 다중 수준 추상화를 활용하여 레지스터에서 노드 간 통신에 이르기까지 데이터 이동을 분석함으로써 통신 회피 최적화를 가능하게 한다.

실험 결과

연구 질문

  • RQ1데이터 중심 중간 표현은 CPU, GPU, FPGA와 같은 다양한 이질적 아키텍처에서 성능 이식성을 가능하게 할 수 있는가?
  • RQ2성능 엔지니어가 원본 과학적 코드를 수정하지 않고 SDFG에서의 변환을 통해 얼마나 높은 수준의 최적화를 달성할 수 있는가?
  • RQ3SDFG 모델은 메모리 계층과 가속기 간의 복잡한 데이터 이동 패턴을 표현하고 최적화하는 데 얼마나 효과적인가?
  • RQ4여러 플랫폼에서 최고 성능에 가까운 성능을 달성하면서도 도메인 과학자와 성능 엔지니어 간의 역할 분리 원칙을 유지할 수 있는가?
  • RQ5SDFG 변환의 확장성은 새로운 최적화 패턴과 하드웨어 타겟을 지원하는 데 기존 모델에 비해 어떻게 비교되는가?

주요 결과

  • SDFG는 과학적 논리를 성능 튜닝에서 분리하여 도메인 과학자들이 성능이나 이식성의 성능을 포기하지 않고도 고수준 언어로 코드를 작성할 수 있도록 한다.
  • SDFG 모델은 동일한 입력 코드가 CPU, GPU, FPGA에서 모두 최고 성능에 가까운 성능을 달성할 수 있도록 컴파일 가능하게 하여 성능 이식성을 실현한다.
  • SDFG에서의 그래프 리라이팅과 패턴 기반 변환은 타일링 및 더블 버퍼링과 같은 복잡한 최적화를 지원하며, 이는 메모리 대역폭과 지연 시간 감소에 핵심적이다.
  • 확장 가능한 변환 시스템과 결합된 고수준 추상화가 효과적으로 작용함으로써 수작업 최적화 구현과 경쟁 가능한 성능을 달성함을 입증하였다. 이는 고수준 추상화가 확장 가능한 변환 체계와 결합될 경우 저수준 최적화에 맞먹는 성능을 낼 수 있음을 시사한다.
  • 도메인 과학자와 성능 엔지니어 간의 역할 분리는 유지되며, 성능 엔지니어는 도메인 전용 수학을 이해하지 않더라도 SDFG 변환을 통해 코드를 튜닝할 수 있다.
  • SDFG 모델은 Halide, Legion, 다각형 모델과 같은 기존 모델을 일반화하고 확장하여 임의의 데이터 이동 패턴과 이질적 타겟에 대한 다중 수준 최적화를 지원한다.

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

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

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

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