プレゼンテーションでは、MODEL (model.prototxt)、WEIGHT (model.caffemodel)、および QUANT_INFO (例: 量子化情報ファイル) があることを前提としてします。基本の Caffe コンパイラ インターフェイスには、シンプルなヘルプがあります。
vai_c_caffe -help
**************************************************
* VITIS_AI Compilation - Xilinx Inc.
**************************************************
usage: vai_c_caffe.py [-h] [-p PROTOTXT] [-c CAFFEMODEL] [-a ARCH]
[-o OUTPUT_DIR] [-n NET_NAME] [-e OPTIONS]optional arguments:
-h, --help show this help message and exit
-p PROTOTXT, --prototxt PROTOTXT
prototxt
-c CAFFEMODEL, --caffemodel CAFFEMODEL
caffe-model
-a ARCH, --arch ARCH json file
-o OUTPUT_DIR, --output_dir OUTPUT_DIR
output directory
-n NET_NAME, --net_name NET_NAME
prefix-name for the outputs
-e OPTIONS, --options OPTIONS
extra options
このインターフェイスの主な目標は、異なるデザインで最小限の措置を指定することです。ここでは、最小限の入力でスタートする、DPU-V1 デザイン用の実行方法を説明します。
vai_c_caffe.py -p MODEL -c WEIGHT -a vai/dpuv1/tools/compile/arch.json -o WORK -n cmd -e OPTIONS
MODEL、WEIGHT、および出力の書き込み先を指定します。生成するコード名 (cmd など) を指定してください。これにより、WORK ディレクトリに 4 つの出力ファイルが作成されます。
compiler.json quantizer.json weights.h5 meta.json
これがランタイムとの主な動作です。JSON ファイルは 3 つあります。実行する手順に関する情報が含まれているファイルと、量子化の情報 (スケール/シフトの方法など) が含まれているファイルのほかに、arch.json ファイルから作成される meta.json ファイルがあります。これは、基本的にランタイム情報を指定する辞書ファイルです。このユーザー ガイド作成時では、cmd 名が必要ですが、ランタイムでは使用されません。
DPU のほかのバージョンとの主な違いは、オプションを使用して QUANT_INF0 を指定する必要があります。
-e "{'quant_cfgfile' : '/SOMEWHERE/quantize_info.txt'}"
オプション フィールドは、Python の辞書を表す文字列です。この例では、第 4 章で説明した個別に計算された量子化ファイルの場所を指定します。コンテキストでは、ほかの DPU バージョンはこの情報をモデルまたは重みのいずれかで構築します。このため、拡張モデルはバニラ Caffe モデルではないため、これらを実行するにはカスタム Caffe が必要です。DPU-V1 は、ネイティブ Caffe (およびカスタム Caffe) を使用して実行します。