OpenCL カーネルのデバッグ - 2021.2 Japanese

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

Document ID
UG1393
Release Date
2022-03-29
Version
2021.2 Japanese

ソフトウェア エミュレーション フローでは、OpenCL カーネルに対して追加のランタイム チェックを実行できます。追加のチェックには、次のものがあります。

  • OpenCL カーネルがインターフェイス バッファーに対して範囲外アクセスを実行するか (fsanitize=address)。
  • カーネルが初期化されていないローカル メモリにアクセスするか (fsanitize=memory)。

--advanced オプション に説明されているように、--advanced コンパイラ オプションでイネーブルにする Vitis コンパイラ オプションがあり、次のコマンド構文を使用して指定できます。

--advanced.param compiler.fsanitize=address,memory

これらのオプションをイネーブルにすると、エミュレーションを実行したときにエミュレーション診断メッセージを含むデバッグ ログが <project_dir>/Emulation-SW/<proj_name>-Default>/emulation_debug.log に出力されます。

fsanitize 指示子も設定ファイルで次のように指定できます。

[advanced]
#param=<param_type>:<param_name>.<value>
param=compiler.fsanitize=address,memory

そして、この設定ファイルを v++ コマンド ラインで指定します。

v++ -l –t sw_emu --config ./advanced.cfg -o bin_kernel.xclbin

--config オプションの詳細は、Vitis コンパイラのコンフィギュレーション ファイル を参照してください。