|
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による可視化
関連するおすすめ記事
-
5分間のライトニングプレゼンテーションの準備方法:COSCon'24 ライトニングプレゼンテーション登録情報
-
アント・ファイナンシャルのユ・ビン氏:AIを活用したクラウド製品のアップグレードでAIネイティブ時代への移行を加速
-
インターンシップ資格+奨学金+プロジェクト体験!大手企業3社主催のAIサマーキャンプ開催!
-
吉利が一夜にして統合、時価総額33億元のスマートドライビング企業が誕生。
-
レノボグループの第1四半期純利益は65%急増し、AI PCの出荷台数は前四半期比228%増加した。
-
BaiduがiRAGを立ち上げた。ロビン・リー氏は、AI業界における最大の変化は、大規模モデルに対する幻想が大きく払拭されたことだと述べた。