データ移動の最適化 - 2020.1 Japanese

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

Document ID
UG1393
Release Date
2020-08-20
Version
2020.1 Japanese
図 1. データ移動の最適化フロー

OpenCL API では、すべてのデータがまずホスト メモリからデバイスのグローバル メモリに転送され、グローバル メモリからカーネルに転送されて計算されます。この計算結果はカーネルからグローバル メモリに戻され、最後にグローバル メモリからホスト メモリに転送されます。カーネル最適化のストラテジを決定するには、どのようにすればデータを効率的に移動できるかを理解することが重要です。

データ移動の最適化では、計算が非効率であるとデータ移動がストールすることがあるので、データ転送コードを計算コードと分離することが重要です。ザイリンクスでは、この最適化段階でのみ、ホスト コードとカーネルをデータ転送コードを使用して変更することをお勧めします。目標は、PCIe の帯域幅および DDR 帯域幅を最大限に活用することにより、システム レベルのデータ スループットを最大にすることです。この目標を達成するには、通常ソフトウェア エミュレーション、ハードウェア エミュレーション、および FPGA での実行を何度か繰り返す必要があります。