Alveo アクセラレータのソフトウェア エミュレーション デバッグ - 2022.1 日本語

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

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

Alveo™ アクセラレータ カードのソフトウェア エミュレーションでシステムをデバッグするプロセスは、次のとおりです。このプロセスは、gdb コマンドを使用できる新しい端末を起動し、コード ステップのソース ファイルを表示します。

  1. ホストとカーネルを構築する際に、-g または --debug オプションを使用して sw_emu ビルド プロセスを完了します。
  2. アプリケーションを実行する前に、xrt.ini ファイルに kernel-dbg=true オプションを追加します。
    [Emulation]
    kernel-dbg=true
  3. Alveo データセンター アクセラレータ カードでのエミュレーションの実行 の説明に従って XCL_EMULATION_MODE を sw_emu に設定します。
    setenv XCL_EMULATION_MODE sw_emu
  4. .xclbin ファイル (./host.exe a.xclbin) を使用してホスト アプリケーションを起動します。

    ホスト アプリケーションを起動すると、別の端末で gdb も起動され、.xclbin で PL カーネルをデバッグできるようになります。gdb では、PL カーネルのブレークポイントの挿入や、コードをステップまたはウォークスルーするコマンドなど、デバッグ環境を設定するための一般的な動作をすべて実行できます。

  5. この構文を使用すると、gdb の関数名または行番号にブレークポイントを設定できます。実行中に、そのブレークポイントに到達すると、ソースを見つけられる限り、gdb はその正しい行番号の付いたファイルを自動的に開きます。次に例を示します。
    break <filename>:<function name>
    break <filename>:<line_num >

    また、b Vadd_A_B などのコマンドを使用して、カーネルのブレークポイントを設定することもできます。このコマンドは、指定されたカーネル (この例の場合、Vadd_A_B カーネル) の呼び出し時に gdb での .xclbin の実行を一時停止します。複数のカーネルを持つ .xclbin ファイルでは、すべてのカーネルまたは特定のカーネルにブレークポイントを追加できます。

    注記: gdb でブレークポイントを設定すると、関数が定義されていないことを示すメッセージが表示され、今後のロードでブレークポイントを保留するかどうか尋ねられます。y を入力します。
  6. gdb ターミナルで r を押てアプリケーションを実行し、コードをステップ スルーし、変数値を設定して続行します。
    ヒント: gdb でテキスト ユーザー インタフェース (TUI) を使用するには、次のキーを使用します。
    Ctrl+x Ctrl+a
  7. TUI が表示されている場合は、カーネルのソースコードと、ソフトウェア エミュレーション ビルド プロセスによって .xclbin で定義されたソース コードへのパスが表示されます。
  8. コードをステップ スルーするか、c を押してコードを完了させます。ソフトウェア エミュレーションの結果が、元のコマンド ターミナルに表示されます。
  9. q を押して gdb を終了します。
  10. gdb コマンド ターミナルを閉じます。