J'ai 2 GPU dans mon netbook. Comment savoir lequel j'utilise réellement à un moment donné?
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.
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)
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
nvidia-settings
GUI
Sur Ubuntu 15.10, après avoir installé nvidia-352
et le GPU semble fonctionner:
nvidia-settings
montre quelque chose comme:
Notez comment cela se voit:
GPU 0 - (NVS 5400M)
où 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.
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 kill
ing les processus supplémentaires trouvés avec lsof
.