Comment obtenir les informations sur le GPU?


156

Je cherche une commande qui me donnerait les mêmes informations que:

cat /proc/cpuinfo 

Sauf pour le GPU (type de la puce et de la mémoire, fréquence).


qu'est-ce que: cat /proc/cpuinfo fait? quelle info cherchez-vous?
Charlie Parker

1
@CharlieParker il affiche les informations de la CPU ...
Emobe

Réponses:


75

Ce type d'informations est non standard et les outils que vous utiliserez pour les collecter varient considérablement.

La commande glxinfovous donnera toutes les informations OpenGL disponibles pour le processeur graphique, y compris son nom de fournisseur, si les pilotes sont correctement installés.

Pour obtenir des informations sur la vitesse d'horloge, il n'y a pas d'outil standard.

  • Pour les GPU ATI / AMD, aticonfig --odgcva chercher les fréquences d'horloge et aticonfig --odgtva chercher les données de température.
  • Pour les GPU NVIDIA, le nvclockprogramme récupérera les mêmes informations.

Je ne connais pas d'outil équivalent pour les pilotes Open Source, Intel ou autres GPU.

D'autres informations sur le matériel peuvent être extraites des outils lspciet lshw.


2
Comment installer glxinfo?
Stiv

7
@stiv: Cela fait partie de la bibliothèque Mesa et vient avec le paquet mesa-utilssur Ubuntu.
Greyfade

2
aticonfigne semble pas être disponible depuis le départ à la retraite de fglrx. nvclocksemble également avoir été abandonné depuis la dernière version était pour fidèle. Avez-vous des solutions mises à jour? Voici ce que j'ai jusqu'à présent ..
Elder Geek

2
glxinfo | grep "Device"a fonctionné assez bien pour moi sur un processeur graphique Intel
John Hamilton

J'utilise:glxinfo | egrep -i 'device|memory'
danger89 le

154

Je ne connais pas d'équivalent direct, mais lshw devrait vous donner l'info que vous voulez, essayez:

sudo lshw -C display

(cela fonctionne aussi sans sudomais les informations peuvent être moins complètes / précises)

Vous pouvez également installer le package lshw-gtkpour obtenir une interface graphique.


3
Il a fallu mettre gksu avant la commande dans le menu pour que lshw-gtk fonctionne.
robin0800

Les mises à jour? Je suis un fan de la commande mais la seule fréquence d'horloge (fréquence) qu'il semble me fournir est l'horloge du bus de base 33 MHz. J'essaie de mettre à jour ce Q & R. Je vous remercie!
Elder Geek

1
Excuses, nouveau pour Deep Learning. Que devrait-il dire si j'ai un GPU? Il ditproduct: 2nd Generation Core Processor Family Integrated Graphics Controller
franc

80

Un article de blog mettant l'accent sur le travail effectué sur la ligne de commande est ici:

http://www.cyberciti.biz/faq/howto-find-linux-vga-video-card-ram/

Découvrez l'ID de l'appareil:

 lspci | grep ' VGA ' | cut -d" " -f 1
03:00.0

Vous pouvez ensuite utiliser cette sortie avec à lspcinouveau, formant deux commandes imbriquées

lspci  -v -s  $(lspci | grep ' VGA ' | cut -d" " -f 1)

Si vous avez plus d'une carte GPU, essayez plutôt cette commande équivalente:

lspci | grep ' VGA ' | cut -d" " -f 1 | xargs -i lspci -v -s {}

Sortie de mon système:

03:00.0 VGA compatible controller: NVIDIA Corporation G98 [Quadro NVS 295] (rev a1) (prog-if 00 [VGA controller])
    Subsystem: NVIDIA Corporation Device 062e
    Flags: bus master, fast devsel, latency 0, IRQ 24
    Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
    Memory at ec000000 (64-bit, prefetchable) [size=64M]
    Memory at f4000000 (64-bit, non-prefetchable) [size=32M]
    I/O ports at dc80 [size=128]
    [virtual] Expansion ROM at f7e00000 [disabled] [size=128K]
    Capabilities: <access denied>
    Kernel driver in use: nvidia

EDIT: Vous pouvez éviter le <access denied>en lançant avecsudo

Donc, (prefetchable) [size=64M)indique que j'ai une carte NVIDIA de 64 Mo. Cependant, je ne le fais pas, c'est plutôt 256 Mo. Pourquoi? Voir ci-dessous.

Pour savoir comment obtenir le maximum d'informations et de performances, lisez un article extrêmement complet sur le wiki Arch-Linux.

https://wiki.archlinux.org/index.php/NVIDIA

Pour les utilisateurs de nvidia , commencez par

nvidia-smi

(Cela fonctionne avec les pilotes Nvidia installés, mais pas avec les systèmes exécutant le pilote «nouveau» open-source).

Sortie

Thu Dec 19 10:54:18 2013       
+------------------------------------------------------+                       
| NVIDIA-SMI 5.319.60   Driver Version: 319.60         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro NVS 295      Off  | 0000:03:00.0     N/A |                  N/A |
| N/A   73C  N/A     N/A /  N/A |      252MB /   255MB |     N/A      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Compute processes:                                               GPU Memory |
|  GPU       PID  Process name                                     Usage      |
|=============================================================================|
|    0            Not Supported                                               |
+-----------------------------------------------------------------------------+

Cela indique que j'ai une carte graphique GDDR3 de 256 Mo.

Pour le moment, je ne sais pas comment obtenir cela avec les GPU Intel et AMD / ATI.


12
+1 pour nvidia-smi(cela devrait être souligné un peu à mon avis)
Martin Thoma


2
Cela devrait vraiment être la réponse acceptée!
INElutTabile

1
nvidia-smine pas me montrer le nom complet du GPU.
mrgloom

48

Exécuter google-chromeet naviguer vers l'URL about:gpu. Si chrome a compris comment utiliser OpenGL, vous obtiendrez des informations extrêmement détaillées sur votre GPU.


2
Cela fonctionne aussi en chrome ( chromium-browser).
Eliah Kagan

Intelligent. Dans le même esprit, je suis également allé sur chromeexperiments.com pour voir les performances. Smooth as butter - Je suis définitivement sur gpu
Jacksonkr

30

Comme vous avez spécifié une commande similaire catà celle des processeurs, cette option est équivalente à celle des GPU. Spécifiquement pour les cartes Nvidia. Il ne nécessite aucun logiciel à l'exception du pilote de périphérique Nvidia pour être chargé.

Le chemin ici fonctionne pour les cartes que j'ai. Mais le vôtre peut différer comme d'autres l'ont souligné dans les commentaires.

1er GPU

> cat /proc/driver/nvidia/gpus/0/information
Model:       GeForce GTX 680
IRQ:         24
GPU UUID:    GPU-71541068-cded-8a1b-1d7e-a093a09e9842
Video BIOS:      80.04.09.00.01
Bus Type:    PCIe
DMA Size:    40 bits
DMA Mask:    0xffffffffff
Bus Location:    0000:01.00.0

2ème GPU

> cat /proc/driver/nvidia/gpus/1/information
Model:       GeForce GTX 580
IRQ:         33
GPU UUID:    GPU-64b1235c-51fc-d6f1-0f0e-fa70320f7a47
Video BIOS:      70.10.20.00.01
Bus Type:    PCIe
DMA Size:    40 bits
DMA Mask:    0xffffffffff
Bus Location:    0000:08.00.0

7
Merci! (bien que cat /proc/driver/nvidia/gpus/0000\:01\:00.0/informationpour moi)
Matt Wilkie

1
C’est la seule réponse correcte dans un environnement de cluster cloud / HPC à la demande sur lequel glxinfo ou lspci échouent (le premier parce qu’il n’ya pas d’OpenGL et d’affichage, le second parce que la carte graphique nVidia est extraite par un contrôleur graphique tel que Matrox G200eW3). Le nom du dossier sous GPUs est 0000:3b:00.0ou 0000:d8:00.0pour moi, donc nous devons saisir: cat /proc/driver/nvidia/gpus/0000:3b:00.0/information. Le beau Tesla V100-PCIE-16GBmodèle montre que la qsublimite d’emplois est satisfaite comme souhaité.
user5280911



7

Je crois que la meilleure option pour cela est neofetch .

# Get neofetch
sudo add-apt-repository ppa:dawidd0811/neofetch
sudo apt update
sudo apt get neofetch
# Run neofetch
neofetch

Cela donne une sortie comme celle-ci:


3
Je ne vois pas la fréquence de la carte vidéo et la mémoire dans cette réponse. Il existe des méthodes beaucoup plus simples pour obtenir le modèle de GPU qui semble être tout ce que vous nous donnez. Je ne suis pas sûr de ce que cela ajoute aux réponses existantes.
Elder Geek

1
Le screenfetchprogramme fait la même chose et n'exige pas de PPA à installer.
Braden Best le

C'est un script shell. De plus, j'ai lié à son github afin que vous puissiez simplement l'utiliser comme un script.
HaoZeke


5

Écran de démarrage Conky ou Terminal

J'utilise deux méthodes pour afficher automatiquement les informations du processeur graphique nVidia et des informations Intel iGPU:

  • Conky affiche de manière dynamique les informations du processeur graphique en temps réel
  • ~/.bashrc affiche les informations GPU à chaque ouverture du terminal

Affichage en temps réel de Conky

Cet exemple utilise Conky pour afficher les statistiques actuelles du processeur graphique (nVidia ou Intel) en temps réel. Conky est un moniteur système léger populaire auprès de nombreux passionnés de Linux.

L'affichage change selon que vous avez démarré après prime-select intelou prime-select nvidia.

Intel iGPU

gpu temp intel.gif

  • Le processeur Intel iGPU indique Skylake GT2 HD 530 iGPUla fréquence actuelle
  • La fréquence minimale est le 350MHz et le maximum est le 1050MHz

GPU nVidia

gpu temp nvidia.gif

  • Le GPU nVidia s’affiche comme GeForce GTX970Mavec la fréquence et la température actuelles du GPU
  • La version du pilote, l'état P-State et la version du BIOS sont affichés.
  • La charge du GPU, l'utilisation de la RAM, la consommation d'énergie et la fréquence de la RAM sont affichées.

Code Conky

Voici le script Conky pertinent pour Intel iGPU et nVidia GPU:

#------------+
# Intel iGPU |
#------------+
${color orange}${hr 1}${if_match "intel" == "${execpi 99999 prime-select query}"}
${color2}${voffset 5}Intel® Skylake GT2 HD 530 iGPU @${alignr}${color green}${execpi .001 (cat /sys/class/drm/card1/gt_cur_freq_mhz)} MHz
${color}${goto 13}Min. Freq:${goto 120}${color green}${execpi .001 (cat /sys/class/drm/card1/gt_min_freq_mhz)} MHz${color}${goto 210}Max. Freq:${alignr}${color green}${execpi .001 (cat /sys/class/drm/card1/gt_max_freq_mhz)} MHz
${color orange}${hr 1}${else}
#------------+
# Nvidia GPU |
#------------+
${color2}${voffset 5}${execpi .001 (nvidia-smi --query-gpu=gpu_name --format=csv,noheader)} ${color1}@ ${color green}${execpi .001 (nvidia-smi --query-gpu=clocks.sm --format=csv,noheader)} ${alignr}${color1}Temp: ${color green}${execpi .001 (nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader)}°C
${color1}${voffset 5}Ver: ${color green}${execpi .001 (nvidia-smi --query-gpu=driver_version --format=csv,noheader)} ${color1} P-State: ${color green}${execpi .001 (nvidia-smi --query-gpu=pstate --format=csv,noheader)} ${alignr}${color1}BIOS: ${color green}${execpi .001 (nvidia-smi --query-gpu=vbios_version --format=csv,noheader)}
${color1}${voffset 5}GPU:${color green}${execpi .001 (nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader)} ${color1}Ram:${color green}${execpi .001 (nvidia-smi --query-gpu=utilization.memory --format=csv,noheader)} ${color1}Pwr:${color green}${execpi .001 (nvidia-smi --query-gpu=power.draw --format=csv,noheader)} ${alignr}${color1}Freq: ${color green}${execpi .001 (nvidia-smi --query-gpu=clocks.mem --format=csv,noheader)}
${color orange}${hr 1}${endif}

~/.bashrc Écran de démarrage du terminal

Cet exemple modifie l' ~/.bashrcaffichage des informations sur un écran de démarrage à chaque ouverture du terminal ou chaque fois que vous tapez . .bashrcà l'invite du shell.

En plus des neofetchréponses précédentes, il y en a un screenfetchqui est beaucoup plus joli (IMO). De plus, une autre réponse indique qu’il ne sait pas comment obtenir la liste iGPU et que cela se fait:

ubuntu terminal splash.png

Pour plus de détails sur la configuration, voir: Écran de démarrage du terminal avec météo, calendrier, heure et infos système?

En résumé, pour la partie inférieure avec l’affichage Ubuntu contenant les informations GPU (avant-dernière ligne), utilisez:

sudo apt install screenfetch
screenfetch

Vous voudrez mettre la screenfetchcommande au bas de votre ~/.bashrcfichier pour qu'il apparaisse chaque fois que vous ouvrez le terminal.



3

Pour le modèle et la mémoire, voici une solution qui fonctionne pour toutes les cartes vidéo sur lesquelles je l'ai testée, quel que soit le fabricant (Intel, AMD, NVIDIA):

GPU=$(lspci | grep VGA | cut -d ":" -f3);RAM=$(cardid=$(lspci | grep VGA |cut -d " " -f1);lspci -v -s $cardid | grep " prefetchable"| cut -d "=" -f2);echo $GPU $RAM

GPU = Tout ce bit ne saisit que le 3ème champ de la sortie 'lspci' filtrée via 'grep' pour VGA qui correspond à la puce vidéo.

RAM = Tout ce bit ne définit pas la variable cardidcomme étant le premier champ de sortie de la lspcicorrespondance "VGA" et la transmet comme demande de -vsortie prolixe lspcipour ce -spériphérique spécifique , en filtrant ensuite la sortie greppour la chaîne "prefetchable" car elle contient la mémoire sur la carte elle-même (notez l'espace précédent car nous ne voulons pas faire correspondre "non-préfetchable" dans notre sortie.

Pour la fréquence d'horloge sur les cartes graphiques intégrées Intel (testé sur I3 et I5)

exécute la commande sudo find /sys -type f -name gt_cur* -print0 | xargs -0 cat Ceci plonge dans l’arborescence / sys pour localiser le fichier gt_cur_freq_mhz qui se trouve sur mon I3 /sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_cur_freq_mhzet affiche le contenu. qui dans mon cas sous une charge extrêmement légère correspond 350à 350 MHz, ce qui correspond à la fréquence minimale trouvée dans /sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_min_freq_mhzet pendant le fonctionnement glxgearset glmark2donne 1050comme à 1050 MHz, ce qui correspond à la fréquence maximale trouvée dans/sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_max_freq_mhz

Pour les fréquences d'horloge sur les cartes nvidia:

nvidia-smi -stats -d procClkcorrespond à l'horloge du GPU correspond à l'horloge nvidia-smi -stats -d memClkde la mémoire.

Remarque: je ne parviens pas à tester les éléments ci-dessus car mon fidèle GeForce 210 n'est pas pris en charge et cela ne fonctionne que sur les GPU Kepler ou plus récents, comme indiqué par `nvidia-smi -stats --help '.

Je n'ai actuellement aucune solution pour la fréquence d'horloge sur les cartes AMD et je n'ai pas le matériel disponible pour les tests. Je dirai cependant que, au meilleur de ma connaissance, la aticonfigréponse mentionnée dans la réponse acceptée n'existe plus et il semble que nvclockrien ne soit disponible depuis la confiance.


2

Si vous utilisez Ubuntu sur un Chromebook avec Crouton, la seule des réponses qui fonctionneront sera celle chrome://gpudu navigateur Chrome.


2

Si vous souhaitez avoir des informations simples, vous pouvez essayer gpustat . C'est très bon et simple.

capture d'écran de gpustat

L'auteur donne les instructions d'installation suivantes:

Installer depuis PyPI:

pip install gpustat 

Pour installer la dernière version (branche principale) via pip:

pip install git+https://github.com/wookayin/gpustat.git@master 

Si vous ne disposez pas des privilèges root, s'il vous plaît essayer d'installer sur l' espace de noms d'utilisateur: pip install --user. Notez que depuis la version 0.4, il gpustat.pyn’ya plus d’exécutable dépendant de zéro. Cependant, dans de rares cas, vous aurez besoin d'un seul script exécutable (hérité), vous pouvez également essayer:

wget https://raw.githubusercontent.com/wookayin/gpustat/v0.3.2/gpustat.py -O ~/.local/bin/gpustat chmod +x ~/.local/bin/gpustat    # Assuming ~/.local/bin is in your $PATH

2

Eh bien, cette réponse suppose que vous avez un serveur doté de NVIDIA-GPU. Vous avez trois façons:

  1. Pour avoir un bref aperçu: nvidia-smi

  2. Pour obtenir une détaillée: nvidia-smi -q. Vous obtiendrez plusieurs écrans d'informations détaillées si vous avez plus de 1 gpu.

  3. Faire un ls /proc/driver/nvidia/gpus/. Il affichera l'emplacement du bus GPU sous forme de dossiers. Maintenant, exécutez la commande suivante pour chacun des emplacements de bus GPU. Remplir <gpu-id>avec l'emplacement du bus:cat /proc/driver/nvidia/gpus/<gpu_id>/information


1

Pour le processeur Intel GMA950 (livré avec EeePC en particulier), vous pouvez exécuter:

setpci -s 00:02.0 f0.b

qui retournera "00" pour 200 MHz, "01" pour 250 MHz ou "03" pour 400 MHz. Vous pourrez peut-être appliquer le même principe à d'autres cartes Intel.


Je reçois 04. Mon GPU est 00: 02.0 Contrôleur compatible VGA: Contrôleur graphique intégré Intel Corporation Mobile GM965 / GL960 (principal) (rév 03) (prog-if 00 [contrôleur VGA])
pourquoi pourquoi le

1

Si vous avez une carte AMD Radeon, vous pouvez exécuter les commandes suivantes

sudo update-pciids #optional command, requires internet
lspci -nn | grep -E 'VGA|Display'

Il devrait signaler quelque chose comme ça

00:01.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Wani [Radeon R5/R6/R7 Graphics] [1002:9874] (rev c5)
03:00.0 Display controller [0380]: Advanced Micro Devices, Inc. [AMD/ATI] Sun XT [Radeon HD 8670A/8670M/8690M / R5 M330 / M430 / R7 M520] [1002:6660] (rev ff)

1

Pour les GPU nvidia, la nvidia-smicommande est votre ami. Voyez man nvidia-smisi vous aimez.

Pour répertorier les GPU, utilisez nvidia-smi -L( nvidia-smi --list-gpus), nvidia-smi -qdonnez des informations sur le gpu et les processus en cours.


0

Utilisez lspci, lspci -vpour obtenir des informations de base, voir ici .

Dans mon cas, par exemple, une fois que je cours lspciet que j'ai:

dina@dina-X450LA:~$ lspci
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 0b)
00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04)
00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04)
00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 1 (rev e4)
00:1c.2 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 3 (rev e4)
00:1c.3 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 4 (rev e4)
00:1d.0 USB controller: Intel Corporation 8 Series USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 8 Series SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04)
02:00.0 Ethernet controller: Qualcomm Atheros QCA8171 Gigabit Ethernet (rev 10)
03:00.0 Network controller: Ralink corp. RT3290 Wireless 802.11n 1T/1R PCIe
03:00.1 Bluetooth: Ralink corp. RT3290 Bluetooth

0

Pour obtenir toutes les informations sur le processeur graphique, vous pouvez utiliser la commande suivante telle que spécifiée par @greyfade.

> glxinfo

Cependant, si le programme glxinfon'est pas installé, vous pouvez l'installer en tapant:

> sudo apt install mesa-utils

Vous devrez également activer le composant appelé universe. Une fois que cela est fait, glxinfotoutes les spécifications relatives au processeur graphique dans cet environnement seront listées.


0

Si vous ne recherchez que les noms des cartes vidéo sur la machine, utilisez simplement:

$ nvidia-smi --list-gpus

Pour certains nouveaux GPU, cela répertorie également la mémoire de chaque périphérique.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.