Cortex-A72 プロセッサ用のエンベデッド アプリケーションのコンパイル - 2023.2 日本語

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

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++ コマンドの説明には多数のオプションが含まれますが、その中でも次の表に示すオプションが重要です。

ホスト コードに ADF API が使用されている場合、ホスト コードをコンパイルするには、ADF API に関連するインクルード ファイルやライブラリ ファイルのほか、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
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
表 1. コマンド オプション
option 説明
-ladf_api_xrt ADF API に必要です。

XRT で AI エンジンを制御するために使用します。XRT で制御しない場合は、-ladf_api を使用してパス -L${XILINX_VITIS}/aietools/lib/aarch64none.so を指定してください。詳細は、 『AI エンジン ツールおよびフロー ユーザー ガイド』 (UG1076) の「ベアメタル用のホスト プログラミング」を参照してください。

-lxrt_coreutil XRT API に必要です。
-L<platform_path>/sysroots/aarch64-xilinx-linux/usr/lib  
-L${XILINX_VITIS}/aietools/lib/aarch64.o  
-o sw/host.exe