環境初期化手順 - takgto/utokyo-chipathon2023 GitHub Wiki

授業で使用するPCとFPGAを初期化する手順です。

注意:PC、FPGAの環境が完全に綺麗さっぱりになってしまいます。保存しておきたいデータは予め移しておきましょう。

PCのクリーンアップ

1. 授業データを削除する。

Windowsのクリーンアップを行います。 デスクトップとピクチャフォルダの余計なファイルを削除します。
ダウンロードフォルダにweightsフォルダだけ置きます。(yolov3-***.cfgyolov3-***_best.weightsが入っています)
Googleアカウントにログインしていたらログアウトしてプロファイルを削除してください。
最後にごみ箱を空にします。

2.my_tf_calib4.npyを退避する

次にUbuntuのクリーンアップを行います。
ここからはUbuntuコンソールにコマンドを入力します。
UbuntuのVitis-AIディレクトリにあるmy_tf_calib4.npyをホームに移動します。

ubuntu小

mv ~/Vitis-AI/yolov3-dlab/scripts_tf2/my_tf_calib4.npy ~

3. Vitis-AIディレクトリを削除する

ubuntu小

rm -rf Vitis-AI

rm: remove write-protected regular file ~?と訊いてきた時は、yと入力してEnterを押してください。
その他Ubuntu側に余計なファイルがある場合は削除します。ディレクトリを削除したい場合はrm -r <ディレクトリ名>、ファイルを削除したい場合はrm <ファイル名>のコマンドを使ってください。
my_tf_calib4.npyは削除しないでください。誤って削除した場合はTAに声をかけてください。

Vitis-AIをクローンします。

ubuntu小

git clone https://github.com/Xilinx/Vitis-AI -b 2.5 --depth 1

Vitis-AIディレクトリに移動してyolov3-dlabとedge-evalとyolov3_edgeをクローンします。

ubuntu小

cd Vitis-AI
# Vitis-AIディレクトリで実行する
git clone https://github.com/takgto/edge-eval
git clone https://github.com/takgto/yolov3-dlab
git clone https://github.com/takgto/yolov3_edge.git

4. workにcfgを置く

Vitis-AI/yolov3-dlab/workディレクトリにyolov3-tiny.cfgyolov3-512.cfgを置きます。 yolov3-608.cfgyolov3-obj.cfg(416のcfg)は最初から入っています。

ubuntu小

cp /mnt/c/Users/x-nics-kuroda/Downloads/work_best_weights/yolov3-tiny.cfg /home/x-nics-kuroda/Vitis-AI/yolov3-dlab/work

ubuntu小

cp /mnt/c/Users/x-nics-kuroda/Downloads/work_best_weights/yolov3-512.cfg /home/x-nics-kuroda/Vitis-AI/yolov3-dlab/work

5. my_tf_calib4.npyを置く

退避していたmy_tf_calib4.npyを元に戻します。
以下のコマンドを入力します。

ubuntu小

mv ~/my_tf_calib4.npy ~/Vitis-AI/yolov3-dlab/scripts_tf2/my_tf_calib4.npy

6. known_hostsを削除する

PCに残っている今回の基板との接続で生成されたSSH鍵を削除します。
x-nics-kuroda/.ssh/known_hostsはWindows側とUbuntu側にあるので両方削除します。

Windows:
C:\Users\x-nics-kuroda\.ssh\known_hostsを開き、192.168.1.100から始まる行を削除する。 または ● C:\Users\x-nics-kuroda\.ssh\known_hostsファイルを削除する。

Ubuntu:

ubuntu小

ssh-keygen -R 192.168.1.100

これでPCのクリーンアップは完了です。ありがとうございました。

基板のクリーンアップ

0. 授業データを保存する

基板にSerialケーブルとイーサケーブルを接続し、電源を入れます。 Serialコンソールに以下を入力してください。

serial小

ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up

~/Vitis-AI/examples/VART/yolov3のディレクトリを回収します。

ubuntu小

scp -r [email protected]:~/Vitis-AI/examples/VART/yolov3 .

もしscpがうまく動かない時は-Oのオプションをつけて試してください。

SSHで接続できない場合は以下のコマンドをUbuntuコンソールに入力してください。SSH鍵を削除します。

ubuntu小

ssh-keygen -R 192.168.1.100

また、Serialで~/Vitis-AI/examples/VARTのディレクトリの中身を確認します。

serial小

ls ~/Vitis-AI/examples/VART

yolov3XXXXという名前のディレクトリがあればそれも回収します。

1. SDカードにOSを焼く

次に、基板のクリーンアップを行います。 SDカードをフォーマットをします。この時、容量が77.5MB程度のことを確認します。

balenaEtcherを起動します。
balenaEtherのFlash from fileで、xilinx-kv260-dpu-v2022.1-v2.5.0.img.gzを選択します。
Select targetでMicroSDカードを選択します。
Flash!を選択します。
15分程かかります。

2. FPGA起動

MicroSDを差してFPGAを起動してください。シリアルケーブルとイーサケーブルを接続します。
MobaXTermでSerialでFPGAに接続します。FPGAがしっかり起動すればOKです。

Serialコンソールに以下を入力してください。

serial小

ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up

これでifconfigしたときに、ipアドレスが192.168.1.100になっていればOKです。
SSHで接続できない場合は以下のコマンドをUbuntuコンソールに入力してください。SSH鍵を削除します。

ubuntu小

ssh-keygen -R 192.168.1.100

3. FPGAの環境構築

以下をUbuntuコンソールで実行してください。 最初のscp init260.sh [email protected]:/home/rootを実行するとAre you sure you want to continue connecting (yes/no/[fingerprint])?と訊かれるのでyesと入力してください。その後[email protected]'s password:と訊かれるのでrootを入力してください。

edge-evalのC++ソースコードを転送します。Ubuntuコンソールに入力します。

ubuntu小

cd ~/Vitis-AI/edge-eval
scp init260.sh [email protected]:/home/root
sshpass -p "root" scp aliases [email protected]:/home/root
sshpass -p "root" scp -r data [email protected]:/home/root
sshpass -p "root" scp cpp/* [email protected]:/home/root/Vitis-AI/examples/Vitis-AI-Library/samples/yolov3
sshpass -p "root" scp -r video [email protected]:/home/root/Vitis-AI/examples/Vitis-AI-Library/samples/yolov3
sshpass -p "root" scp -r mAP [email protected]:/home/root/Vitis-AI/examples/Vitis-AI-Library/samples/yolov3
sshpass -p "root" scp -r dpu_yolov3 [email protected]:/usr/share/vitis_ai_library/models

もしscpがうまく動かない時は-Oのオプションをつけて試してください。

Vitis-AI/examples/VARTにyolov3ディレクトリを作成します。Serialコンソールに入力します。

SSH

cd ~/Vitis-AI/examples/VART
mkdir yolov3

yolov3_edgeのC++ソースコードを転送します。Ubuntuコンソールに入力します。

ubuntu小

cd ~/Vitis-AI/yolov3_edge
sshpass -p "root" scp -r cpp/* [email protected]:/home/root/Vitis-AI/examples/VART/yolov3

もしscpがうまく動かない時は-Oのオプションをつけて試してください。

授業中に./make.sh ~を行ったときに正常にmakeできないことがあります。(VARTのみ)その時はC++ソースコードがバイナリになっています。
その時は、上記のコマンドを使って/home/root/Vitis-AI/examples/VART/yolov3のファイルを更新してください。

4. dpuの最適化をする

次のコマンドをMobaXtermのSerialコンソールに入力します。

serial小

cd

serial小

./dpu_sw_optimize/zynqmp/zynqmp_dpu_optimize.sh

5. 画像推論のmakeファイルに実行権限を与える

次のコマンドをMobaXtermのSerialコンソールに入力します。

serial小

chmod +x ~/Vitis-AI/examples/Vitis-AI-Library/samples/yolov3/make.sh

6. VARTのmake.shがバイナリになっていないか確認する

次のコマンドをMobaXtermのコンソールに入力してmake.shを開きます。

serial小

cd ~/Vitis-AI/examples/VART/yolov3/
vi make.sh

make.shの中身が正常に見られたらOKです。

これで基板のクリーンアップ完了です。

PCのクリーンアップ確認

まずはクリーンアップ後のPCに不要なデータがないことを確認します。

次に、Dockerを確認します。WindowsのDockerをダブルクリックします。立ち上がったらUbuntuコンソールに以下のコマンドを入力してDockerのConda環境が立ち上がることを確認します。

ubuntu小

cd Vitis-AI
docker images
./docker_run.sh my_vitis-ai-cpu:latest
conda activate vitis-ai-tensorflow2

Dockerのコンソールで、生成ファイルがないことを確認します。

ubuntu小

ls /workspace/yolov3-dlab/keras_model
ls /workspace/yolov3-dlab/yolov3_quantized2

README.mdだけあればOKです。

★ swan環境に追加する ★

VitisとPetaLinuxをインストールしておきます。Vivado, Vitis install

以下のコマンドをインストールします。

sudo apt install cmake
sudo apt update
sudo apt install build-essential
sudo apt install libidn11

sudo apt-get install xvfb

sudo apt-get install unzip
sudo apt-get install zip

libidn11がunlocaleで入らない時。

sudo apt update
cd ~/Downloads
wget http://mirrors.kernel.org/ubuntu/pool/main/libi/libidn/libidn11_1.33-2.2ubuntu2_amd64.deb
sudo apt install ./libidn11_1.33-2.2ubuntu2_amd64.deb

xsct ファイルを修正します。
→/tools/Xilinx/Vitis/2022.1/bi/xsctの241行目付近 ifの行とelse項を(4行)#でコメントアウト。(条件なしでif条件の処理が走るように)

⚠️ **GitHub.com Fallback** ⚠️