x86 用のコンパイルおよびリンク - 2023.2 日本語

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語
ヒント: ツールを実行する前に、Vitis 環境の設定 で説明されるように、コマンド シェルまたはウィンドウを設定します。

x86 用のコンパイルおよびリンクは、標準 g++ フローに従います。唯一の要件は、XRT ヘッダー ファイルを含め、XRT 共有ライブラリをリンクすることです。ホスト アプリケーションの各ソース ファイルは、g++ コンパイラを使用してオブジェクト ファイル (.o) にコンパイルされます。g++ -l オプションを使用すると、生成されたオブジェクト ファイル (.o) がザイリンクス ランタイムの共有ライブラリとリンクされ、実行可能なホスト プログラムが作成されます。

ホスト アプリケーションは、ザイリンクス ランタイム (XRT) ネイティブ C++ API を使用してネイティブ C++ で記述できます。必要なインクルード ファイルとライブラリは、ホスト アプリケーションが使用する API と、ホスト コードの特定の要件によって異なります。

ネイティブ XRT API を使用するには、ホスト アプリケーションが xrt_coreutil ライブラリにリンクしている必要があります。コマンド ラインでは、次のコンパイルとリンクをまとめた例で示すように、いくつかの異なる設定が使用されます。

$CXX -std=c++17 -O0 -g -Wall -c -I./src -o host.o sw/host.cpp

XRT ネイティブ API を使用してソース コードをコンパイルするには、次の g++ オプションが必要です。

  • -std=c++17: C++ 言語標準を定義します。XRT ネイティブ C++ API を使用してホスト コードをコンパイルするには、-std=c++17 以降の C++ 標準が必要です。ただし、GCC 4.9.0 より古いバージョンでは、代わりに -std=c++1y を使用してください。
  • -I$XILINX_XRT/include/: XRT インクルード ディレクトリ
  • -I${XILINX_VITIS}/aietools/include: AI エンジン インクルード ディレクトリ
  • -I./src/aie: インクルード AI エンジン グラフおよびカーネル ソース ファイル

実行ファイルをリンクする際は、次の g++ オプションが必要です。

  • -L$XILINX_XRT/lib/: XRT ライブラリを検索します。
  • -lxrt_coreutil: リンク時に指定のライブラリを検索します。
  • -pthread: リンク時に指定のライブラリを検索します。

ホスト アプリケーションと必要な XRT API をリンクし、実行ファイルを生成するためのコマンド:

g++ *.o -lxrt_coreutil -L${XILINX_XRT}/lib -o $(EXECUTABLE)

ADF API:

ADF API を使用するには、次のホスト アプリケーションをコンパイルするコマンドを使用します。

g++ -Wall -c -std=c++17 -Wno-int-to-pointer-cast -I${XILINX_XRT}/include \
-I./src/aie -I./ -I${XILINX_VITIS}/aietools/include \
-o aie_control_xrt.o ./Work/ps/c_rts/aie_control_xrt.cpp$
次は、ホスト アプリケーションと必要な XRT API をリンクし、実行ファイルを生成するコマンドです。
-ladf_api_xrt -L${XILINX_VITIS}/aietools/lib/lnx64.o