KRSをDockerコンテナに閉じる でビルドしたKRSのイメージを使用して、Kria KV260上で正常に動作するのかを確認した。 とりあえず offloaded_doublevadd_publisher を正常に起動できるのかを確認した。
動作環境
- OS : Ubuntu 20.04.3 LTS(64 bit)
- Vivado : 2022.1
- Vitis : 2022.1
- Vitis_HLS : 2022.1
- ROS2 : Humble
- ボード : Kria KV260
zoclのロード
ここではアクセラレーションカーネルを管理・実行するために XRT(Xilinx Runtime) を使用する。 XRTの実行のためにはカーネルモジュールである zocl が必要となる。 以下のコマンドを実行し、 zocl がロードされているのかを確認する。
lsmod
ロードされていなかった場合には、以下のコマンドを実行し zocl をロードする。
sudo insmod `find /lib/modules -name zocl.ko`
Kria KV260上でアクセラレーションカーネルを実行する
DFX(Dynamic Function eXchange)-MGR は、FPGAバイナリと、実行に必要なデバイスツリーなどを含む PAC (Platform Assets Container)を管理するためのツールである。 後述する ros2 acceleration の一部のコマンドはDFXのラッパーである。
以下のコマンドを実行し、KRSの設定を読み込む。
sudo su
source /krs_ws/local_setup.bash
以下のコマンドを実行し、DFX-MGRを使用して PAC を読み込む。
ros2 acceleration stop
ros2 acceleration start
以下のコマンドを実行し、DFX-MGRを使用してアクセラレーションカーネルの一覧を確認する。
ros2 acceleration list
以下のコマンドを実行し、 offloaded_doublevadd_publisher を選択する。
ros2 acceleration select offloaded_doublevadd_publisher
以下のコマンドを実行し、 offloaded_doublevadd_publisher が0番スロットにロードされていることを確認する。
# ros2 acceleration list
Accelerator Accel_type Base Base_type #slots(PL+AIE) Active_slot
k26-starter-kits XRT_FLAT k26-starter-kits XRT_FLAT (0+0) -1
offloaded_doublevadd_publisher XRT_FLAT offloaded_doublevadd_publisher XRT_FLAT (0+0) 0,
以下のコマンドを実行し offloaded_doublevadd_publisher を起動する。
# cd /krs_ws/lib/offloaded_doublevadd_publisher
# ros2 run offloaded_doublevadd_publisher offloaded_doublevadd_publisher
INFO: Found Xilinx Platform
INFO: Loading 'vadd_offloaded.xclbin'
Nov 19 09:23:59 xilinx-k26-som-20221 kernel: [drm] User buffer is not physical contiguous
[INFO] [1661861321.498813478] [offloaded_doublevadd_publisher]: Publishing: 'vadd finished, iteration: 0'
[INFO] [1661861322.196097656] [offloaded_doublevadd_publisher]: Publishing: 'vadd finished, iteration: 1'
[INFO] [1661861322.893097787] [offloaded_doublevadd_publisher]: Publishing: 'vadd finished, iteration: 2'
[INFO] [1661861323.589923438] [offloaded_doublevadd_publisher]: Publishing: 'vadd finished, iteration: 3'
[INFO] [1661861324.286790272] [offloaded_doublevadd_publisher]: Publishing: 'vadd finished, iteration: 4'
[INFO] [1661861324.983895650] [offloaded_doublevadd_publisher]: Publishing: 'vadd finished, iteration: 5'