如何检查 Linux 中哪个 GPU 处于活动状态?

如何检查 Linux 中哪个 GPU 处于活动状态?

我的上网本中有 2 个 GPU。我如何知道在特定时刻我实际使用的是哪一个?

答案1

我刚刚经历了一段艰难的时间,试图让我的独立显卡在 Ubuntu 中工作,而回答这个问题一直是一个挑战,因为前面提到的 lspci 方法有时可以说两者都是[VGA controller]

我认为以下命令应该可以指示您的活动芯片:

$ glxinfo | grep -E "OpenGL vendor|OpenGL renderer"
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Mobile

对我来说,这告诉我我的英特尔显卡正在运行。

glxinfo可以从mesa-utils软件包中获取,因此如果尚未安装,则需要安装它。例如,在 Ubuntu 22.04 上,运行:

sudo apt-get install mesa-utils

如果您使用的是 NVIDIA 芯片,并且正在使用该bumblebee软件包,您可以optirun将该行放在前面,它应该告诉您您正在运行 NVIDIA 芯片(optirun基本上是告诉计算机使用独立芯片运行后面的任何命令,但其他一切仍然使​​用集成芯片)。

$ optirun glxinfo | grep -E "OpenGL vendor|OpenGL renderer"
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 555M/PCIe/SSE2

glxheads是另一个有用的命令mesa-utils,它告诉您一些有关正在使用的显卡的有用信息(glxinfo不过,大部分以更紧凑且易于阅读的形式重复),并且它为您提供了旋转三角形的良好渲染。

答案2

要检查当前正在使用哪个 GPU(这意味着哪个是活动的 VGA 控制器),请输入

lspci -vnnn | perl -lne 'print if /^\d+\:.+(\[\S+\:\S+\])/' | grep VGA

[VGA controller]任何末尾带有的控制器都是您当前活动的 GPU。其他的都关掉了。在以下示例中,Intel 卡处于活动状态,而 nVidia 卡未使用:

00:02.0 VGA compatible controller [0300]: Intel Corporation Core Processor
Integrated Graphics Controller [8086:0046] (rev 02) (prog-if 00 [VGA 
controller])
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF108 [GeForce
GT 540M] [10de:0df4] (rev ff) (prog-if ff)

答案3

nvidia-settings图形用户界面

在 Ubuntu 15.10 上,安装后nvidia-352GPU 似乎可以工作:

nvidia-settings

显示类似:

在此输入图像描述

注意它是如何显示的:

GPU 0 - (NVS 5400M)

NVS 5400M我的 GPU 型号在哪里?

然后,如果我启动glxgears,“GPU 利用率”将达到 > 90%。

因此,我希望如果您有多个 GPU,您可以看到每个 GPU 一次的使用量。

答案4

nvidia-smi只需在终端中输入即可。然后检查使用百分比。这将指示正在使用哪个 GPU。

在此输入图像描述

相关内容