現在のところ、データセンター アクセラレータ カード上のザイリンクス デバイスでは、複数の SLR (Super Logic Region) を含むスタックド シリコン デバイスを使用して、グローバル メモリを含むデバイス リソースを提供しています。最高のパフォーマンスにするには、ポートをグローバル メモリ バンクに割り当てる際は、カーネル ポートのメモリへのマップ で説明されるように、CU インスタンスを接続されているグローバル メモリと同じ 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 ごとに個別に指定する必要がありますが、この割り当て自体は必須ではありません。割り当てた CU が別の SLR にあるグローバル メモリに接続される場合、ツールは自動的に SLR クロッシング レジスタを挿入してタイミング クロージャを達成しやすくします。SLR が割り当てられていない場合は、v++
リンカーで自動的に CU が SLR に割り当てられます。
設定ファイルに SLR 割り当てを含めたら、
v++
リンク プロセスで --config
オプションを使用して設定ファイルを指定します。v++ -l --config config_slr.cfg ...