[論文レビュー] Tensor processing primitives: a programming abstraction for efficiency and portability in deep learning workloads
本論文では、複雑で高次元の演算を構築するための構成要素として、コンactな2次元テンソル演算子のセットを用いる、ポータブルで高パフォーマンスなディープラーニングワークロードのプログラミング抽象化であるテンソルプロセッシングプリミティブ(TPP)を紹介する。TPPは、複数のプラットフォームで最先端のカーネルを凌駐する、効率的でプラットフォームに依存しない実装を可能にする。
During the past decade, novel Deep Learning (DL) algorithms/workloads and hardware have been developed to tackle a wide range of problems. Despite the advances in workload/hardware ecosystems, the programming methodology of DL systems is stagnant. DL workloads leverage either highly-optimized, yet platform-specific and inflexible kernels from DL libraries, or in the case of novel operators, reference implementations are built via DL framework primitives with underwhelming performance. This work introduces the Tensor Processing Primitives (TPP), a programming abstraction striving for efficient, portable implementation of DL workloads with high-productivity. TPPs define a compact, yet versatile set of 2D-tensor operators (or a virtual Tensor ISA), which subsequently can be utilized as building-blocks to construct complex operators on high-dimensional tensors. The TPP specification is platform-agnostic, thus code expressed via TPPs is portable, whereas the TPP implementation is highly-optimized and platform-specific. We demonstrate the efficacy of our approach using standalone kernels and end-to-end DL workloads expressed entirely via TPPs that outperform state-of-the-art implementations on multiple platforms.
研究の動機と目的
- ディープラーニングアルゴリズムとハードウェアの進歩にもかかわらず、ディープラーニングプログラミング手法の停滞を解決すること。
- 既存のディープラーニングライブラリにおけるプラットフォーム固有で柔軟性に欠けるカーネルの限界を克服すること。
- 複雑なディープラーニング演算のポータブルで高度に最適化された実装を可能にする、高生産性のプログラミング抽象化を提供すること。
- ディープラーニングシステム開発におけるパフォーマンスのポータビリティと開発者生産性のギャップを埋めること。
提案手法
- 複雑なディープラーニングワークロードを構築するためのコア抽象化として、最小限でプラットフォームに依存しない2次元テンソル演算子のセット(仮想テンソルISA)を定義すること。
- これらのプリミティブを組み合わせて高次元の演算を表現するための合成とタイリングを用いること。
- 高いパフォーマンスを確保するため、高度に最適化されたプラットフォーム固有のカーネルとしてTPPを実装すること。
- 高レベルの仕様(TPP)と低レベルの実装を分離することで、パフォーマンスを維持したままポータビリティを実現すること。
- TPPによって完全に表現されたエンドツーエンドのディープラーニングワークロードとスタンドアロンカーネルを実証すること。
- 複数のプラットフォームでパフォーマンスを評価し、効率性とポータビリティを検証すること。
実験結果
リサーチクエスチョン
- RQ1最小限でポータブルな2次元テンソル演算子のセットが、複雑なディープラーニングワークロードの実装に有効な抽象化として機能できるか?
- RQ2TPPは、手動で最適化されたプラットフォーム固有のカーネルと同等またはそれ以上のパフォーマンスを達成できるか、その程度はどの程度か?
- RQ3仕様(TPP)と実装の分離が、どのようにポータビリティと高パフォーマンスの両立を可能にするか?
- RQ4エンドツーエンドのディープラーニングワークロードを、TPPプリミティブのみで効率的かつポータブルに表現できるか?
主な発見
- スタンドアロンカーネルのTPPベース実装は、複数のプラットフォームで最先端の手動最適化実装を上回るパフォーマンスを達成する。
- 完全にTPPによって表現されたエンドツーエンドのディープラーニングワークロードは、既存の最適化フレームワークと比較して、同等または優れたパフォーマンスを達成する。
- TPPのプラットフォームに依存しない仕様により、パフォーマンスを損なわずに多様なハードウェアターゲット間でのコードポータビリティが保証される。
- 抽象化により、開発者が少数の一貫性のあるプリミティブのセットを使って複雑な演算を表現できる高生産性が実現される。
- 仕様と実装の分離により、各プラットフォームに特化したTPPカーネルの最適化が可能でありながら、インターフェースの互換性が維持される。
- 本アプローチにより、ディープラーニングシステムにおける高パフォーマンスとポータビリティが互いに排他的ではないことが示された。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。