PetaLinux 2025.2 とBSP2025.1でVitis AIを起動して、DPUの画像認識のデモを試みました。
その上でDPUをZephyrからモニターして監視を行う予定でした。
ただ最近のPetaLinuxの環境でDPU+Vitis AIを動かすのは難しい旨を紹介します。
最近のPetaLinuxの環境でDPU+Vitis AIを動かすのは難しい話
PetaLinux 2025.2 とBSP2025.1でVitis AIを起動して、DPUの画像認識のデモを試みました。
その上でDPUをZephyrからモニターして監視を行う予定でした。
ただ最近のPetaLinuxの環境でDPU+Vitis AIを動かすのは難しい旨を紹介します。

3年前のPetaLinux+BSPの 2023環境では動作できていることは確認済です。
詳細は下記hackster.ioの記事でも書いています。
KV260でZephyrとDPUの使い方
下記でKV260でのZephyr(RTOS)を使ったDPUへのアクセスの手法を紹介しています。
DPUのIPに関しては最新環境でもOKでした。Vitis AI周辺が今回問題となっています

最新のVitis AI がNPU向け
最新のVitis AIはDPUではなく、NPUの動作がメインになっています。
最新のVitis AI のサポートページは下記です。
DPUがサポートされているVitis AIが古い
DPUがサポートされているVitis AI 3.5をPetaLinux+BSP2025環境で、簡単に動かせないです。
単純にPetaLinux環境でdnfでインストールするとエラーが発生しました。
PetaLinux+BSPの2023環境では、インストールできた下記コマンドでエラーが発生しました
|
1 2 3 4 5 |
sudo dnf install xrt packagegroup-petalinux-opencv wget https://www.xilinx.com/bin/public/openDownload<span class="pl-k">?</span>filename=vitis-ai-runtime-3.5.0.tar.gz -O vitis-ai-runtime-3.5.0.tar.gz tar -xzvf vitis-ai-runtime-3.5.0.tar.gz cd vitis-ai-runtime-3.5.0/2023.1/aarch64/centos/ sudo bash ./setup.sh |
参考までに2023環境でKV260でYOLOXをPetalinuxでテストした記事です。
KV260とPetalinuxでPyTorchのテスト(YOLOX+Python編)

対応案?
将来の対応案含めて2案を紹介します。途中で力つきましたが...
Vitis AI 3.5のレシピを追加して、2025環境でビルドする
Vitis AIのレシピ・手順に関しては3.5までのが公開されています。

これをPetaLinux+BSP 2025の環境でビルドする内容です。


しかし、試しましたがPetaLinuxのビルド時にエラーが発生します。
GCC 13以降の仕様変更により、<cstdint> ヘッダーの不足で std::int32_t が未定義エラーとなりビルドが失敗しています 。
|
1 |
tensor.hpp:41:45: error: 'int32_t' is not a member of 'std'; did you mean 'int32_t'? |
対応としては、必要な箇所に#
Vitis AI 3.5が使える、2023環境でビルドする
Vitis AI環境がサポートされていた、2023環境では問題なく動作します。
Vivado・Vitisを使って作成したDPUも問題なく動作して、Vitis AIを使った画像認識が出来ました。

実際にテストしたプログラム、モデルは下記に保存しています。
https://github.com/iotengineer22/zephyr-kv260/tree/main/src/fpga/zephyr_kv260_dpu/pytorch_test
|
1 2 3 4 5 6 |
sudo mkdir /lib/firmware/xilinx/zephyr_kv260_dpu sudo cp pl.dtbo shell.json /lib/firmware/xilinx/zephyr_kv260_dpu/ sudo cp design_1_wrapper.bit.bin /lib/firmware/xilinx/zephyr_kv260_dpu/ sudo mv /etc/vart.conf /etc/old_vart.conf sudo cp vart.conf /etc/ sudo reboot |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
xilinx-kv260-starterkit-20231:~$ sudo xmutil unloadapp remove from slot 0 returns: 0 (Ok) xilinx-kv260-starterkit-20231:~$ sudo xmutil loadapp zephyr_kv260_dpu zephyr_kv260_dpu: loaded to slot 0 xilinx-kv260-starterkit-20231:~$ cd zephyr_kv260_dpu/pytorch_test/ xilinx-kv260-starterkit-20231:~/zephyr_kv260_dpu/pytorch_test$ python pt-yolox.py yolox_nano_test, in PyTorch (1, 416, 416, 3) bboxes of detected objects: [[ 458.11553955 125.8078537 821.88452148 489.57681274] [ 40.24644089 0. 1239.75366211 720. ]] scores of detected objects: [0.56179011 0.11786249] Details of detected objects: [49. 60.] Pre-processing time: 0.0618 seconds DPU execution time: 0.0129 seconds Post-process time: 0.0459 seconds Total run time: 0.1206 seconds Performance: 8.29341616920981 FPS |
デモ動画が下記となっています。
ただしZephyrでモニターしようとすると、エラーが発生していました
PetaLinux2025用に作成したdtsiがそのままでは、2023のVerでは使えなかったようです。
|
1 2 3 |
root@xilinx-kv260-starterkit-20231:~# echo zephyr.elf > /sys/class/remoteproc/remoteproc0/firmware -sh: /sys/class/remoteproc/remoteproc0/firmware: No such file or directory root@xilinx-kv260-starterkit-20231:~# |
下記内容で紹介したPetalinux側から再度弄る必要があり、(面倒だったので)諦めました。
KV260のR5コアにZephyr(RTOS)を実装してみる

まとめ
PetaLinux 2025.2 とBSP2025.1でVitis AIを起動して、DPUの画像認識のデモを試みました。
その上でDPUをZephyrからモニターして監視を行う予定でした。
ただ最近のPetaLinuxの環境でDPU+Vitis AIを動かすのは難しい旨を紹介しました。

コメント