我的上网本中有 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)