機能とパフォーマンスのベースライン - 2021.1 Japanese

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

Document ID
UG1393
Release Date
2022-03-29
Version
2021.1 Japanese

Vitis ソフトウェア プラットフォームでのアプリケーションのアクセラレーション手法 では、アプリケーションの開発の概要を説明し、アプリケーションをプロファイリングしてアクセラレーションする関数を特定することから開始して、C/C++ アクセラレータの開発に推奨される方法を示します。このガイドで説明するように、最適化を開始する前に、まずアプリケーションのアーキテクチャおよびパフォーマンスを理解しておくことが重要です。これには、アプリケーションの機能とパフォーマンスのベースラインを確立します。

図 1. 機能とパフォーマンスのベースライン フロー

ボトルネックの検出

まず、ターゲット プラットフォームで実行しているアプリケーションのボトルネックを特定します。最も効果的なのは、ホスト アプリケーションのカスタム プロファイリング で説明するユーザー プロファイリング機能や、valgrindcallgrind、および GNU gprof などのプロファイリング ツールを使用してアプリケーションを実行する方法です。これらのツールで生成されるプロファイリング データには、すべての関数呼び出しの回数と実行時間を示すコールグラフが表示されます。

ソフトウェアおよびハードウェア エミュレーションの実行

エミュレーションの実行 に説明されているように、アクセラレーション アプリケーションのソフトウェアおよびハードウェア エミュレーションを実行して機能が正しいかどうかを確認し、ホスト コードおよびカーネルのプロファイリング データを生成します。Vitis アナライザーを使用してカーネル コンパイル レポート、プロファイル サマリ、タイムライン トレース、およびデバイス ハードウェア トランザクションを解析し、タイミング間隔、レイテンシ、DSP やブロック RAM などのリソース使用量のベースライン パフォーマンス見積もりを理解します。

アプリケーションのビルドおよび実行

アプリケーション ハードウェア ビルドの実行 で説明するように、ベースライン作成の最後に、アプリケーションをビルドして FPGA アクセラレーション カード ( Alveo™ データセンター アクセラレータ カードなど) で実行します。システム コンパイルからのレポートおよびアプリケーション実行からのプロファイリング データを解析し、ハードウェアでの実際のパフォーマンスおよびリソース使用量を確認します。

ヒント: ベースライン作成中のレポートはすべて保存して、最適化時に参照して結果を比較できるようにしておきます。