web-dev-qa-db-fra.com

Comment vérifier quel GPU est actif sous Linux?

J'ai 2 GPU dans mon netbook. Comment savoir lequel j'utilise réellement à un moment donné?

80
LanceBaynes

Je viens de passer un temps fou à essayer de faire fonctionner mes graphiques discrets dans Ubuntu et répondre à ces questions était constamment un défi, car la méthode lspci mentionnée précédemment peut parfois dire que les deux sont [VGA controller]

Je pense que la commande suivante devrait vous donner une indication de votre puce active:

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

Pour moi, cela me dit que mes graphiques Intel dirigent le spectacle. Si vous utilisez une puce nvidia et que vous utilisez le package bumblebee, vous pouvez mettre optirun devant cette ligne et il devrait vous indiquer que vous exécutez la puce NVidia (optirun dit essentiellement à l'ordinateur d'utiliser la puce discrète pour exécuter la commande suivante, mais tout le reste utilise toujours la puce intégrée)

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

glxheads vous donne également des informations utiles sur la carte graphique utilisée (répète principalement glxinfo sous une forme plus compacte et facile à lire), et vous donne un joli rendu d'un triangle rotatif.

51
Nickolai

Pour vérifier quel GPU est actuellement en commande (c'est-à-dire qui est un contrôleur VGA actif), saisissez

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

Tout contrôleur avec [VGA controller] à la fin correspond à votre GPU actuellement actif. Les autres sont éteints. Dans l'exemple suivant, la carte Intel est active alors que la nVidia n'est pas utilisée:

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)
20
ubuntudroid
nvidia-smi -L

Cela m'a donné ce que je voulais. Cette commande affiche la liste des GPU présents sur votre machine. Cela pourrait vous aider à déterminer lesquels sont actifs.

a obtenu la commande du fil ici: Boîte Ubuntu avec plusieurs cartes GPU NVIDIA | devtalk.nvidia.com

9
Hardhik

nvidia-settings GUI

Sur Ubuntu 15.10, après avoir installé nvidia-352 et le GPU semble fonctionner:

nvidia-settings

montre quelque chose comme:

enter image description here

Notez comment cela se voit:

GPU 0 - (NVS 5400M)

NVS 5400M est mon modèle GPU.

Ensuite, si je déclenche glxgears, l'utilisation du GPU passe à> 90%.

Je pense donc que si vous aviez plusieurs GPU, vous pourriez voir combien chacun était utilisé à la fois.

Quel système d'exploitation utilisez-vous? Si vous utilisez lspci sur la plupart des machines linux, vous obtenez une liste de vos périphériques pci, juste grep pour les périphériques graphiques et il devrait apparaître tous les deux. Après cela, vérifiez la configuration de chacun d'eux, vous devriez voir les détails de up/on/active ou quelque chose de ce genre.

1
baweaver

nvidia-smi est très utile, mais j'ai parfois constaté qu'il n'inclut pas toujours tout. Il semble que lorsque les processus se bloquent, ils ne sont pas toujours répertoriés.

Sudo lsof /dev/nvidia* a toujours fonctionné pour moi. Il fonctionnera également sans Sudo, mais n'affichera que les processus qui vous appartiennent. Si vous travaillez sur une machine multi-utilisateur ou utilisez Docker, vous obtiendrez probablement de meilleurs résultats avec Sudo.

Si vous voyez une différence entre les 2 commandes, vous pouvez envisager de killing les processus supplémentaires trouvés avec lsof.

0
Rick Smith