ハードウェア エミュレーションでのデバッグ - 2023.2 日本語

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語
重要: 次は、コマンド ラインからデバッグをする手順です。ただし、コマンド ライン プロジェクトは、Vitis Unified IDE のワークスペースで開き (ユーザー管理フローの使用 を参照)、デバッグ (システム プロジェクトと AI エンジン コンポーネントのデバッグ を参照) することを強くお勧めします。

ハードウェア エミュレーションでは、カーネル コードは RTL コードにコンパイルされるので、AMD デバイスにインプリメンテーションする前にカーネルの RTL ロジックを評価できます。ホスト コードはカーネルの RTL モデルのビヘイビアー シミュレーションと同時に実行でき、直接インポートされるか、Vitis HLS を使用して C/C++/OpenCL カーネル コードから作成されます。詳細は、ハードウェア エミュレーションを参照してください。

次の図に、ホスト コードの検証、ホストおよびカーネルのパフォーマンスのプロファイリング、FPGA リソース使用量の見積もり、ハードウェア (RTL) の正確なモデルを使用したカーネルの検証を実行するために Vitis デバッガーで使用可能なハードウェア エミュレーション フローを示します。RTL カーネル コードは、AMD Vivado™ シミュレータまたはサードパーティー RTL シミュレータで解析されます。GDB は、アプリケーション コンポーネントの従来のソフトウェア スタイル デバッグに使用されまます。

図 1. ハードウェア エミュレーション

ハードウェア エミュレーションを実行して、ホストおよびカーネルのハードウェア インプリメンテーションが正しいことを検証します。ハードウェア エミュレーション フローでは、FPGA ファブリックで実行されるカーネル ロジックをテストするため、Vitis コア開発キットから Vivado ロジック シミュレータが起動します。インターフェイス モデルの全体的な実行時間に対する影響を制限するため、モデル間のインターフェイスはトランザクション レベル モデル (TLM) で記述されます。ハードウェア エミュレーションの実行時間は、ソフトウェア エミュレーションよりも長くなります。

ヒント: ハードウェア デバイスで実行するよりもかなり時間がかかるため、AMD では、ハードウェア エミュレーションでのデバッグと検証には小さなデータセットを使用することをお勧めしています。

ハードウェア エミュレーションでは、パフォーマンスを改善するためカーネル コードを変更することも可能です。機能が正しく、カーネルのパフォーマンス見積もりが十分なものになるまで、ハードウェア エミュレーションでホストおよびカーネル コード デザインを繰り返し実行します。