【发布时间】:2011-04-11 17:40:29
【问题描述】:
我有一台 Nvidia Tesla s2050;带有 nvidia quadro 卡的主机。带有 CUDA 3.1 的 CentOS 5.5 当我运行 cuda 应用程序时,我想使用 4 Tesla c-2050,但不包括主机上的 quadro,以免在将作业平均分配为 5 时落后于整体性能。有什么方法可以实现吗?
【问题讨论】:
我有一台 Nvidia Tesla s2050;带有 nvidia quadro 卡的主机。带有 CUDA 3.1 的 CentOS 5.5 当我运行 cuda 应用程序时,我想使用 4 Tesla c-2050,但不包括主机上的 quadro,以免在将作业平均分配为 5 时落后于整体性能。有什么方法可以实现吗?
【问题讨论】:
是的。检查CUDA Support/Choosing a GPU
问题
在一台机器上运行你的代码 多个 GPU 可能会导致您的代码 在较旧且速度较慢的 GPU 上执行。
解决方案
如果您知道设备的设备号 您要使用的 GPU,请致电 cudaSetDevice(N)。为了更稳健 解决方案,包括显示的代码 下面在你的程序的开头 自动选择最佳 GPU 在任何机器上。
查看他们的网站以获得进一步的解释。
您可能还会觉得this post 很有趣。
【讨论】:
我假设您有四个进程和四个设备,尽管您的问题表明您有五个进程和四个设备,这意味着手动调度可能更可取(Tesla 设备处于“共享”模式)。
最简单的方法是使用 nvidia-smi 来指定 Quadro 设备“禁止计算”。您还可以指定 Teslas 是“计算独占”的,这意味着在任何给定时间只能将一个上下文附加到其中的每一个。
运行 man nvidia-smi 以获取更多信息。
【讨论】: