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

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

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

出于这个原因,build议CUDA在未连接到显示器的GPU上运行,并且没有将Windows桌面扩展到它。 在这种情况下,系统必须至less包含一个用作主要graphics适配器的NVIDIA GPU。

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

那么看起来,nvidia认为,或者至less强烈地暗示,具有多(nvidia)gpus,并且具有适当的configuration,可以防止这种情况发生?

但是,如何? 到目前为止,我尝试了很多方法,但是在GK110 GPU上仍然存在令人讨厌的超时问题:(1)插入次PCIE 16X插槽; (2)没有连接到任何监视器(3)被设置为在驱动器控制面板中使用作为一个独家的PhysX卡(由其他人推荐),但封锁仍然在那里。

如果您的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模式,则它受制于看门狗定时器。