Skip to main content
QUICK REVIEW

[論文レビュー] Bring Your Own Codegen to Deep Learning Compiler

Zhi Chen, Cody Hao Yu|arXiv (Cornell University)|May 3, 2021
Advanced Neural Network Applications参考文献 31被引用数 7
ひとこと要約

本論文では、深層学習アクセラレータベンダーが独自のコード生成ツールを既存の深層学習コンパイラーに統合できる統合型オープンソースフレームワークを提案する。これにより、アクセラレータ固有のコード生成処理を共有コンパイラーインfraストラクチャーから分離できる。標準的なコンパイラー最適化を再利用し、柔軟なモデル分割を可能にすることで、開発作業を数万行のコードにまで削減でき、NVIDIA Jetson や Xilinx Vitis-AI といった商用スタックでも実用的に導入され、顕著なパフォーマンス向上が得られている。

ABSTRACT

Deep neural networks (DNNs) have been ubiquitously applied in many applications, and accelerators are emerged as an enabler to support the fast and efficient inference tasks of these applications. However, to achieve high model coverage with high performance, each accelerator vendor has to develop a full compiler stack to ingest, optimize, and execute the DNNs. This poses significant challenges in the development and maintenance of the software stack. In addition, the vendors have to contiguously update their hardware and/or software to cope with the rapid evolution of the DNN model architectures and operators. To address these issues, this paper proposes an open source framework that enables users to only concentrate on the development of their proprietary code generation tools by reusing as many as possible components in the existing deep learning compilers. Our framework provides users flexible and easy-to-use interfaces to partition their models into segments that can be executed on "the best" processors to take advantage of the powerful computation capability of accelerators. Our case study shows that our framework has been deployed in multiple commercial vendors' compiler stacks with only a few thousand lines of code.

研究の動機と目的

  • DNNアクセラレータ向けフルコンパイラー スタックの開発にかかる高い工学的コストを低減すること。これは、複数のベンダー間で重複しているものの、共通の最適化ニーズがあるため。
  • アクセラレータベンダーが独自のコード生成にのみ集中できるようにし、標準的なコンパイラー最適化およびモデル分割技術を再利用すること。
  • モデルの互換性問題、複雑なオペレータにおける非効率な実行、およびベンダー間で重複する共通のコンパイラーコンponentの実装を解消すること。
  • 多様なアクセラレータをサポートし、既存の深層学習コンパイラーエコシステムとシームレスに統合できる柔軟で拡張可能なフレームワークを提供すること。
  • プラットフォームに依存しない最適化を抽象化し、アクセラレータ固有のコード生成をモジュラーに統合可能にすることで、導入までの時間と保守の負担を削減すること。

提案手法

  • 深層学習コンパイラーを、共有可能でプラットフォームに依存しないパイプラインと、アクセラレータ固有のコード生成モジュールに分解する。
  • モデルの取り込み、グラフ最適化、ランタイム実行を処理する既存の深層学習コンパイラー後端(例:ONNX Runtime、Glow)を活用する。
  • オペレータのサポート状況とパフォーマンス特性に基づいてDNNをサブグラフに分割するモデル分割メカニズムを導入する。
  • ベンダーが自らのコード生成ロジックを統合できる標準化されたインターフェースを提供し、低レベルのハードウェア詳細を抽象化する。
  • 共有パイプライン内でレイアウト変換、量子化、共通部分式の削除といったハードウェアに配慮した最適化をサポートする。
  • データ移動とカーネル起動を管理する軽量ランタイムと統合することで、エンドツーエンドのコンパイルと実行を可能にする。

実験結果

リサーチクエスチョン

  • RQ1アクセラレータベンダーは、DNN推論用のフルコンパイラー スタックの構築にかかる工学的負担をどのように低減できるか?
  • RQ2多様なアクセラレータ間で共通のコンパイラー最適化をどれほど再利用可能にできるか、またベンダー固有のコード生成をサポートしつつ?
  • RQ3モジュラーなフレームワークは、制御フローや非線形オペレータを含む複雑なDNNモデルを効率的かつ高性能に実行可能か?
  • RQ4NVIDIA Jetson や Xilinx Vitis-AI といった商用アクセラレータの統合を、このフレームワークはどのように簡素化するか?
  • RQ5独自にコンパイラー スタックを構築する場合と比較して、このフレームワークは開発作業とパフォーマンスの両面でどの程度の改善をもたらすか?

主な発見

  • フレームワークにより、商用アクセラレータベンダーが数万行のコードで最先端のコンパイラーに自社のコード生成を統合できるようになった。
  • 複数のベンダーが、NVIDIA Jetson Xavier や Xilinx Vitis-AI の生産用コンパイラー スタックにこのフレームワークを成功裏に導入した。
  • 共有最適化と効率的なモデル分割を活用することで、ベースライン実装と比較して顕著なパフォーマンス向上が達成された。
  • コード生成処理を共有インfraストラクチャーから分離することで、保守の負担が軽減され、新規アクセラレータの市場投入までの時間が短縮された。
  • 制御フローや非線形オペレータを含む複雑なモデルは、CPU やランタイム実行にオフロードしつつ、計算負荷の高いカーネルはアクセラレータで高速化することで、このアプローチが有効であることが示された。
  • FPGA、ASIC、一般用途アクセラレータを含む多様なハードウェアターゲットにおいて、このフレームワークは相互運用性と再利用性を示した。

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

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

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

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