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

时间:2013-03-03 00:26:45

标签: windows cuda timeout gpgpu multi-gpu

来自Nvidia的网站,它解释了超时问题:

  

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

     

因此,建议CUDA在GPU上运行   没有连接到显示器,也没有Windows桌面   延伸到它上面。在这种情况下,系统必须至少包含一个   NVIDIA GPU作为主要图形适配器。

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

所以看起来,nvidia认为,或者至少强烈暗示,拥有多个(nvidia)gpus,并且配置正确,可以防止这种情况发生?

但是怎么样?到目前为止,我尝试了很多方法,但GK110 GPU仍然存在令人讨厌的超时时间:(1)插入辅助PCIE 16X插槽; (2)未连接到任何监视器(3)被设置为在驱动程序控制面板中使用作为专用的physX卡(如其他人所推荐的那样),但是阻挡仍然存在。

1 个答案:

答案 0 :(得分:4)

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

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

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

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