我正在研究“富士通”机器。它安装了2个GPU:Quadro 2000和Tesla C2075。 Quadro GPU有1 GB RAM,Tesla GPU有5GB。 (我使用nvidia-smi -q的输出进行了检查)。当我运行nvidia-smi时,输出显示2个GPU,但Tesla的显示则显示为off。
我正在运行一个内存密集型程序,并希望使用5 GB的可用RAM,但是每当我运行一个程序时,它似乎都在使用Quadro GPU。
是否有某种方法可以在程序中使用2个中的特定GPU? Tesla GPU被“禁用”是否表示未安装驱动程序?

最佳答案

您可以使用环境或以编程方式控制对CUDA GPU的访问。

您可以使用环境变量CUDA_VISIBLE_DEVICES指定一个对所有应用程序可见的1个或多个GPU的列表,以及它们的可见性顺序。例如,如果nvidia-smi将您的Tesla GPU报告为GPU 1(将Quadro报告为GPU 0),则可以设置CUDA_VISIBLE_DEVICES=1以仅启用CUDA代码使用的Tesla。

参见我的blog post on the subject

要控制应用程序以编程方式使用的GPU,应使用device management API of CUDA。使用cudaGetDeviceCount查询设备的数量,然后可以对每个设备cudaSetDevice进行查询,使用cudaGetDeviceProperties查询其属性,然后选择适合您的应用程序条件的设备。您也可以使用cudaChooseDevice选择与您指定的设备属性最匹配的设备。

关于cuda - 如何启用/禁用特定的图形卡?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22145596/

10-12 17:08
查看更多