如何防止两个CUDA程序干扰

时间:2012-12-16 09:37:49

标签: cuda locking nvidia

我注意到如果两个用户同时尝试运行CUDA程序,它往往会锁定卡或驱动程序(或两者兼而有之?)。我们需要重置卡或重启机器以恢复正常行为。

有没有办法锁定GPU,以便其他程序在运行时不会干扰?

修改

OS是在服务器上运行的Ubuntu 11.10。虽然没有运行X Windows,但该卡用于显示文本系统控制台。有多个用户。

2 个答案:

答案 0 :(得分:7)

如果您使用TCC驱动程序在Linux或Windows上运行,则可以使用nvidia-smi utility将GPU置于计算独占模式。

如果另一个进程已经在该GPU上保存了上下文,则计算独占模式会使驱动程序拒绝上下文建立请求。尝试在繁忙的计算专用GPU上运行的任何进程都将收到无设备可用错误并失败。

答案 1 :(得分:2)

您可以使用类似Task Spooler的内容对程序进行排队,然后运行一个程序。

我们使用TORQUE Resource Manager,但配置比ts更难。使用TORQUE,您可以拥有多个队列(即一个用于cuda作业,两个用于cpu作业)并为每个gpu分配不同的作业。