设置cudaDeviceProperty:cudaKernelExecTimeoutEnabled
是否可以在运行时将设备属性 cudaKernelExecTimeoutEnabled 设置为 0?目前它是 1,因为我还在其上运行 X 服务器。问题是,我的线程超时。
Is it possible to set the device property cudaKernelExecTimeoutEnabled
to 0 at runtime? Currently it is 1 because I'm also running an X-server on it. The problem is, that my threads time out.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 Linux 上,您可以通过在 X11 配置中添加一个选项来禁用超时(对我来说大约 6 到 7 秒)。在现代 Linux 系统上,不再有 X11 配置,一切都是自动检测的,但您可以手动创建它:
然后将以下内容添加到此文件中:
这里的关键是“Interactive”选项。即使没有重新启动 X11,这对我也有效。很明显,一旦我的 OpenCL 应用程序启动,就会读取并应用此配置。
“标识符”可以是任意值。在我的例子中,“Driver”是“nvidia”,因为我使用的是适用于 Linux 的专有 Nvidia 驱动程序(官方 Debian 软件包存储库的一部分)。
On Linux, you can disable the timeout (about 6 to 7 seconds for me) by adding an option to your X11 configuration. On modern Linux systems, there is no X11 configuration any more, everything is autodetected, but you can create it manually:
Then add the following into this file:
The key here is the "Interactive" option. This works for me even without X11 restart. It was obvious that this configuration is read and applied as soon as my OpenCL application is started.
"Identifier" can be an arbitrary value. "Driver" is "nvidia" in my case, since I'm using the proprietary Nvidia driver for Linux (part of the official Debian package repositories).
我假设您使用的是 Windows:
您需要禁用 Windows 驱动程序超时:
创建一个 REG_DWORD 并将其设置为 1。
I am assuming you are on windows:
You need to disable the windows driver timeout:
create a REG_DWORD and set it to 1.
在 Linux 上,您需要使用
nvidia-smi
命令来更改设备的属性。但我认为如果您在 GPU 上运行显示器,您可能无法设置该属性。On Linux, you need to use the
nvidia-smi
command to change properties of the device. But I think if you're running a display on the GPU, you might not be able to set that property.