デバイスでのバッファーの割り当て - 2019.2 Japanese

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

Document ID
UG1393
Release Date
2020-02-28
Version
2019.2 Japanese

デフォルトでは、カーネルがリンクされる場合、すべてのカーネルからのメモリ インターフェイスが 1 つのデフォルトのグローバル メモリ バンクに接続されます。そのため、グローバル メモリ バンクとデータを転送できるのは一度に 1 つの計算ユニット (CU) のみになり、アプリケーションの全体的なパフォーマンスが制限されます。FPGA にグローバル メモリ バンクが 1 つしか含まれていない場合は、これしかオプションがありません。デバイスに複数のグローバル メモリ バンクが含まれる場合は、カーネル リンク中にそのグローバル メモリ バンクの接続をカスタマイズして、デフォルトの接続を変更できます。詳細は、カーネル ポートのグローバル メモリへのマップ を参照してください。全体的なパフォーマンスは、異なるカーネルまたは計算ユニットに対して別のメモリ バンクを使用して、複数のカーネル メモリ インターフェイスが同時にデータを読み出しおよび書き込みできるようにすると改善します。

重要: XRT はカーネルのメモリ接続を検出して、データをホスト プログラムからカーネルの正しいメモリ位置に送信する必要があります。XRT では、clSetKernelArgs がバッファーのエンキュー操作 (たとえば clEnqueueMigrateMemObject) よりも前に使用されると、自動的にカーネル バイナリ ファイルからバッファー位置を検出するようになっています。