フォーラムへの返信
- 投稿者投稿
- ando参加者
ご要望について正確に理解したいのですが、どのサーバーでも良いということは、U200やU250などの実機でVitis AIを動かしたいというよりは、実機は不要でVitis AIのコマンド(コンパイラ等)を使える環境があれば良いのでしょうか。
ando参加者vaitraceは引数にユーザープログラムを渡して実行しますが、sudoでvaitraceを実行するとユーザープログラムはroot権限で実行されてしまうように思います。そうであれば対応は難しそうです。
ando参加者現在はas004、as005(サービス停止中)にVitis AI 2.5がインストールされています。他のサーバーにはインストールされていません。U200とU250もVitis AIのサポート対象ですが、ACRiルームのU200とU250はプラットフォームが古いためインストールできていません。U200、U250のプラットフォームの更新は予定していましたが特に要望がなかったため後回しになっています。
すべてのサーバーでVitis AIを動かしたいのには何か理由がありますでしょうか。U200とU250で動くDPU IPは同じですので、セットアップやメンテナンスの作業量を考えると、U250だけにインストールするのが現実的かと考えています。またU280-ES1でVitis AIを動かすことはできません。
vaitraceにつきましては、少なくとも、Dockerコンテナにホストのdebugfsへのアクセスを許可することと、Dockerコンテナ内の一般ユーザーにsudoでvaitraceを実行する権限を与えることが必要になりそうです。リスクがないことが分かれば対応できますが、他の作業もあり、確認に時間を要しそうです。
ando参加者確認したところホームディレクトリの容量が上限の25GBに達してしまっているようです。これがRDP接続できない原因となっている可能性があります。SSHでログインしてホームディレクトリを整理してみていただけないでしょうか。
as002では/scratchを一時的なデータ置き場として用意していますのでこちらもご利用ください。
ando参加者確かに03-using_densenetxがちょうど良かったですね。気がついていませんでした。
VCK5000の調査は時間がかかりそうなのでU50(as004)でVitis AI 2.5を動かせるようにしました。
以下でうまく動作させることができましたのでお試しください。cd /scratch
cp -a /tools/repo/Xilinx/Vitis-AI-Tutorials .
cd Vitis-AI-Tutorials# Copy pretrained model
git checkout 1.1
cp Design_Tutorials/03-using_densenetx/files/pretrained/k_model.zip /scratch/# Checkout 1.4
git checkout 1.4
cd Design_Tutorials/03-using_densenetx/files# Step 0
source /opt/vitis_ai/setup.sh
select-dpusource 0_setenv.sh
# Step 1 (skip training)
mkdir -p build/keras_model
unzip /scratch/k_model.zip -d build/keras_model# Step 2
source 2_keras2tf.sh# Step 3
mkdir -p ~/.keras/datasets
cp /tools/data/cifar-10-python.tar.gz ~/.keras/datasets/cifar-10-batches-py.tar.gz
source 3_eval_frozen.sh# Step 4
source 4_quant.sh# Step 5
source 5_eval_quant.sh# Step 6
source 6_compile.sh u50# Step 7
source 7_make_target.sh u50cd build/target_u50
python app_mt.py -t 4ando参加者おまたせしてしまいました。ACRiブログの記事が公開されました。
https://www.acri.c.titech.ac.jp/wordpress/archives/13108ando参加者試したところVitis AIのバージョンの違い(1.1 vs 2.5)により、app_mt.pyが動作しませんでした。このチュートリアルを動かすにはapp_mt.pyを修正する必要があります。
Vitis AI 1.4が対象のチュートリアルであればPython APIの互換性があるようです。以下のチュートリアルを試してみましたが、segmentation faultが出てしまい最後の実行までできませんでした。。もう少し調べてみます。
https://gitenterprise.xilinx.com/swm/Vitis-AI-Tutorials/tree/1.4/Design_Tutorials/02-MNIST_classification_tfcd /scratch
cp -a /tools/repo/Xilinx/Vitis-AI-Tutorials .
cd Vitis-AI-Tutorials
git checkout 1.4
cd Design_Tutorials/02-MNIST_classification_tf/filessource /opt/vitis_ai/setup.sh
select-dpusource 0_setenv.sh
mkdir -p ~/.keras/datasets
cp /tools/data/tf-keras-datasets/mnist.npz ~/.keras/datasets/source 1_train.sh
source 2_freeze.sh
source 3_eval_frozen_graph.sh
source 4_quant.sh
source 5_eval_quant_graph.shmkdir -p build/compile
vai_c_tensorflow \
–frozen_pb ./build/quantize/quantize_eval_model.pb \
–arch /opt/vitis_ai/compiler/arch/DPUCVDX8H/VCK50008PE/arch.json \
–output_dir ./build/compile \
–net_name customcnnmkdir -p build/target
python generate_images.py \
–dataset=mnist \
–image_dir=build/target/images \
–image_format=jpg \
–max_images=10000cd build/target
mkdir model_dir
cp ../compile/customcnn.xmodel model_dir/
cp ../../application/app_mt.py .python app_mt.py
Command line options:
–image_dir : images
–threads : 1
–model : model_dir/customcnn.xmodel
Segmentation fault (コアダンプ)ando参加者サーバー側には特にエラーに関するログは残っていませんでした。
sshでログインはできますでしょうか。ホームディレクトリにエラーに関するログが残っていないでしょうか。リモートデスクトップ接続ができない場合、vncserverコマンドを使ってご自身でVNCサーバーを立ててGUIに接続する方法もあります。
ando参加者参考にされているチュートリアルがU50向けのため実行スクリプトに修正が必要なのかもしれません。今週は対応できませんが見てみますのでお時間ください。
U50はVitis AIでサポートされなくなったためas004からVitis AIは削除してしまいました。
ando参加者今月中を目処にVCK5000を使うチュートリアルをACRiブログで公開予定です。少々お待ちください。
ando参加者export XCL_EMULATION_MODE=
とするのが良くないようで、
unset XCL_EMULATION_MODE
として数秒待つと解消したとのことです。
試してみてください。ando参加者実行されたコマンドは問題なさそうに思います。
「No devices found」のエラーはこちらでも再現しました。
ACRiルームの環境の問題だと思います。調査してみます。ando参加者as004で実行されていますでしょうか。
試してみたところ一回目の実行ではエラーが出てしまいましたが、二回目は実行できました。ando@as004:/scratch/Vitis-Tutorials/Getting_Started/Vitis/example/u200/hw
$ ./app.exe
INFO: Found Xilinx Platform
INFO: Loading ‘vadd.xclbin’
terminate called recursively
terminate called after throwing an instance of ‘__gnu_cxx::recursive_init_error’
what(): 中止 (コアダンプ)
ando@as004:/scratch/Vitis-Tutorials/Getting_Started/Vitis/example/u200/hw
$ ./app.exe
INFO: Found Xilinx Platform
INFO: Loading ‘vadd.xclbin’
TEST PASSEDando参加者XCL_EMULATION_MODE環境変数がhw_emuに設定された状態のまま、ハードウェア向けにビルドしたxclbinを使ってappを実行されているのではないかと思います(チュートリアルの通りに進めると最後のステップでそうなってしまうと思います。)。
appを実行する前にXCL_EMULATION_MODEをクリアしてみてください。
export XCL_EMULATION_MODE=
./app.exeando参加者リクエストありがとうございます。最新に更新しました。簡単な動作確認はしていますが何か問題がありましたらお知らせいただけると助かります。
- 投稿者投稿