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

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

Document ID
UG1393
Release Date
2020-08-20
Version
2020.1 Japanese

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

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

ボトルネックの検出

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

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

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

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

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

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