18. [AMD Official Use Only - General]
MNISTの学習~AIコンパイル
Vitis-AIの開発の流れ
18
DNN
学習
量子化
AIコン
パイル
アプリケー
ション実装
学習済み
モデル
量子化
済み
モデル
コンパイル
済み
モデル
アプリ
ケーション
19. [AMD Official Use Only - General]
MNISTの学習~AIコンパイル
AIコンパイルとは
◼ 量子化済みモデルをDPUで処理するよう、DPUの命令シーケンス
に変換する。
◼ 演算の並列処理などの最適化も行う。
◼ DPUの種類によって生成する命令シーケンスが異なるため、DPU
アーキテクチャを指定する。ここで初めてハードウェア依存となるた
め、量子化までは異なるボードでも同じ手順となる。
19
https://japan.xilinx.com/products/design-tools/
vitis/vitis-ai.html
20. [AMD Official Use Only - General]
MNISTの学習~AIコンパイル
AIコンパイルのコマンド
◼ vai_c_tensorflow2 コマンドで行う。
◼ コマンドはDocker環境にインストール済み。
◼ コマンドの詳細はユーザーガイドを参照。
20
(vitis-ai-tensorflow2) Vitis-AI /workspace/mnist > vai_c_tensorflow2
-m logs/100/quantized.h5
-a /opt/vitis_ai/compiler/arch/DPUCZDX8G/ZCU102/arch.json
-o logs/100/ai_comp
-n mnist
オプション 説明
-m 量子化済みモデルファイル
-a アーキテクチャファイル
-o 出力先ディレクトリ
-n ネットワークモデルの名前
21. [AMD Official Use Only - General]
MNISTの学習~AIコンパイル
MNISTのAIコンパイルを実行
◼ Docker環境、Conda環境を起動する。
◼ AIコンパイル実行スクリプト(ai_comp.sh)を実行
◼ mnist.xmodel (コンパイル済みモデル)が生成されていることを
確認
21
(vitis-ai-tensorflow2) Vitis-AI /workspace/Vitis-AI/mnist > ./ai_comp.sh logs/100/
**************************************************
* VITIS_AI Compilation - Xilinx Inc.
**************************************************
:
[UNILOG][INFO] The compiled xmodel is saved to "/workspace/mnist/logs/100//ai_comp/mnist.xmodel"
[UNILOG][INFO] The compiled xmodel's md5sum is 46b2b76170d0c8a7b6edb5c4fd201646, and has been saved
to "/workspace/mnist/logs/100/ai_comp/md5sum.txt"
(vitis-ai-tensorflow2) Vitis-AI /workspace/mnist > ls logs/100/
ai_comp mnist.h5 quantized.h5
(vitis-ai-tensorflow2) Vitis-AI /workspace/mnist > ls logs/100/ai_comp/
md5sum.txt meta.json mnist.xmodel
22. [AMD Official Use Only - General]
アプリケーションの実装
Vitis-AIの開発の流れ
22
DNN
学習
量子化
AIコン
パイル
アプリケー
ション実装
学習済み
モデル
量子化
済み
モデル
コンパイル
済み
モデル
アプリ
ケーション
23. [AMD Official Use Only - General]
アプリケーションの実装
MPSoCのCPUはARMであるためクロスコンパイルが必要
クロスコンパイル環境構築(Docker環境は終了)
◼ Vitis-AI 内のhost_cross_compiler_setup.shを実行
petalinux_sdk_2021.2がダウンロードされる
◼ environment-setup-cortexa72-cortexa53-xilinx-linuxを
実行
環境変数が設定される
23
Vitis-AI
setup
mpsoc
VART
host_cross_compiler_setup.sh
petalinux_sdk_2021.2
environment-setup-cortexa72-cortexa53-xilinx-linux
<HOME>
ダウンロード
sysroot
24. [AMD Official Use Only - General]
アプリケーションの実装
アプリケーション(main.cc)のフロー
24
コンパイル済みモデル
読み込み
モデル情報(入出力テ
ンソルなど)取得
画像ファイル名
一覧取得
全画像に対して
繰り返し
画像データ取得
画像データを
バッファにコピー
FPGAで推論実行
推論結果表示
(上位5クラス表示)
精度表示
25. [AMD Official Use Only - General]
アプリケーションの実装
アプリケーションのビルド
◼ クロスコンパイル環境を設定する
◼ アプリケーションビルドスクリプト(build.sh)を実行する
◼ mnist_app が生成されていることを確認
25
acri@:~/workspace/mnist/mnist_app$ ls
build.sh src
acri@:~/workspace/mnist/mnist_app$ ./build.sh
No LSB modules are available.
No LSB modules are available.
aarch64-xilinx-linux-g++ (GCC) 10.2.0
:
acri@:~/workspace/mnist/mnist_app$ ls
build.sh mnist_app src