計算ユニットの SLR への割り当て - 2021.1 Japanese

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

Document ID
UG1393
Release Date
2022-03-29
Version
2021.1 Japanese

現在のところ、データセンター アクセラレータ カード上のザイリンクス デバイスでは、複数の 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 ...