カーネル境界を設定 - 2020.1 Japanese

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

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

前述のように、パフォーマンスは複数のカーネル インスタンス (計算ユニット) を作成すると改善しますが、計算ユニット (CU) を追加すると、I/O ポート、帯域幅とリソース幅が増加します。

Vitis ソフトウェア プラットフォーム フローでは、カーネル ポートの最大幅が 512 ビット (64 バイト) で、デバイス リソースの使用量は決まっています。最も重要なのは、ターゲット プラットフォームで使用可能な最大ポート数に限りがあるということです。これらの制限を考慮して、これらのポートおよび帯域幅を最適に使用するようにします。

複数の計算ユニットを使用する代わりに、カーネル内に複数のエンジンを追加する方法もあります。この場合、複数のデータ セットがカーネル内の別のエンジンで同時に処理されるので、CU を追加する場合と同様にパフォーマンスを改善できます。

同じカーネル内に複数のエンジンを含めると、カーネルの I/O ポートの帯域幅が最大限に使用されます。データパス エンジンがポートの全幅を必要としない場合は、1 つのエンジンを使用して複数の CU を作成するよりも、カーネルにエンジンを追加する方が効率的です。

カーネル内に複数のエンジンを含めると、ポートの数およびグローバル メモリへのトランザクション (アービトレーションが必要) の数を削減して、帯域幅を改善することもできます。

ただし、これにはカーネル内で明示的な I/O 多重化動作をコード記述する必要があるので、トレードオフを考慮してください。