|
Apache TVMは、CPU、GPU、そして様々な機械学習アクセラレーションチップに適した、エンドツーエンドのディープラーニング構築フレームワークです。中国語版のTVMドキュメントは、→ https://tvm.hyper.ai/ をご覧ください。 著者: 顧永峰 この記事では、TEDD (Tensor Expression Debug Display) を使用してテンソル式を視覚化する方法を紹介します。 テンソル式はスケジューリングにプリミティブを使用します。個々のプリミティブは理解しやすいですが、組み合わせると複雑になります。テンソル式には、スケジューリングプリミティブの操作モデルが導入されています。
操作モデルは、データフローグラフ、スケジューリングツリー、およびIterVar関係グラフに基づいています。スケジューリングプリミティブは、これらの計算グラフ上で動作します。 TEDDは、指定されたスケジュールからこれら3つの計算グラフをレンダリングします。このチュートリアルでは、TEDDの使い方と、レンダリングされた計算グラフの解釈方法を説明します。 バイアスとReLUを使用して畳み込みを定義し、スケジュールするBias と ReLU を使用して、畳み込みのテンソル式の例を構築し、最初に conv2d、add、および relu TOPI を連結し、次に一般的な TOPI スケジュールを作成します。 TEDDを使用した計算グラフのレンダリング計算グラフをレンダリングすることで、計算とそのスケジュールを確認できます。このチュートリアルをJupyter Notebookで実行している場合は、以下のコメント行を使用してSVGグラフをレンダリングし、Notebookに直接表示できます。
スケジューリングツリー図は上記に示されています。範囲が利用できないという警告に注意してください。これは、範囲情報を推測するために `normalize()` を呼び出す必要があることを示しています。最初のスケジューリングツリーの確認はスキップしてください。`normalize()` の前後の計算グラフを比較することで、影響を理解することをお勧めします。
`IterVar` 行には、そのインデックス、名前、型、およびその他のオプション情報が含まれています。`W.shared` フェーズを例にとると、最初の行は名前「W.shared」とメモリ範囲「Shared」です。計算は `W(ax0, ax1, ax2, ax3)` です。最外側のループ `IterVar` は `ax0.ax1.fused.ax2.fused.ax3.fused.outer` で、`kDataPar` 内でインデックス 0 で、`threadIdx.y` にバインドされ、範囲は (min=0, ext=8) です。 図に示すように、インデックス ボックスの色を使用して IterVar のタイプを決定することもできます。 ステージが他のステージで計算されていない場合は、そのステージにはルート ノードへの直接のエッジがあります。それ以外の場合は、中間計算ステージで rx.outer にアタッチされている W.shared など、アタッチされている IterVar を指すエッジがあります。
例えば、W.shared には 3 つの分割ノードと 3 つの結合ノードがあります。残りのノードは、スケジュールツリーの IterVar と同じ行形式を持つ IterVar ノードです。ルート IterVar は、ax0 のようにどの変換ノードからも駆動されない IterVar です。リーフ IterVar はどの変換ノードからも駆動されず、インデックスが負でない値を持ちます。例えば、ax0.ax1.fused.ax2.fused.ax3.fused.outer で、インデックスは 0 です。 要約このチュートリアルでは、TEDDの使い方を説明します。TOPIで構築された例を用いて、基礎となるスケジュールを示します。このスケジュールは、スケジューリングプリミティブの前後で使用して、その効果を確認することができます。 Pythonソースコードをダウンロード: tedd.py Jupyter ノートブックをダウンロード: tedd.ipynb |
[TVMチュートリアル] TEDDによる可視化
関連するおすすめ記事
-
SegmentFault リリース | 2024年 中国で最も人気のある開発者向けテクノロジーイベント
-
デビッド・ベイカー氏が科学顧問を務め、スタートアップ企業が世界最大のタンパク質間相互作用データベースを立ち上げ、8回の資金調達を確保。
-
テレンス・タオは AI を使って方程式理論を証明し、19 日間で 99.99% の進捗を達成しました。論文はまもなくオンラインで公開されます。
-
Googleの新しいアーキテクチャは、Transformerのメモリボトルネックを突破し、注目を集めています。これは、Yao Classの卒業生であるZhong Peilin氏による最新作です。
-
Caiyun Xiaomeng V3.5がオンラインになりました!DCFormerアーキテクチャに基づく初の汎用大型モデルがリリースされました。
-
国産AIロボットがこんなに進化してるなんて…ピアノ弾いたり、お茶を入れたり、詠春拳を練習したり、さらには猫を撫でたりもできるなんて!?