AIE_STALL - 2024.1 日本語

Vitis ガイダンス メッセージ (UG1315)

Document ID
UG1315
Release Date
2024-05-30
Version
2024.1 日本語

説明

このルールは、AI エンジン コアのストール率をチェックします。

説明

AIE コアのストールには、メモリ、ストリーム、カスケード、ロックなど多くの種類があります。
  • MEMORY_STALL: Time AI エンジンはメモリ ストール中でした。これには、同一サイクル内で同一バンクに複数のメモリ アクセスがあったり、複数のカーネルが同一バンクの複数のメモリにアクセスしたり、といった複数の理由が考えられます。
  • STREAM_STALL: Time AI エンジンはストリーム ストール中でした。これには、ストリームが書き込みよりも速く読み出されたり、PL からのストリームにより遅い周波数のクロックが使用されるなど、複数の原因がある可能性があります。
  • CASCADE_STALL: Time AI エンジンはカスケード ストール中でした。これには、カスケード ストリームが書き込みよりも速く読み出されたり、PL からのストリームにより遅い周波数のクロックが使用されるなど、複数の原因がある可能性があります。
  • LOCK_STALL: Time AI エンジンはロック ストール中でした。これには、バッファーが書き込まれるよりも速く読み込まれたり、PL 間のストリームにより遅い周波数のクロックが使用されるなど、複数の原因がある可能性があります。

推奨

サポートされるストールすべての詳細は、 『AI エンジン ツールおよびフロー ユーザー ガイド』 (UG1076) を参照してください。

  • MEMORY_STALL: このストールは、トレース結果を使用してアクセス パターンを調べ、メモリを異なるバンクに配置するか、Aiecompiler の BufferOptLevel マップ オプションを使用すると、回避できます。
    • 異なるバンクにメモリを送信します メモリには、システム メモリ、RTP、ウィンドウ バッファー、データ メモリが含まれます。
    • メモリ バンクが枯渇している場合は、プロファイルとトレースで、より良いソリューションを見つけます。
    • aiecompiler で BufferOptLeve オプションを指定し、デザインを構築します。
  • STREAM_STALL: このストールは、トレース結果を使用してストリームのアクセス パターンを調べ、ストリームの FIFO の深さを増やしたり、バランスを調整したりするか、AI エンジンへの PL 帯域幅を最大化すると、回避できます。
    • FIFO の深さを増加します。
    • ループ内のストリームの読み出しおよび書き込み命令を調整します。
    • 複数ストリーム: DMA FIFO を挿入するか、異なるデスティネーション ネットには異なる FIFO の深さを設定します。
    • PLIO: AIE-PL インターフェイスの帯域幅を最大化します。例は、64 ビット インターフェイス、PL の最高周波数 (AIE 周波数は 1/2)、BLI レジスタ (チャンネルあり) などです。
  • CASCADE_STALL: このストールは、トレース結果を使用してストリームのアクセス パターンを調べ、入力/出力ストリーム間で一致するようにループ内の命令を調整するか、AI エンジンへの PL 帯域幅を最大化すると回避できます。
    • ループ内の命令を調整します。
  • LOCK_STALL: このストールは、トレース結果を使用してバッファーのアクセス パターンを調べ、バッファーの取得と解放を時間どおりに実行すると、回避できます。ローカル バッファーを使用しても、問題が解決することがあります。また、PL インターフェイスがストールのソースまたはデスティネーションである場合、PL インターフェイスのスループットが AI エンジンのスループットと一致するようにする必要があります。
    • ピンポン バッファー (デフォルト) を使用します。
    • カーネル間のスループットのバランスを調整します。
    • バッファーを時間内に取得して解放します。必要に応じてローカル バッファーを使用します。