如何解决在 OpenCL 内核中,如何在内存位置定位导致异常 cl::Error 的源代码行?
在 Windows 10 上的 openCL 1.2 程序中,在我将内核排队几秒钟后,提示显示 ucrtbase.dll 的内存位置存在未处理的异常。所以我使用“try and catch”来获取更多关于异常的信息。然后我得到这个:
Microsoft C++ 异常:cl::Error at memory location 0x00000076482F5A28。
我的内核中的内存读/写可能有问题。但是内核程序包含很多行,因此阅读每一行以找到错误的行可能有点困难。 在这种情况下,如何定位可能导致此异常的源代码行?
解决方法
注释掉内核的一部分,然后运行它。首先,注释内核代码的下半部分。如果错误仍然存在,则它位于上半部分(->comment thr 内核的下 3/4),如果不是,则位于下半部分(->comment 内核的下 1/4)。重复这个二分查找,直到找到错误的根源。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。