Alveo™
アクセラレータ カードのソフトウェア エミュレーションでシステムをデバッグするプロセスは、次のとおりです。このプロセスは、gdb
コマンドを使用できる新しい端末を起動し、コード ステップのソース ファイルを表示します。
- ホストとカーネルを構築する際に、
-g
または--debug
オプションを使用してsw_emu
ビルド プロセスを完了します。 - アプリケーションを実行する前に、xrt.ini ファイルに
kernel-dbg=true
オプションを追加します。[Emulation] kernel-dbg=true
-
Alveo データセンター アクセラレータ カードでのエミュレーションの実行 の説明に従って XCL_EMULATION_MODE を
sw_emu
に設定します。setenv XCL_EMULATION_MODE sw_emu
-
.xclbin ファイル (./host.exe
a.xclbin) を使用してホスト アプリケーションを起動します。
ホスト アプリケーションを起動すると、別の端末で
gdb
も起動され、.xclbin で PL カーネルをデバッグできるようになります。gdb
では、PL カーネルのブレークポイントの挿入や、コードをステップまたはウォークスルーするコマンドなど、デバッグ環境を設定するための一般的な動作をすべて実行できます。 - この構文を使用すると、
gdb
の関数名または行番号にブレークポイントを設定できます。実行中に、そのブレークポイントに到達すると、ソースを見つけられる限り、gdb
はその正しい行番号の付いたファイルを自動的に開きます。次に例を示します。break <filename>:<function name> break <filename>:<line_num >
また、
b Vadd_A_B
などのコマンドを使用して、カーネルのブレークポイントを設定することもできます。このコマンドは、指定されたカーネル (この例の場合、Vadd_A_B
カーネル) の呼び出し時にgdb
での .xclbin の実行を一時停止します。複数のカーネルを持つ .xclbin ファイルでは、すべてのカーネルまたは特定のカーネルにブレークポイントを追加できます。注記:gdb
でブレークポイントを設定すると、関数が定義されていないことを示すメッセージが表示され、今後のロードでブレークポイントを保留するかどうか尋ねられます。y を入力します。 -
gdb
ターミナルで r を押てアプリケーションを実行し、コードをステップ スルーし、変数値を設定して続行します。ヒント:gdb
でテキスト ユーザー インタフェース (TUI) を使用するには、次のキーを使用します。Ctrl+x Ctrl+a
- TUI が表示されている場合は、カーネルのソースコードと、ソフトウェア エミュレーション ビルド プロセスによって .xclbin で定義されたソース コードへのパスが表示されます。
- コードをステップ スルーするか、c を押してコードを完了させます。ソフトウェア エミュレーションの結果が、元のコマンド ターミナルに表示されます。
-
q を押して
gdb
を終了します。 -
gdb
コマンド ターミナルを閉じます。