デザインの取り込みとモデリング - 2022.1 日本語

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語

前のセクションでは、VSC により統合 C++ モデルからコンパイルされた構成、ソフトウェア インターフェイス、およびハードウェアについて説明しました。次に、特定の設計意図を簡単に取り込むために使用できる、ソース C++ モデルの主な機能の概要を示します。

  1. 各アクセラレータとその CU グループとの間でデータを送受信できるように、2 つの C スレッドを使用したホストからデバイスへのデータ転送を明示的にモデリング
  2. 複数のメモリ バンクの使用、CU の変更、ホストとデバイス間の同時 (ピンポン形式) データ転送などのガイダンス パラメーターを使用して、ホスト コードやカーネル コードの変更を最小限に抑えながら、パフォーマンスを調査
  3. 単一の数値ガイダンス パラメーターのみを使用して粗粒度の並列処理を調査できるように、並列で実行される CU を複製
  4. ラウンドロビンまたはフリーポーリングを使用して、計算クラスター (複数の CU) でジョブを自動スケジューリング
  5. アクセラレータ内で複製された CU での自動データ転送およびアクセラレータ ジョブのスケジューリング
  6. 次を実行するための、 PCIe® を介した各アクセラレータ ジョブおよびその他の最適化の自動パイプライン
    1. ホスト側の複数のバッファー オブジェクトを使用してデータを送受信
    2. データ移動パターンのガイダンスに基づいて、CU ごとにデータ ムーバーがプラグイン
      1. グローバル (DDR/HBM) メモリ リソースとオンチップ (RAM) メモリ リソース間でデータをコピー
      2. 現在のトランザクションが CU で終了する前に、グローバル メモリから次のトランザクションをプリフェッチ
    3. PCIe レイテンシを償却するため、トランザクション (1 つのデータ ブロックとして転送される n 個のデータセットのシーケンス) をクラスター化
    4. CU ごとに複数のホストおよびデバイス メモリ バッファーを使用した自動同時 (ピンポン形式) データ転送によりスループットを向上
    5. ピーク メモリ割り当て (最大データ サイズに割り当て) を使用して、可変ペイロード サイズを許容。
    6. 次の場合、ダイナミック出力バッファー サイズ (実行時に割り当て) をサポート
      1. 最大バッファー サイズは、コンパイル時に認識
      2. ダイナミック サイズは、アプリケーション コードにより決定
  7. ソフトウェア (ホスト側) とハードウェア (計算ユニット) を組み合わせたシステム レベルの構成
    1. 直接接続 (AXI4-Stream) インターフェイスを使用したハードウェアのみの構成。各 CU 内に PE パイプラインまたはネットワークを作成し、そのようなユニットを簡単に複製できます。
    2. CU の同期パイプライン内でストリーミング インターフェイスを備えた、フリーランニング PE を許容
    3. データ処理パイプラインを作成するためにハードウェアとソフトウェアを混在。ソフトウェア タスクでは、同じ xclbin にコンパイルされた異なるアクセラレータを使用して、ハードウェア タスク間でデータを処理できます。
  8. システム デザイン全体が C++ で取り込まれ、それを C++ ソースのソフトウェア コンパイルおよび実行で検証可能