フォーラムへの返信
- 投稿者投稿
ando
参加者Alveoのボードファイルが申請不要でダウンロードできるようになりましたのでお知らせいたします。
各カードのページからGetting Started → Vivado Design Flowと辿るとダウンロードリンクが表示されます。
https://www.xilinx.com/products/boards-and-kits/alveo/u200.html#vivadoando
参加者以下のようにLIBRARY_PATHを設定することで解消するようですのでお試しください。
export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH
ando
参加者ACRiルームのAlveoはVitisフローのみサポートしています。そのためVivadoフローのためのボードファイルのインストールは行っておりません。
一方でACRiルームのサーバーをVivadoフローの開発環境として使っていただくことに制限は設けておりませんので、ご自身でボードファイルを入手し、サーバーにアップロードしてVivadoで開発を行っていただくことは問題ありません。
Alveoのボードファイルはこちらのページで申請するとダウンロードできます。
https://www.xilinx.com/member/alveo-vivado.htmlTclコンソールで以下のように入力することでボードファイルのパスを設定でき、プロジェクト作成時にボードを選択できるようになります。
set_param board.repoPaths [list “/home/xxx/boards/Xilinx/au200/1.2”]
ando
参加者ご報告ありがとうございます。またご不便をおかけしました。
先週4/3~5にACRiルームのメンテナンスがあり、Alveo系サーバーのプラットフォームやツールの更新作業を行いました。その際にUbuntu環境の各種パッケージのバージョンが上がりリモートデスクトップ接続に不具合が発生していたことが分かりました。バージョンを戻すことで対策し、リモートデスクトップ接続できること確認しましたのでもう一度お試しください。
更新後のプラットフォームの情報はこちらをご参照ください。
https://gw.acri.c.titech.ac.jp/wp/manual/alveo-server
最新のプラットフォームではVitis 2022.2をお使いいただく必要があると思いますが詳細はまだ十分に確認できておりません。分かり次第追記する予定です。ando
参加者ご説明いただきありがとうございます。なるべくご希望に沿うようにしたいと思いますがお待たせしてしまうかもしれません。
ちなみにVitis AI 2.5は公式にはACRiルームのU50、VCK5000(gen4x8)をサポートしていません(カードやプラットフォームが異なるため)。このため独自にDPUをビルドして使用しています。実装されているPE数や動作周波数が公式のものとは異なりますので、スループットやレイテンシを評価される際はご留意ください。U250では公式のDPUを使用できる見込みです。
公式
U50LV : DPUCAHX8H, 10PE(batch=5), 275MHz
VCK5000 : DPUCVDX8H, 8PE(batch=8), 350MHz
ACRiルーム
U50 : DPUCAHX8H, 2PE(batch=1), 300MHz
VCK5000 : DPUCVDX8H, 8PE(batch=8), 328MHzando
参加者ご要望について正確に理解したいのですが、どのサーバーでも良いということは、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ブログで公開予定です。少々お待ちください。
- 投稿者投稿