Vitis ハードウェア アクセラレーションxilinx.com の Vitis ™開発環境を参照 |
アクセラレーション パフォーマンスの体験¶
この演習では、アプリケーションをまずソフトウェアのみのバージョンで実行し、その後コンパイル済み FPGA アクセラレータを使用して最適化されたアクセラレーション バージョンを実行し、アクセラレーションの可能性を体験します。
次のコマンドを実行してアプリケーションを設定します。
# Source the Vitis runtime environment export LAB_WORK_DIR=<Downloaded Github repository>/Hardware_Acceleration/Design_Tutorials/02-bloom
C アプリケーションをビルドします。
cpu_src
ディレクトリに移動します。次のコマンドを使用して、ドキュメント数を引数として指定して元の C アプリケーションを実行し、比較のためのゴールデン出力ファイルを生成します。
cd $LAB_WORK_DIR/cpu_src/ make run
生成された出力スコアは、ホスト コードの
cpu_profile_score
配列に格納されます。この配列は、指定されたドキュメント総数の出力を表します。結果は、次のようになります。./host 100000 Initializing data Creating documents - total size : 1398.903 MBytes (349725824 words) Creating profile weights Total execution time of CPU | 2949.3867 ms Compute Hash processing time | 2569.3266 ms Compute Score processing time | 380.0601 ms -------------------------------------------------------------------- Execution COMPLETE
FPGA 上でアプリケーションを実行します。 この演習では、FPGA アクセラレータは並列係数 8 でインプリメントされています。
8 個の入力ワードが並列処理され、各クロック サイクルで 8 つの出力フラグが生成されます。
最適化されたアプリケーションを FPGA 上で実行するには、次の
make
コマンドを実行します。make run_fpga SOLUTION=1
次の出力が表示されます。
Processing 1398.905 MBytes of data Splitting data in 8 sub-buffers of 174.863 MBytes for FPGA processing -------------------------------------------------------------------- Executed FPGA accelerated version | 427.1341 ms ( FPGA 230.345 ms ) Executed Software-Only version | 3057.6307 ms -------------------------------------------------------------------- Verification: PASS
スループットは、次のように計算されます。
スループット = 合計データ量/合計時間 = 1.39 GB/427.1341 ms = 3.25 GB/s
FPGA アクセラレーションを効果的に利用することにより、アプリケーションのスループットが 7 倍になりました。
次の手順¶
この手順では、FPGA を使用して達成可能なアクセラレーションを観察しました。次に、アクセラレーションのためのアプリケーションを構築し、元のアプリケーションをプロファイリングしてどの関数をアクセラレーションできるかを調べます。希望のアクセラレーションを達成するためのインターフェイス境界およびパフォーマンス制約も定義します。
Copyright© 2021 Xilinx