【发布时间】:2013-07-26 10:42:28
【问题描述】:
我遇到了与这里所说的非常相似的问题:Intel CPU OpenCL in Mono killed by SIGXCPU (Ubuntu)
基本上,我有一个使用 OpenCL 的非常简单的 C# 应用程序(通过 OpenCL.Net 包装器,但它不应该有所作为,因为它只是包装原生函数而已)。在代码中,我只是构建内核,然后分配一大堆浮点数。
更具体地说,我的平台是 Ubuntu 12.04、OpenCL 1.1(带有 CUDA)和 mono 3.0.3。
问题:通过单声道运行我的代码时,出现 CPU LIMIT EXCEEDED 错误
几件事:
- 如果我在构建内核和分配之间的某处设置断点(在 monodevelop 中),它会起作用..
- 将数组大小更改为较小的也可以使其工作
Strace 没有显示任何有用的信息。我还尝试将回调传递给 ClBuildProgram(注意:如果我用 ClBuildProgram 注释掉它就可以了)。
有什么想法吗?
【问题讨论】:
-
查看您链接到的帖子并发现使用较小的问题大小会使问题消失,我怀疑您已经达到了 OpenCL 内核允许的最长时间。在 Windows 上,有一些注册表项可以控制该超时。在 Linux 上,我不确定,但停止 X 窗口系统可能会有所帮助。 Linux 上的 CUDA 用户也遇到了同样的问题,因此 Nvidia 论坛上可能有解决方案。
-
感谢您的回答,这不是因为这个创建是在 CPU 端。但是它会触发 GC(见下文)
标签: mono opencl gpu nvidia signal-handling