如何防止两个CUDA程序发生干扰
我注意到,如果两个用户同时尝试运行CUDA程序,它往往会锁定卡或驱动程序(或两者?)。 我们需要重置卡或重启机器以恢复正常行为。
有没有办法让GPU锁定,以便其他程序在运行时不会受到干扰?
编辑
OS是在服务器上运行的Ubuntu 11.10。 虽然没有运行X Windows,但该卡用于显示文本系统控制台。 有多个用户。
如果您使用TCC驱动程序在Linux或Windows上运行,则可以使用nvidia-smi
实用程序将GPU置于计算独占模式。
如果另一个进程已经在该GPU上保存上下文,则计算独占模式使驱动程序拒绝上下文建立请求。 任何尝试在繁忙的计算专用GPU上运行的进程都将收到无设备可用错误并失败。
您可以使用“任务后台处理程序”等功能排列程序并在此时运行一个程序。
我们使用TORQUE资源管理器,但比ts
更难配置。 使用TORQUE,您可以有多个队列(即一个用于cuda作业,两个用于cpu作业)并为每个gpu分配一个不同的作业。
上一篇: How to prevent two CUDA programs from interfering
下一篇: gpu kernel overlap