调试 OpenCL 内核 - 2022.1 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 简体中文

对于 OpenCL 内核,在软件仿真期间可以执行额外的运行时检查。这些额外检查包括:

  • 检查 OpenCL 内核是否对接口缓冲器执行界外访问 (fsanitize=address)。
  • 检查内核是否访问未初始化的本地存储器 (fsanitize=memory)。

这些 Vitis 编译器选项是通过 --advanced 编译器选项使用以下命令语法来启用的,如 --advanced 选项 中所述:

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

应用这些选项后,仿真运行会生成调试 log 日志,其中包含已写入 <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 编译器配置文件