データ移動の最適化 - 2022.1 日本語

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語
図 1. データ移動の最適化フロー

OpenCL 実行モデルでは、すべてのデータがまずホスト メイン メモリからグローバル デバイス メモリに転送されて、グローバル メモリからカーネルに転送されて計算されます。この計算結果はカーネルからグローバル メモリに戻され、最後にグローバル デバイス メモリからホスト メモリに転送されます。カーネルのデータ移動最適化のストラテジを決定する際は、異なるメモリ レベル間でデータを効率的に移動する方法を理解し、すべてのメモリ インタフェースで帯域幅を効率的に使用できるようにすることが重要です。

データ移動の最適化では、計算が非効率であるとデータ移動がストールすることがあるので、データ転送コードを計算コードと分離することが重要です。この最適化手順では、ホストとカーネル コードのデータ転送ロジックの変更に焦点を当てる必要があります。目標は、データ転送の帯域幅とデバイス グローバル メモリの帯域幅が最大限に使用されるようにして、システム レベルのデータ スループットを最大にすることです。最適なパフォーマンスを達成するには、通常ソフトウェア エミュレーション、ハードウェア エミュレーション、およびハードウェアでの実行を何度か繰り返す必要があります。