如何检查哪些NVIDIA GPU用于显示



我所在的系统具有多个NVIDIA GPU。它们中的一个或多个可能用于驱动物理监视器,也可能不用于。在我的计算工作中,我想避免使用那个(或多个(。

如何通过编程检查哪些GPU用于显示?

如果没有可靠的方法,我会满足于获得Xorg进程使用的GPU(这就是nvidia-smi在命令行上给我的(

如果您想要使用相同的进程,您可以检查NVML API函数nvmlDeviceGetDisplayActivenvmlDeviceGetDisplayMode。具体而言,

  • nvmlReturn_t nvmlDeviceGetDisplayMode ( nvmlDevice_t device, nvmlEnableState_t* display )可用于检测物理显示器是否连接到设备
  • nvmlReturn_t nvmlDeviceGetDisplayActive ( nvmlDevice_t device, nvmlEnableState_t* isActive )可用于检查X服务器是否连接到设备,X服务器可能正在运行,而没有连接物理显示器

文档链接

在终端上尝试以下操作

nvidia-smi --format=csv --query-gpu=index,display_mode,display_active

有关更多信息,请查看nvidia-smi文档和nvidia-smi --help-query-gpu

最新更新