如何使用辅助GPU覆盖Windows上的CUDA内核执行时间限制?

use*_*564 5 windows timeout cuda gpgpu multi-gpu

在Nvidia的网站上,它解释了超时问题:

问:最大内核执行时间是多少?在Windows上,单个GPU程序启动的最大运行时间约为5秒。超过此时间限制通常会导致通过CUDA驱动程序或CUDA运行时报告启动失败,但在某些情况下可能会挂起整个计算机,需要进行硬重置。这是由Windows“看门狗”计时器引起的,该计时器导致使用主图形适配器的程序运行时间超过允许的最长时间。

因此,建议在未连接显示器且未扩展Windows桌面的GPU上运行CUDA。在这种情况下,系统必须至少包含一个用作主要图形适配器的NVIDIA GPU。

资料来源:https : //developer.nvidia.com/cuda-faq

因此,nvidia相信或至少强烈暗示拥有多个(nvidia)gpu并配置正确,可以防止这种情况发生?

但是如何?到目前为止,我尝试了很多方法,但是GK110 GPU上仍然存在令人讨厌的超时问题:(1)插入辅助PCIE 16X插槽;(2)未连接任何显示器(3)已设置为在驱动程序控制面板中用作physX专用卡(某些其他人的建议),但仍然可以使用。

Rob*_*lla 5

如果您的 GK110 是Tesla K20c GPU,那么您应该将设备从 wddm 模式切换到 TCC 模式。这可以通过随驱动程序一起安装的 nvidia-smi.exe 工具来完成。使用 Windows 搜索功能查找此文件 (nvidia-smi.exe),然后使用命令行帮助 (`nvidia-smi --help) 查找将 GPU 从 WDDM 切换到 TCC 模式所需的命令。

完成此操作后,Windows 看门狗机制将不再关注您的 GK110 设备。

另一方面,如果它是 GeForce GPU,则无法将其切换到 TCC 模式。您唯一的选择是修改注册表设置,这有点困难。您的里程可能会有所不同,因为 reg 键的确切结构因操作系统而异。

如果 GPU 处于 WDDM 模式,则受制于看门狗定时器。