計算ユニットの SLR への割り当て - 2022.1 日本語

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語

現在のところ、データセンター アクセラレータ カード上のザイリンクス デバイスでは、複数の SLR (Super Logic Region) を含むスタックド シリコン デバイスを使用して、グローバル メモリを含むデバイス リソースを提供しています。最高のパフォーマンスにするには、ポートをグローバル メモリ バンクに割り当てる際は、カーネル ポートのメモリへのマップ で説明されるように、CU インスタンスを接続されているグローバル メモリと同じ SLR に割り当てることをお勧めします。この場合、カーネル インスタンスまたは CU を手動でグローバル メモリと同じ SLR に割り当て、最高のパフォーマンスが得られるようにします。また、プラットフォームまたはデバイスが複数の SLR をサポートする場合、CU を特定の SLR に割り当てて、配置とタイミング結果を改善する必要があります。

重要: カーネルが大きすぎて 1 つの SLR に収まりきらない場合、Vitis コンパイラは自動的にロジックを複数の SLR に配置します。この場合、SLR を割り当てると、インプリメンテーション中にエラーが発生する可能性があるので、割り当てないようにしてください。

CU は、コンフィギュレーション ファイルで connectivity.slr オプションを使用すると、SLR に割り当てることができます。設定ファイルの connectivity.slr オプションの構文は次のとおりです。

[connectivity]
#slr=<compute_unit_name>:<slr_ID>
slr=vadd_1:SLR2
slr=vadd_2:SLR3

説明:

  • <compute_unit_name>: connectivity.nk オプションで定義されている CU のインスタンス名 (複数のカーネル インスタンスの作成 を参照)、または複数の CU が指定されていない場合は <kernel_name>_1
  • <slr_ID>: CU を割り当てる SLR 番号。SLR0、SLR1、という形式で指定します。

CU を SLR に割り当てる場合は、CU ごとに個別に指定する必要があり、プラットフォームに複数の SLR が含まれる場合に推奨されます。割り当てた CU が別の SLR にあるグローバル メモリに接続される場合、ツールは自動的に SLR クロッシング レジスタを挿入してタイミング クロージャを達成しやすくします。SLR が割り当てられていない場合は、v++ リンカーで自動的に CU が SLR に割り当てられます。

設定ファイルに SLR 割り当てを含めたら、v++ リンク プロセスで --config オプションを使用して設定ファイルを指定します。

v++ -l --config config_slr.cfg ...