デバイス トポロジ

SDAccel™ 環境では、デバイスは PCIe バスを介してホスト x86 マシンに接続された 1 つまたは複数の FPGA です。FPGA には、カーネルをインプリメントして実行するプログラマブル領域が含まれます。FPGA プラットフォームには、1 つまたは複数のグローバル メモリ バンクが含まれます。ホスト マシンとカーネルの間のデータ転送は、これらのグローバル メモリ バンクを介して実行されます。FPGA 上で実行されるカーネルには、1 つまたは複数のメモリ インターフェイスを含めることができます。グローバル メモリ バンクからこれらのメモリ インターフェイスへの接続は柔軟にプログラム可能であり、カーネルのコンパイル オプションにより指定されます。

ザイリンクス デバイスのプログラマブル ロジックには、同時に複数のカーネルをインプリメントでき、タスクの並列実行を可能にします。1 つのカーネルを複数回インスタンシエートすることもできます。カーネルのインスタンス数はプログラム可能で、カーネルのコンパイル オプションにより指定されます。

図: SDAccel アーキテクチャ

上の図は、ホスト マシンからグローバル メモリ バンクを介した複数のカーネルへの柔軟な接続を示します。この図の FPGA ボード デバイスには、4 つの DDR メモリ バンクが含まれます。FPGA のプログラマブル ロジックでは、Kernel A および Kernel B という 2 つのカーネルが実行されます。各カーネルには 2 つのメモリ インターフェイス (読み出し用に 1 つ、書き込み用に 1 つ) があります。Kernel A のインスタンスは 2 つあり、FPGA 上には 3 つのカーネル インスタンスが含まれます。

最初のインスタンスである Kernel A: CU1 は、読み出しと書き込みの両方に 1 つのメモリ インターフェイスを使用します。Kernel B および Kernel A の 2 つ目のインスタンスである Kernel A: CU2 は、読み出しと書き込みに別のメモリ インターフェイスを使用します。Kernel B はグローバル メモリを介して Kernel A: CU2 に直接データを渡します。

注記: 最大限のパフォーマンスを達成するため、グローバル メモリ バンクからカーネル インターフェイスへの接続は、DDR バンクとカーネルの接続のカスタマイズに説明するように、注意して定義する必要があります。