カーネルのリンク - 2022.1 日本語

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語
ヒント: ツールを実行する前に、Vitis 環境の設定 に説明されているように、コマンド シェルまたはウィンドウを設定します。
カーネルのコンパイル プロセスでは、カーネルが C/C++、OpenCL C、RTL のいずれで記述されていても、ザイリンクス オブジェクト ファイル (.xo) が生成されます。システムのパッケージ に示すように、リンク段階では、異なるカーネルからの XO ファイルがプラットフォームにリンクされ、FPGA バイナリ コンテナー ファイル (.xclbin) または Vitis パッケージ プロセスで使用されるハードウェア定義ファイル (.xsa) が作成されます。
重要: 2022.1 リリースでは、v++ --link コマンドで Versal® デバイス プラットフォーム (vck190、vck5000 など) のハードウェア定義 (.xsa) ファイルを生成し、v++ --package コマンドでそのファイルを使用して、.xclbin ファイルを生成します。 Alveo™ データセンター アクセラレータ カードおよびエンベデッド プロセッサ プロセッサ カードの場合、v++ --link コマンドで .xclbin ファイルを直接生成します。ただし、v++ --package コマンドはまだ必要な場合があります。

コンパイルと同様、リンクにも複数のオプションが必要です。次に、vadd カーネルをリンクするコマンド例を示します。

v++ -t hw_emu --platform xilinx_u200_gen3x16_xdma_2_202110_1 --link vadd.xo -o'vadd.sw_emu.xclbin' \
--config ./system.cfg

このコマンドには、次の引数が含まれます。

-t <arg>
ビルド ターゲットを指定します。ソフトウェア エミュレーション (sw_emu) が例として使用されています。リンクでは、入力 (XO) ファイルをコンパイルしたときに指定したのと同じ -t および --platform 引数を指定する必要があります。
--platform <arg>
カーネルをリンクするプラットフォームを指定します。エンベデッド プロセッサ アプリケーションのカーネルをリンクするには、--platform $PLATFORM_REPO_PATHS/zcu102_base/zcu102_base.xpfm のようにエンベデッド プロセッサ プラットフォームを指定します。
--link
カーネルとプラットフォームを FPGA バイナリ ファイル (xclbin) にリンクします。
<input>.xo
オブジェクト ファイルを入力します。複数のオブジェクト ファイルを .xclbin にビルドできます。
-o'<output>.xclbin'
出力ファイル名を指定します。リンク段階の出力ファイルは、.xsa ファイルです。デフォルトの出力ファイル名は a.xsa です。
--config ./system.cfg
v++ コマンドのオプションを定義するコンフィギュレーション ファイルを指定します。--config オプションの詳細は、Vitis コンパイラ コマンド を参照してください。
次に、出力に .xsa ファイルを指定した、Versal デバイス プラットフォームのリンク コマンド ラインの例です。
v++ -t hw_emu --platform xilinx_vck190_base_202210_1 --link vadd.xo -o"binary_container_1.xsa" \
--config ./system.cfg

リンク段階が完了すると、このプロセス中に生成されたすべてのレポートが <kernel_name>.link_summary に収集されます。このレポートのコレクションは、Vitis アナライザーで link_summary を開くと確認でき、サマリ レポート、ハードウェア デザインを示すシステムおよびプラットフォーム ダイアグラム、タイミングとリソースの見積もりを提供するシステム見積もり、リンクの改善とシステムのパフォーマンスを向上させるための推奨事項を示すシステム ガイダンスが含まれます。また、インターフェイス接続、クロック、リセット、および割り込みなどのデザインの詳細を提供する Vivado オートメーション サマリも含まれます。詳細は、Vitis アナライザーの使用を参照してください。

ヒント: さまざまな出力ファイルの生成場所は、v++ コマンドの出力ディレクトリ を参照してください。

リンク プロセスでは、ザイリンクス オブジェクト (XO) ファイルがリンクされるだけでなく、デザインのアーキテクチャの重要な詳細も指定されます。特に、プロファイルまたはデバッグ用にデザインをイネーブルにし、ハードウェアにインスタンシエートする計算ユニット (CU) 数を指定し、CU を SLR に割り当て、カーネル ポートからグローバル メモリまたはストリーミング ポート間の接続を定義します。次のセクションでは、これらのビルド オプションのいくつかを説明します。