[論文レビュー] TVM: An Automated End-to-End Optimizing Compiler for Deep Learning
TVMは、グラフレベルとオペレータレベルの最適化を組み合わせ、機械学習ベースのコストモデルによる自動スケジューリングにより、CPU、GPU、およびアクセラレータ間で性能ポータブルなディープラーニングワークロードを実現するエンドツーエンドコンパイラです。
There is an increasing need to bring machine learning to a wide diversity of hardware devices. Current frameworks rely on vendor-specific operator libraries and optimize for a narrow range of server-class GPUs. Deploying workloads to new platforms -- such as mobile phones, embedded devices, and accelerators (e.g., FPGAs, ASICs) -- requires significant manual effort. We propose TVM, a compiler that exposes graph-level and operator-level optimizations to provide performance portability to deep learning workloads across diverse hardware back-ends. TVM solves optimization challenges specific to deep learning, such as high-level operator fusion, mapping to arbitrary hardware primitives, and memory latency hiding. It also automates optimization of low-level programs to hardware characteristics by employing a novel, learning-based cost modeling method for rapid exploration of code optimizations. Experimental results show that TVM delivers performance across hardware back-ends that are competitive with state-of-the-art, hand-tuned libraries for low-power CPU, mobile GPU, and server-class GPUs. We also demonstrate TVM's ability to target new accelerator back-ends, such as the FPGA-based generic deep learning accelerator. The system is open sourced and in production use inside several major companies.
研究の動機と目的
- 多様なハードウェアバックエンド間での性能ポータブルなDLワークロードの最適化上の課題を特定する。
- 高レベルDLプログラムを最適化された低レベルコードへマッピングするエンドツーエンドのコンパイルスタックを開発する。
- テンソル表現言語とスケジュール空間を介して、高レベルと低レベルの jointlyな最適化を可能にする。
- 学習ベースのコストモデルを用いてオペレータ最適化を自動化し、広大な最適化空間を探索する。
- CPU、GPU、FPGAベースアクセラレータを跨ぐポータビリティと性能を実証する。
提案手法
- 計算とハードウェアの内在機能を分離するためのテンソル表現言語と変換プリミティブを導入する。
- Halideに触発された compute/schedule の分離を拡張して新しいGPUとアクセラレータをサポートする。
- 低レベル化されたプログラムの性能を予測するMLベースのコストモデルに導 guided な自動最適化フレームワークを構築する。
- declarative tensor intrinsics と tensorizeプリミットを介して、計算をハードウェアの内在機能へテンソル化する。
- 多様なメモリ階層を最適化するためのメモリ遅延隠しと明示的なメモリスコープを実装する。
- TensorFlow、MXNet、PyTorchなどのフレームワークからハードウェア特化の最適化コードへモデルをコンパイルするエンドツーエンドスタックを提供する。
実験結果
リサーチクエスチョン
- RQ1TVMは、ベンダー特有のオペレータライブラリを使わずに、サーバーGPU、組み込みGPU/CPU、FPGAベースのアクセラレータ間でポータブルで競争力のある性能を実現できるか。
- RQ2MLガイド付き最適化は、ブラックボックス自動調整と比較して大規模なオペレータ/スケジュール探索空間をどれだけ効果的に探索できるか。
- RQ3グラフレベルの最適化(フュージョン、データレイアウトなど)とオペレータレベルのコード生成を組み合わせた場合、さまざまなバックエンドでどの程度の利得が得られるか。
- RQ4 TPUライクなデバイスやFPGAなどの特殊なアクセラレータにおいて、レイテンシ隠しとテンソル化がパフォーマンスにどのように影響するか。
- RQ5TVMは深度方向畳み込み、低精度演算などの新興ワークロードや新しいアクセラレータをサポートしつつ、性能ポータビリティを維持できるか。
主な発見
- TVMはバックエンド間でポータブルな性能を実現し、既存のフレームワーク上のハンドチューニング済みライブラリより1.2×〜3.8×のスピードアップを達成している。
- オペレータフュージョンとグラフ最適化はメモリアクセスを大幅に削減し、実行時の性能を向上させる。
- 仮想スレッドと明示的なメモリスコープを用いたレイテンシ隠しにより、計算リソースの利用率が向上した(例: FPGAアクセラレータ上のResNetでピークが70%から88%に改善)。
- テンソル化はハードウェアの内在機能とスケジュールを分離し、新しいアクセラレータのサポートを容易にし、マイクロカーネルで最大1.5×のスピードアップを達成。
- MLベースのコストモデルにより最適化されたオペレータ実装の発見が高速化され、構成の速度と品質の両方でブラックボックス自動調整を上回る。
- このシステムはオープンソースであり産業界で展開されており、CPU、GPU、およびFPGAベースのアクセラレータ間で実際的な実用性を示している。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。