ヒント: ツールを実行する前に、Vitis 環境の設定 で説明されるように、コマンド シェルまたはウィンドウを設定します。
ホスト アプリケーションの各ソース ファイルは、
g++
コンパイラを使用してオブジェクト ファイル (.o) にコンパイルされます。g++ ... -c <source_file1> <source_file2> ... <source_fileN>
生成されたオブジェクト ファイル (.o) がザイリンクス ランタイム共有ライブラリとリンクされ、実行可能なホスト プログラムが作成されます。リンクを実行するには、
-l
オプションを使用します。g++ ... -l <object_file1.o> ... <object_fileN.o>
x86 用のコンパイルおよびリンクは、標準 g++
フローに従います。唯一の要件は、XRT ヘッダー ファイルを含め、XRT 共有ライブラリをリンクすることです。
ホスト アプリケーションは、ザイリンクス ランタイム (XRT) ネイティブ C++ API または業界標準の OpenCL™ API を使用してネイティブ C++ で記述できます。必要なインクルード ファイルとライブラリは、ホスト アプリケーションが使用する API と、ホスト コードの特定の要件によって異なります。
ネイティブ XRT API を使用するには、ホスト アプリケーションが xrt_coreutil
ライブラリにリンクしている必要があります。コマンド ラインでは、次のコンパイルとリンクをまとめた例で示すように、いくつかの異なる設定が使用されます。
g++ -g -std=c++14 -I$XILINX_XRT/include -L$XILINX_XRT/lib -o host.exe host.cpp \
-lxrt_coreutil -pthread
ソース コードをコンパイルするには、次の g++
オプションが必要です。
-
-I$XILINX_XRT/include/
: XRT インクルード ディレクトリ。 -
-std=c++14
: C++ 言語標準を定義します。XRT ネイティブ C++ API を使用してホスト コードをコンパイルするには、-std=c++14
以降の C++ 標準が必要です。ただし、GCC 4.9.0 より古いバージョンでは、代わりに-std=c++1y
を使用してください。
実行ファイルをリンクする際は、次の g++
オプションが必要です。
-
-L$XILINX_XRT/lib/
: XRT ライブラリを検索します。 -
-lxrt_coreutil
: リンク時に指定のライブラリを検索します。 -
-pthread
: リンク時に指定のライブラリを検索します。
OpenCL API ホスト コードの構築
Vitis アプリケーションアクセラレーション開発フローでは、OpenCL API を使用してホスト アプリケーションをプログラムすることもできます。
g++
を使用した OpenCL アプリケーションの構築では、次のコマンドラインを使用します。g++ -g -std=c++1y -I$XILINX_XRT/include -L$XILINX_XRT/lib -o host.exe host.cpp \
-lOpenCL -pthread
唯一の違いは、XRT ネイティブ API の xrt_coreutil
ライブラリの代わりに OpenCL API 用の OpenCL
ライブラリを使用するところです。
注記:
Vitis Accel_Examples には、xcl2.cpp ソース ファイルおよび
-I../xcl2
インクルード文が追加されている例があります。ホスト プログラムおよび g++
コマンドにこれらを追加すると、サンプル コードで使用されるヘルパー ユーティリティにアクセスできますが、通常は不要です。