データセンター アプリケーション アクセラレーション開発フロー - 2020.2 Japanese

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

Document ID
UG1393
Release Date
2021-03-22
Version
2020.2 Japanese

次の図は、Alveo データセンター アクセラレータ カードで使用するアプリケーションをビルドして実行するために必要な手順を示しています。各手順は次にまとめていますが、その詳細はこの資料全体で説明します。

図 1. データセンター アクセラレータ カードのアプリケーション開発フロー
x86 アプリケーションのコンパイル
g++ コンパイラを使用して、x86 プロセッサで実行するホスト アプリケーションをコンパイルして、ホスト実行ファイルを作成します。ホスト プログラムは、PL 領域内のカーネルとインタラクティブです。ホスト アプリケーションの詳細は、アプリケーションの開発 を参照してください。ホスト アプリケーションのコンパイルの詳細は、ホスト プログラムのビルド を参照してください。
PL カーネルのコンパイルおよびリンク

PL カーネルは、ターゲット プラットフォームの PL 領域にインプリメンテーションできるようにコンパイルされます。PL カーネルは、Vitis コンパイラ (v++) または C/C++ カーネルの場合は Vitis HLS を使用し、RTL カーネルの場合は package_xo コマンドを使用して、ザイリンクス オブジェクト形式 (XO) ファイルにコンパイルできます。カーネルのコーディングに関する詳細は、C/C ++ カーネル または RTL カーネル を参照してください。

Vitis コンパイラは、カーネル XO ファイルをハードウェアプラットフォームにリンクして、アプリケーションのデバイス実行ファイル (.xclbin) を作成します。詳細は、デバイス バイナリのビルドを参照してください。

v++ --link コマンドでザイリンクス オブジェクト (XO) ファイルをターゲット ハードウェア プラットフォームとリンクしてデバイス バイナリ ファイル (.xclbin) を作成し、これをターゲット プラットフォーム上のザイリンクス デバイスに読み込みます。

アプリケーションの実行
Alveo データセンター アクセラレータ カードの場合、.xclbin ファイルはシステムを実行するために必要なビルド オブジェクトです。アプリケーションを実行する際は、ソフトウェア エミュレーション、ハードウェア エミュレーションを実行するか、実際の物理的なアクセラレータ プラットフォームで実行できます。詳細は、アプリケーション ハードウェア ビルドの実行を参照してください。
  • ビルド ターゲットがソフトウェアまたはハードウェア エミュレーションの場合、Vitis コンパイラでカーネルのシミュレーション モデルがデバイス バイナリに生成されます。ビルド ターゲット で説明されているように、 ターゲットを使用すると、デザインをビルドおよび実行して比較的速いサイクルで反復実行し、アプリケーションをデバッグしてパフォーマンスを評価できます。
  • ビルド ターゲットがハードウェア システムの場合、Vitis コンパイラは Vivado Design Suite を使用して合成およびインプリメンテーションを実行してからタイミングを解決し、.xclbin を生成します。このプロセスは自動化されて高品質の結果を生成しますが、ハードウェアに精通した開発者の場合は、設計プロセスで Vivado ツールを完全に活用することもできます。