ネットブックに2つのGPUがあります。どの時点で実際に使用しているのかを知るにはどうすればよいですか?
前に述べたlspciメソッドは両方とも[VGA controller]
と時々言うことができるので、Ubuntuでディスクリートグラフィックスを動作させるために時間を費やし、この質問に答えることは常に困難でした。
次のコマンドで、アクティブなチップを確認できるはずです。
$ glxinfo|egrep "OpenGL vendor|OpenGL renderer"
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Mobile
私にとって、これは私のインテルグラフィックスがショーを実行していることを教えてくれます。 nvidiaチップを使用していて、bumblebee
パッケージを使用している場合、その行の前にoptirun
を置くと、NVidiaチップを実行していることがわかります。 (基本的に、optirunはコンピューターにディスクリートチップを使用して次のコマンドを実行するように指示しますが、他のすべてはまだ統合チップを使用しています)
$ optirun glxinfo|egrep "OpenGL vendor|OpenGL renderer"
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 555M/PCIe/SSE2
glxheads
は、使用中のグラフィックスカードに関する有用な情報も提供し(ほとんどの場合、よりコンパクトで読みやすい形式でglxinfoを繰り返します)、回転する三角形の素敵なレンダリングを提供します。
現在どのGPUがコマンドになっている(つまり、アクティブなVGAコントローラーである)かを確認するには、次のように入力します。
lspci -vnnn | Perl -lne 'print if /^\d+\:.+(\[\S+\:\S+\])/' | grep VGA
[VGA controller]
末尾の現在アクティブなGPUです。その他はオフになっています。次の例では、nVidiaカードが使用されていないときにIntelカードがアクティブになっています。
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)
nvidia-smi -L
これは私が欲しかったものを私に与えました。このコマンドは、マシンに存在するGPUのリストを表示します。これは、アクティブなものを特定するのに役立ちます。
ここのスレッドからコマンドを取得しました: 複数のNVIDIA GPUカードを備えたUbuntuボックス| devtalk.nvidia.com
どのOSを使用していますか?ほとんどのLinuxマシンでlspciを使用している場合、pciデバイスのリストが表示されます。グラフィックスデバイスのgrepを実行すると、両方のデバイスがポップアップ表示されます。その後、それぞれの設定を確認すると、up/on/activeなどの詳細が表示されます。
nvidia-smi
は非常に便利ですが、常にすべてが含まれているとは限らないことがあります。プロセスがクラッシュしたときに、それらが常にリストされているわけではないようです。
Sudo lsof /dev/nvidia*
は常に私のために働いてきました。 Sudo
がなくても機能しますが、自分が所有しているプロセスのみが表示されます。マルチユーザーマシンで作業している場合、またはDockerを使用している場合は、Sudo
を使用するとより良い結果が得られるでしょう。
2つのコマンドの間に不一致がある場合は、kill
で見つかった追加のプロセスをlsof
ingすることを検討してください。