Vitis テクノロジでサポートされるアクセラレーション カードには、最大 80 GB/s の生 DDR 帯域幅の 1、2、または 4 つの DDR バンクが含まれます。FPGA と DDR の間で大量のデータを移動するカーネルの場合、ザイリンクスでは Vitis コンパイラおよびランタイム ライブラリで複数の DDR バンクを使用するように指示することをお勧めします。
ホスト アプリケーションは、DDR バンクだけでなく、カーネルに直接データを転送する PLRAM
にアクセスできます。この機能をイネーブルにするには、コンフィギュレーション ファイルに connnectivity.sp
オプションを含め、v++ --config
でそのコンフィギュレーション ファイルを指定します。この最適化の使用法の詳細は カーネル ポートのメモリへのマップ、グローバル メモリ バンクへのデータ転送に関する詳細は メモリマップドのインターフェイス
を参照してください。
複数の DDR バンクの利点を活かすには、ホスト コードで CL メモリ バッファーを異なるバンクに割り当て、xclbin ファイルを v++
コマンド ラインでのバンク割り当てと同じになるように設定する必要があります。
次の図に、GitHub の Vitis Examples からの Global Memory Two Banks (C) 例のブロック図を示します。この例では、カーネルの入力ポインター インターフェイスを DDR バンク 0 に、出力ポインター インターフェイスを DDR バンク 1 に接続しています。