DPU 向けのコンパイル - 3.0 日本語

Vitis AI ユーザー ガイド (UG1414)

Document ID
UG1414
Release Date
2023-02-24
Version
3.0 日本語

XIR ベース コンパイラは、量子化された Caffe、TensorFlow、TensorFlow2.x または PyTorch モデルを入力として受け取ります。1最初に、このプロセスの土台として、入力モデルを XIR 形式に変換します。異なるフレームワーク間におけるほぼすべての違いが排除され、XIR という統一表現に変換されます。その後、グラフ上にさまざまな最適化を適用し、個々の演算子を DPU で実行できるかどうかに基づいて、グラフを複数のサブグラフに分割します。必要に応じて、各サブグラフに対して、アーキテクチャを意識した最適化が適用されます。DPU サブグラフ用にコンパイラが命令ストリームを生成し、それをサブグラフに付け加えます。最後に、VART 用に必要な情報と命令を含む最適化済みのグラフが、コンパイル済みの xmodel ファイルへシリアライズされます。

XIR ベースのコンパイラは、エッジ Zynq UltraScale+ MPSoC プラットフォーム上では DPUCZDX8G シリーズ、Alveo プラットフォーム上では DPUCADF8H、高スループット アプリケーションに最適化された Alveo HBM プラットフォーム上では DPUCAHX8H、Versal エッジ プラットフォーム上では DPUCVDX8G と DPUCV2DX8G、Versal クラウド プラットフォーム上では DPUCVDX8H をサポートします。これらのプラットフォーム用の arch.json ファイルは、/opt/vitis_ai/compiler/arch にあります。

VAI_C で Caffe または TensorFlow モデルをコンパイルする手順は、前述した DPU と同じです。この場合、VAI_C を含む Vitis AI パッケージが正常にインストールされており、vai_quantizer でモデルが圧縮されていることが前提となります。

TensorFlow

TensorFlow では、vai_q_tensorflow が pb ファイル (quantize_eval_model.pb) を生成します。vai_q_tensorflow によって生成される pb ファイルは 2 つあります。quantize_eval_model.pb ファイルは、XIR ベースのコンパイラ用の入力ファイルです。コンパイルするには、次のコマンドを実行します。

vai_c_tensorflow -f /PATH/TO/quantize_eval_model.pb -a /PATH/TO/arch.json -o /OUTPUTPATH -n netname

出力は Caffe の出力と同じです。

コンパイル エラーを避けるため、TensorFlow モデルには入力テンソルの形状情報が含まれないことがあります。--options '{"input_shape": "1,224,224,3"}' のような追加オプションを指定して、入力テンソルの形状を指定できます。

TensorFlow 2.x

TensorFlow 2.x では、クオンタイザーが量子化済みモデルを hdf5 形式で生成します。

vai_c_tensorflow2 -m /PATH/TO/quantized.h5 -a /PATH/TO/arch.json -o /OUTPUTPATH -n netname

現在、vai_c_tensorflow2 は Keras 機能 API のみをサポートします。

PyTorch

PyTorch では、クオンタイザー NNDCT が量子化済みモデルを XIR 形式で直接出力します。vai_c_xir を使用してモデルをコンパイルします。

vai_c_xir -x /PATH/TO/quantized.xmodel -a /PATH/TO/arch.json -o /OUTPUTPATH -n netname
1 Caffe のサポートは Vitis AI 2.5 リリースから廃止されています。量子化された Caffe の詳細は、Vitis AI 2.0 ユーザー ガイドを参照してください。