Skip to main content
QUICK REVIEW

[論文レビュー] FeatGraph: A Flexible and Efficient Backend for Graph Neural Network Systems

Yuwei Hu, Zihao Ye|arXiv (Cornell University)|Aug 26, 2020
Advanced Graph Neural Networks参考文献 43被引用数 12
ひとこと要約

FeatGraph は、グラフ構造とテンソルレベルの並列性を活用することで、二段階のプログラミングインターフェース(粗粒度のスパーステンプレート(一般化 SpMM および SDDMM)と細粒度のユーザ定義関数(UDF)の組み合わせ)を用いて、グラフ巡回と特徴次元計算を同時に最適化する高性能な GNN バックエンドです。CPU で最大 32×、GPU で最大 7× の高速化を達成しています。

ABSTRACT

Graph neural networks (GNNs) are gaining increasing popularity as a promising approach to machine learning on graphs. Unlike traditional graph workloads where each vertex/edge is associated with a scalar, GNNs attach a feature tensor to each vertex/edge. This additional feature dimension, along with consequently more complex vertex- and edge-wise computations, has enormous implications on locality and parallelism, which existing graph processing systems fail to exploit. This paper proposes FeatGraph to accelerate GNN workloads by co-optimizing graph traversal and feature dimension computation. FeatGraph provides a flexible programming interface to express diverse GNN models by composing coarse-grained sparse templates with fine-grained user-defined functions (UDFs) on each vertex/edge. FeatGraph incorporates optimizations for graph traversal into the sparse templates and allows users to specify optimizations for UDFs with a feature dimension schedule (FDS). FeatGraph speeds up end-to-end GNN training and inference by up to 32x on CPU and 7x on GPU.

研究の動機と目的

  • スパース演算と特徴テンソル計算の非効率な処理が原因で生じる GNN ワークロードのパフォーマンスボトルネックを解消すること。
  • 基本的なスパース演算を超える多様な GNN カーネルを柔軟にサポートしない既存のディープラーニングフレームワークの限界を克服すること。
  • 特徴テンソルの次元が計算パターンを根本的に変えることを踏まえ、従来のグラフ処理システムと GNN ワークロードのギャップを埋めること。
  • グラフ巡回と特徴次元計算の最適化を分離・組み合わせることで、CPU および GPU における高パフォーマンスな GNN 学習と推論を実現すること。
  • DGL や PyTorch Geometric などの既存の GNN フレームワークに統合可能なポータブルで拡張可能なバックエンドを提供すること。

提案手法

  • 頂点単位の計算に適した一般化 SpMM とエッジ単位の計算に適した一般化 SDDMM の2つの一般化スパーステンプレートを導入し、特徴テンソル上で任意のユーザ定義関数(UDF)をサポートする。
  • カーネル定義を粗粒度の巡回ロジック(テンプレート経由)と細粒度の特徴計算(UDF 経由)に分離することで、各レベルでの独立した最適化を可能にする。
  • CPU におけるデータ局所性の向上とメモリアクセスオーバーヘッドの低減を図るため、グラフ分割とキャッシュに配慮した最適化を適用する。
  • スパースパターンに適応した並列化戦略を採用し、GPU の大規模並列性を最大限に活用する、特に特徴次元計算において。
  • CPU および GPU における最適なスケジューリングとコード生成戦略の自動探索を可能にする、テンソルコンパイラー手法を活用する。
  • バックエンドの高速化を可能にする洗練された拡張性のあるインターフェースを提供することで、既存の GNN フレームワークとの柔軟な統合を実現する。

実験結果

リサーチクエスチョン

  • RQ1スパースなグラフ構造と密な特徴テンソルを併用する GNN ワークロードを、どのように効率的に表現・最適化できるか?
  • RQ2既存のディープラーニングおよびグラフ処理システムにおいて、GNN 特有のカーネル処理の際の主なパフォーマンスボトルネックは何か?
  • RQ3グラフ巡回と特徴次元計算の共同最適化は、エンド・ツー・エンドの GNN 学習および推論パフォーマンスを顕著に向上させ得るか?
  • RQ4二段階のプログラミング抽象化(テンプレート + UDF)は、多様な GNN モデルに対して柔軟性と高パフォーマンスを両立できるか?
  • RQ5特徴次元計算とグラフ巡回のためのターゲット最適化が、CPU および GPU プラットフォームにおけるパフォーマンスにどのように寄与するか?

主な発見

  • FeatGraph は、エンド・ツー・エンドの GNN 学習および推論ワークロードにおいて、最先端のシステム比で CPU で最大 32×、GPU で最大 7× の高速化を達成している。
  • 一般化 SpMM と SDDMM テンプレートの組み合わせにカスタマイズ可能な UDF を組み合わせることで、MLP アグリゲーションやアテンション機構を含む多様な GNN モデルに対する表現力が向上している。
  • キャッシュに配慮したグラフ分割と特徴次元に配慮したロードバランシングは、メモリアクセスオーバーヘッドの低減により CPU パフォーマンスを顕著に向上させている。
  • GPU パフォーマンスは、グラフ巡回と特徴テンソル計算の両方における並列性を活用することで顕著に向上しており、これまではほとんど無視されていた点である。
  • FeatGraph は、巡回処理と特徴計算の共同最適化が可能であるため、cuSPARSE や MKL のようなベンダーオプティマイズライブラリよりも GNN 特有のカーネルで優れたパフォーマンスを発揮している。
  • 本システムはポータブルであり、DGL や PyTorch Geometric などの既存の GNN フレームワークに高パフォーマンスバックエンドとして統合可能である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。