パフォーマンスのボトルネックは、さまざまな場所で発生する可能性があります。ほとんどの問題は、次の 4 つのデバッグ セクションに分類できます。
- マスター
- 転送を開始するデバイス。
- 機能を確認します。これは、そのマスターの AXI データバス幅 × AXI 周波数を計算することにより達成されます。
- CPM がマスターの場合:
- 両方の AXI4-MM ポートを使用しているか、1 つの AXI4-MM ポートのみを使用しているかを確認します。これらのポートの合計帯域幅を計算します。
- CPMTOPSWCLK 周波数を確認します。CPM AXI4-MM ポートの幅は、128 ビットに固定されています。
- トラフィック パターンを確認します。パケットが転送 ID (キュー ID またはチャネル ID) で分割されていることを確認します。同じ AXI4 ID を使用するパケットを分割しないでください。
- スレーブ
- 転送を受信するデバイス。
- 機能を確認します。これは、そのスレーブの AXI4 データ バス幅 × AXI4 周波数を計算することにより達成されます。
- CPM がスレーブの場合:
- CPM にある AXI4-MM ポートは 1 つのみです。このポートの帯域幅を計算します。
- CPMTOPSWCLK 周波数を確認します。CPM AXI4-MM ポートの幅は、128 ビットに固定されています。
- トラフィック パターンを確認します。スレーブ ポートは、1 つの AXI4 未処理トランザクションを含む AXI4-Lite インターフェイスを使用する内部レジスタにアクセスするために使用され、またバス マスター (読み出し/書き込み) から PCIe リンクにアクセスするためにも使用されます。HOL (Head of Line) ブロッキングを回避するためにこれらのトランザクション デスティネーションをインターリーブしないでください。
- インターコネクト
- パケットが通過する必要があるすべてのインターコネクトおよびスイッチ。
- 転送パスのすべてのインターコネクトを解析します。NoC、CCI-500、SmartConnect などがあります。スループット機能を確認してください。これは、それらのインターコネクトの AXI4 データ バス幅 × AXI4 周波数を計算することにより達成されます。
- AXI4 未処理トランザクションの設定を確認します。システムのレイテンシが長いほど、または AXI4 パケットが小さいほど、この値を大きくしてクレジット不足を回避します。
- トラフィック パターンを確認します。低速および高速のデータパスがインターリーブされていないことを確認し、HOL (Head of Line) ブロッキングを回避します。
- 外部/ソフトウェア
-
AMD デバイス外の要因。
- ソフトウェア/ドライバー/アプリケーション
- ソフトウェアおよびドライバーは通常、ハードウェアよりもはるかに低速です。スループットを最大にするため、転送中にソフトウェアから最小限必要なメンテナンスがあることを確認する必要があります。
- 使用可能なディスクリプター キューのリング サイズまたはディスクリプターのチェーン サイズを最大にします。
- 転送サイズを最大にします (ホストでの最大ペイロード サイズおよび最大読み出し要求サイズ含む)。
- キューと DMA チャネルを最大にします。
- 割り込みを最小限に抑え、ポーリング モードを過剰に使用しないようにします。
- ポインターまたはハードウェアのアップデートを最小限に抑えます。
- ソフトウェアからのバス マスタリングは避けます。ハードウェアで DMA またはバス マスタリングを実行します。
- ユーザーからカーネル レベル メモリへの過剰なコピーを避けます。ホストで転送に使用するメモリを固定します。
- スイッチ/IOMMU/プロセッサ リンク
- トランザクションがホストに入出力されるとき、パス上にはさまざまな共通モジュールがあり、これらによってレイテンシが増加して、システム パフォーマンスが低下する可能性があります。
- PCIe スイッチが最小限のパスを選択します。使用可能な PCIe スロットとそのバス トポロジを解析します。ソフトウェアまたはドライバーが、PCIe バスに接続されている CPU で実行されていることを確認します。CPU に直接接続されているメモリ デバイス (ディスク、DDR メモリなど) を使用します。
- PCIe クレジットが高い、または拡張 PCIe タグを使用可能な CPU および PCIe スイッチを選択します。これにより、未処理の PCIe パケットの量が大幅に改善されます。これは、ホストでの高レイテンシを補正するために必要です。エンタープライズ グレードのシステムでは通常、デスクトップ システムやワークステーション システムよりも数値が高くなっています。
- アクティブ PCIe スロットと PCIe スイッチのリンク幅および速度がデバイスと一致していることを確認します。PCIe リンクが最適なリンク速度およぼい幅にトレーニングされることを確認します。
- 多機能デバイスでは通常 IOMMU が必要ですが、これらの PCIe アドレスを変換するためレイテンシが追加されます。必要な場合を除き、IOMMU に依存しないようにしてください。
- PCIe および CPU で低消費電力ステートをディスエーブルにします。これらの機能は消費電力を節約し、大規模なデータセンター環境では大きな節約となる場合がありますが、これらの消費電力ステートに繰り返し入ったり出たりすると、転送速度が低下し、レイテンシが増加する可能性があります。