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

pym*_*ymd 2 cuda gpu nvidia

我正在研究一台"fujitsu"机器.它安装了2个GPU:Quadro 2000和Tesla C2075.Quadro GPU有1 GB RAM,Tesla GPU有5GB.(我使用nvidia-smi -q的输出检查).当我运行nvidia-smi时,输出显示2个GPU,但特斯拉显示屏显示为关闭.我正在运行一个内存密集型程序,并希望使用5 GB的RAM,但每当我运行程序时,它似乎都在使用Quadro GPU.有没有办法在程序中使用2中的特定GPU?特斯拉GPU是否被"禁用"意味着它的驱动程序没有安装?

har*_*ism 9

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

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

请参阅我关于此主题的博客文章.

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