Skip to main content
QUICK REVIEW

[논문 리뷰] Deep Graph Library Optimizations for Intel(R) x86 Architecture

Sasikanth Avancha, Vasimuddin|arXiv (Cornell University)|2020. 07. 13.
Advanced Graph Neural Networks참고 문헌 8인용 수 5
한 줄 요약

이 논문은 메모리 대역폭 인지 키널 융합, 벡터화된 연산, 저수준 최적화를 활용하여 Intel® x86 CPU에서 Deep Graph Library(DGL)의 집계 프리미티브—특히 Binary-Reduce 및 Copy-Reduce—를 최적화한다. 저자들은 일곱 가지 GNN 응용 프로그램에서 에포크당 학습 시간에 최대 13배의 성능 향상을 달성하였으며, Binary-Reduce는 CPU 워크로드에서 최대 34배 향상되었다.

ABSTRACT

The Deep Graph Library (DGL) was designed as a tool to enable structure learning from graphs, by supporting a core abstraction for graphs, including the popular Graph Neural Networks (GNN). DGL contains implementations of all core graph operations for both the CPU and GPU. In this paper, we focus specifically on CPU implementations and present performance analysis, optimizations and results across a set of GNN applications using the latest version of DGL(0.4.3). Across 7 applications, we achieve speed-ups ranging from1 1.5x-13x over the baseline CPU implementations.

연구 동기 및 목표

  • DGL의 CPU 기반 GNN 추론 및 학습에서 집계 프리미티브가 실행 시간의 대부분을 차지하는 성능 저하 문제를 해결한다.
  • 시리얼라이제이션과 불필요한 메모리 복사에 의존하는 Binary-Reduce 및 Copy-Reduce 프리미티브의 비효율적 구현을 규명한다.
  • DGL의 CPU 백엔드에서 저수준 프리미티브를 최적화하여 메모리 대역폭 활용도를 극대화하고 지연 시간을 감소시킨다.
  • Intel Xeon 프로세서에서 실제 및 합성 데이터셋을 사용하여 다양한 GNN 워크로드에서 측정 가능한 성능 향상을 입증한다.
  • 최적화된 구현이 PyTorch 백엔드 및 DGL의 고수준 API와의 수치 정확성과 호환성을 유지하도록 보장한다.

제안 방법

  • PyTorch 프로파일러와 애플리케이션 수준 프로파일링을 사용하여 DGL의 집계 파이프라인을 분석하고 Binary-Reduce 및 Copy-Reduce 연산에서 발생하는 성능 저하 요인을 규명한다.
  • 요소 간 연산과 감소 연산을 하나의 메모리 접근 패턴으로 융합한 키널을 사용하여 Binary-Reduce 프리미티브를 재구현함으로써 지연 시간을 감소시키고 캐시 효율성을 향상시킨다.
  • 불필요한 버퍼 복사 제거와 벡터화된 명령어(예: AVX/AVX512)를 활용하여 Copy-Reduce를 최적화하여 특징 텐서 연산의 성능을 향상시킨다.
  • 메모리 트래픽 감소와 데이터 국소성 향상을 위해 키널 융합 및 루프 틀링을 적용하여 집계에 사용되는 희소-밀집 행렬 곱셈 공식을 최적화한다.
  • 최적화된 프리미티브를 DGL v0.4.3에 통합하고 표준 GNN 벤치마크를 사용하여 정확성과 성능을 검증한다.
  • 특정 응용 프로그램에서 실행 시간에 기여도가 높은 추가 PyTorch 프리미티브(예: BatchNorm1d, Embedding)를 프로파일링하고 튜닝한다.

실험 결과

연구 질문

  • RQ1고수준 추상화의 이점에도 불구하고 DGL의 CPU 기반 GNN 응용 프로그램에서 성능이 열악한 이유는 무엇인가?
  • RQ2Intel x86 CPU에서 DGL의 Binary-Reduce 및 Copy-Reduce 프리미티브에서 주요 성능 저하 요인은 무엇인가?
  • RQ3키널 융합 및 벡터화와 같은 저수준 최적화가 GNN 집계에서 메모리 대역폭 활용도를 어떻게 향상시킬 수 있는가?
  • RQ4다양한 GNN 워크로드에서 최적화된 프리미티브가 에포크당 학습 시간을 얼마나 줄일 수 있는가?
  • RQ5수치 정확성 또는 프레임워크 호환성을 희생시키지 않고 성능 향상을 달성할 수 있는가?

주요 결과

  • Binary-Reduce 프리미티브는 GNN 응용 프로그램에서 대부분의 실행 시간을 차지하며 CPU에서의 주요 성능 저하 요인이다.
  • 키널 융합 및 벡터화를 통한 Binary-Reduce 최적화로 Intel Xeon 8280 CPU에서 에포크당 시간에 최대 34배의 성능 향상을 달성하였다.
  • Copy-Reduce 최적화는 불필요한 메모리 복사 제거와 데이터 국소성 향상을 통해 메시지 전달 연산에서 뚜렷한 성능 향상을 이끌어냈다.
  • 배치 처리를 사용하는 GraphSAGE의 경우 최적화된 DGL은 전체적으로 1.5배에서 1.7배의 성능 향상을 기록하였으며, Binary-Reduce는 7.2배에서 10.6배 향상되었다.
  • LGNN 응용 프로그램에서 최적화된 BatchNorm1d와 Embedding 프리미티브는 각각 13배와 76배의 성능 향상을 기록하여 전체 학습 속도를 2배로 높였다.
  • 모든 최적화는 기준 DGL 구현과 수치적으로 동일한 결과를 유지하여 테스트된 모든 GNN 응용 프로그램에서 정확성을 보장하였다.

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

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

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

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