Cuda 如何启用/禁用特定图形卡?

Cuda 如何启用/禁用特定图形卡?,cuda,gpu,nvidia,Cuda,Gpu,Nvidia,我在一台“富士通”机器上工作。它安装了2个GPU:Quadro 2000和特斯拉C2075。Quadro GPU有1GB内存,特斯拉GPU有5GB内存。(我使用nvidia smi-q的输出进行了检查)。当我运行nvidia smi时,输出显示2 GPU,但特斯拉ones显示为关闭。 我正在运行一个内存密集型程序,希望使用5 GB的可用RAM,但每当我运行一个程序时,它似乎都在使用Quadro GPU。 有什么方法可以在程序中使用2个GPU中的一个吗?特斯拉GPU被“禁用”是否意味着未安装其驱动

我在一台“富士通”机器上工作。它安装了2个GPU:Quadro 2000和特斯拉C2075。Quadro GPU有1GB内存,特斯拉GPU有5GB内存。(我使用nvidia smi-q的输出进行了检查)。当我运行nvidia smi时,输出显示2 GPU,但特斯拉ones显示为关闭。 我正在运行一个内存密集型程序,希望使用5 GB的可用RAM,但每当我运行一个程序时,它似乎都在使用Quadro GPU。
有什么方法可以在程序中使用2个GPU中的一个吗?特斯拉GPU被“禁用”是否意味着未安装其驱动程序?

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

您可以使用环境变量
CUDA\u VISIBLE\u DEVICES
指定任何应用程序都可以看到的1个或多个GPU的列表,以及它们的可见性顺序。例如,如果nvidia smi将您的特斯拉GPU报告为GPU 1(将您的Quadro报告为GPU 0),则您可以设置
CUDA_VISIBLE_DEVICES=1
,以仅允许CUDA代码使用特斯拉

看我的


要以编程方式控制应用程序使用的GPU,应使用。使用
cudaGetDeviceCount
查询设备数量,然后您可以
cudaSetDevice
查询每个设备,使用
cudaGetDeviceProperties
查询其属性,然后选择符合您的应用标准的设备。您还可以使用来选择与指定的设备属性最匹配的设备。

您是否试图从自己的应用程序以编程方式触发此操作?或者这是一个关于机器的一般性问题?@DanHarris这是一个一般性问题。我只是想知道如何使用安装在我机器上的5GB GPU?我想说这个问题会更好,因为堆栈溢出用于编程问题。超级用户更适合问这样的问题。这个问题在这里很好。这个问题的答案对CUDA程序员很有用。一般来说,您可以使用
cudaSetDevice
。它需要一个数字,这是您要在其上运行计算的GPU ID。哪一个数字是指哪一张卡可以根据该职位的公认答案来确定。请您澄清一下,特斯拉ones显示屏显示为off是什么意思?