我正在尝试调试我的 OpenCL 内核。我认为,错误在于错误的内存分配。所以,我正在寻找一种方法来检测它。
长话短说,我可以在 POCL 平台上运行 OpenCL 内核并使用知名仪器进行检查吗?
我正在尝试调试我的 OpenCL 内核。我认为,错误在于错误的内存分配。所以,我正在寻找一种方法来检测它。
长话短说,我可以在 POCL 平台上运行 OpenCL 内核并使用知名仪器进行检查吗?
是的,Oclgrind 应该提供更多有用的错误消息,而且 pocl 的调试符号支持应该再次在 master 中工作。因此,valgrind 和 gdb 现在应该能够更好地识别 OpenCL C 行号。
pocl master 中还有一个新的 env POCL_EXTRA_BUILD_FLAGS:
“将环境变量的内容添加到所有 clBuildProgram() 调用。例如 POCL_EXTRA_BUILD_FLAGS="-g -cl-opt-disable" 可用于强制将调试数据添加到所有构建的内核中,以帮助使用 gdb 等工具调试内核问题或瓦尔格林。”
你可以这样做。但是,也有Oclgrind
专门为此设计的工具:https ://github.com/jrprice/Oclgrind