バッファー メモリの分割 - 2020.1 Japanese

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

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

メモリ バッファーの割り当ておよび割り当て解除により、DDR コントローラーでメモリが分割されることがあります。これにより、計算ユニットが論理的には並列実行できるはずなのに、最適なパフォーマンスが得られない可能性があります。

この問題は、異なる計算ユニットに対して複数の pthread が使用されており、スレッドでカーネルがエンキューされるたびに異なるサイズのデバイス バッファーが多数割り当てられ、解放される場合によく発生します。この場合、タイムライン トレースでカーネル実行間にギャップが表示され、プロセスがスリープ状態になっているように見えます。

ランタイムで割り当てられる各バッファーは、ハードウェアで連続している必要があります。大型メモリの場合、多数のバッファーの割り当ておよび割り当て解除が発生すると、その空間が空くのを待機する時間が長くなることがあります。これは、デバイス バッファーを割り当て、カーネルの異なるエンキュー間で再利用すると回避できます。

メモリの最適化の詳細は、バースト読み出しおよび書き込み を参照してください。