AI エンジン使用率の見積もり

AI エンジンによるデジタル ダウンコンバージョン チェーンのインプリメンテーション (XAPP1351)

Document ID
XAPP1351
Release Date
2021-02-15
Revision
1.0 日本語

AI エンジンは、データをブロックごとに処理し、ウィンドウと呼ばれるデータ構造を使用して 1 ブロックの入力または出力データを記述します。ウィンドウ サイズ (入力または出力データの各ブロック内のサンプル数) は、効率と処理レイテンシのトレードオフを表します。ウィンドウ サイズが大きいほど効率は高くなりますが、ウィンドウ サイズに比例してレイテンシは長くなります。AI エンジンの処理効率が 5 ~ 10% 低下しても、レイテンシが短い方が望ましい場合があります。

たとえば、このアプリケーション ノートでは、入力ウィンドウ サイズを 512 サンプルに設定し、レイテンシを 2.1 マイクロ秒以内に制限しています。次の表に、DDC フィルターのウィンドウ サイズとサンプル レートを示します。

表 1. DDC フィルターのウィンドウ サイズとサンプル レート
フィルター 入力サンプル レート (MSPS) 出力サンプル レート (MSPS) 入力ウィンドウ 出力ウィンドウ
HB47 245.76 122.88 512 256
HB11 122.88 61.44 256 128
FIR199 122.88 122.88 256 256
HB23 61.44 30.72 128 64
FIR89 30.72 30.72 64 64
Mixer 122.88 122.88 256 1280/5x キャリア

サイクル バジェットは、関数が 1 ブロックの出力データを計算するのに必要な命令サイクル数で、次式で求められます。

AI エンジン クロックが 1GHz の最低スピード グレード デバイスでは、245.76MSPS で 512 個のサンプルを処理するのに必要なサイクル バジェットは 2083 サイクルです。

各出力ごとに P 回の 16 ビット実数 × 16 ビット実数乗算が必要であると想定します。AI エンジンは、このような実数 × 実数乗算を各サイクルで 32 回実行できます。理想的なインプリメンテーションでは、使用率の下限は次式で求められます。

FIR199 を例として考えます。FIR199 の実数対称フィルター タップ数は 199 で、各出力の計算には 100 回の 16 ビット複素数 × 16 ビット実数乗算が必要です。したがって、FIR199 の各出力を得るには、200 回の 16 ビット実数 × 16 ビット実数乗算を 122.88 MSPS で実行する必要があります。使用率の下限は、200 サイクル × 256 サンプル/(32 × 2083 サイクル バジェット) = 76.8% の式で計算されます。その他の DDC フィルターの使用率の下限も同じように計算されます。次の表に一覧を示します。

表 2. AI エンジン使用率の下限の解析
フィルター 入力ウィンドウ サイズ 出力ウィンドウ サイズ タップ数 出力あたりの MAC 演算回数 使用率/インスタンス インスタンス数 使用率の下限
FIR199 256 256 199 200 76.8% 1 76.8%
FIR89 64 64 89 96 9.3% 5 46.5%
HB47 512 256 47 32 12.3% 1 12.3%
HB11 256 128 11 8 1.6% 5 8%
HB23 128 64 23 16 1.6% 5 8%
Mixer 1 256 1280 - 8 23% 1 23%
  合計 174.6%
  1. 設定可能なキャリア周波数を実行時にサポートする場合、オンライン DDS 計算では、ミキサー カーネルの実行ごとに追加の 180 サイクルが消費されます。

この DDC は、理論的には 2 つの AI エンジンにそれぞれ 87.3% の使用率でインプリメントできますが、このように高い使用率では非常に大きなウィンドウが必要になり、レイテンシが許容範囲を超えてしまいます。使用率を低減する 1 つの方法として、この場合は 5G NR キャリアと 4G LTE キャリアは共存しないという事実を利用して、キャリアの構成に応じて、使用されないキャリアのフィルターを実行中にオフにできます。詳しい解析と説明は、この後のセクションに記載しています。