AI エンジン グラフと PL カーネルをリンクしたら、AI エンジン グラフおよびカーネルと通信する PS で実行されるエンベデッド アプリケーションに焦点を移します。PS アプリケーションは、C/C++ で記述され、API 呼び出しを使用して AI エンジン グラフを初期化、実行、および閉じます ( 『AI エンジン カーネルおよびグラフ プログラミング ガイド』 (UG1079) のランタイム グラフ制御 API を参照)。
XRT API を使用したホスト コードのコンパイルとリンクの詳細は、 『AI エンジン ツールおよびフロー ユーザー ガイド』 (UG1076) の「Linux 用のホスト コードのコンパイルおよびリンク」を参照してください。
$CXX -std=c++17 -O0 -g -Wall -c \
-I./src -I${XILINX_VITIS}/aietools/include -o sw/host.o sw/host.cpp
$CXX -std=c++17 -O0 -g -Wall -c \
-I./src -I${XILINX_VITIS}/aietools/include -o
上記のほとんどのコマンド オプションは標準的なもので、g++
コマンドの説明にあります。次に、重要なオプションをリストします:
-
-std=c++17
-
-I./src
-
-I${XILINX_VITIS}/aietools/include
-
-o sw/host.o sw/host.cpp
Work/ps/c_rts ディレクトリから aie_control_xrt.cpp がコピーされます。
$CXX -lgcc -lc -lpthread -lrt -ldl \
-lcrypt -lstdc++ -lxrt_coreutil \
-L<platform_path>/sysroots/aarch64-xilinx-linux/usr/lib \
-o sw/host.exe sw/host.o sw/aie_control_xrt.o
上記のリンカー スクリプトでは、ADF API を XRT API と共に機能させるために必要な adf_api_xrt ライブラリがリンクされます。
xrt_coreutil
は、XRT および XRT API に必須のライブラリです。
g++
コマンドの説明には多数のオプションが含まれますが、その中でも次の表に示すオプションが重要です。
aiecompiler
の結果からの aie_control_xrt.cpp
を追加する必要があります。次に例を示します。$CXX -std=c++17 -O0 -g -Wall -c \
-I./src -I${XILINX_VITIS}/aietools/include -o sw/host.o sw/host.cpp
$CXX -std=c++17 -O0 -g -Wall -c \
-I./src -I${XILINX_VITIS}/aietools/include -o sw/aie_control_xrt.o Work/ps/
c_rts/aie_control_xrt.cpp
$CXX -ladf_api_xrt -lgcc -lc -lpthread -lrt -ldl \
-lcrypt -lstdc++ -lxrt_coreutil \
-L<platform_path>/sysroots/aarch64-xilinx-linux/usr/lib \
-L${XILINX_VITIS}/aietools/lib/aarch64.o -o sw/host.exe sw/host.o sw/
aie_control_xrt.o
option | 説明 |
---|---|
-ladf_api_xrt
|
ADF API に必要です。 XRT で AI エンジンを制御するために使用します。XRT で制御しない場合は、 |
-lxrt_coreutil
|
XRT API に必要です。 |
-L<platform_path>/sysroots/aarch64-xilinx-linux/usr/lib
|
|
-L${XILINX_VITIS}/aietools/lib/aarch64.o
|
|
-o
sw/host.exe
|