web-dev-qa-db-fra.com

Comment obtenir les informations sur le GPU?

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).

142
user2413

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

La commande glxinfo vous 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 --odgc récupère les fréquences d'horloge et aticonfig --odgt récupère les données de température.
  • Pour les GPU NVIDIA, le programme nvclock extraira 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 lspci et lshw.

67
greyfade

Je ne connais pas d'équivalent direct, mais lshw devrait vous donner les informations souhaitées, essayez:

Sudo lshw -C display

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

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

136
Marcel Stimberg

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 à nouveau cette sortie avec lspci, en 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 avec Sudo

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 open source "nouveau").

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.

74
knb

Exécutez google-chrome et accédez à l'URL about:gpu. Si chrome a compris comment utiliser OpenGL, vous obtiendrez des informations extrêmement détaillées sur votre GPU.

46
Chris Uhlik

Pour les cartes Nvidia.

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
28
Matt H

clinfo

Sudo apt-get install clinfo
clinfo

est l'analogue de glxinfo mais pour OpenCL.

nvidia-settings

Mélange l'exécution avec des informations statiques.

enter image description here

Plus de détails: Comment puis-je vérifier si Ubuntu utilise ma carte graphique NVIDIA?

Pour les cartes Nvidia, tapez

nvidia-smi -q
9
Quanlong

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:

7
HaoZeke

É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 du processeur graphique à 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 intel ou prime-select nvidia.

Intel iGPU

gpu temp intel.gif

  • Intel iGPU affiche Skylake GT2 HD 530 iGPU avec la fréquence actuelle
  • La fréquence minimale est 350 MHz et la fréquence maximale est 1050 MHz.

gPU nVidia

gpu temp nvidia.gif

  • Le GPU nVidia s’affiche sous la forme GeForce GTX970M avec 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, la RAM utilisation, la consommation d'énergie et la fréquence RAM sont affichés

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 ~/.bashrc pour afficher des informations sur un écran de démarrage chaque fois que le terminal est ouvert ou chaque fois que vous tapez . .bashrc à l'invite du shell.

En plus de neofetch auquel on a répondu précédemment, il existe screenfetch qui semble 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 commande screenfetch au bas de votre fichier ~/.bashrc pour qu'il apparaisse à chaque fois que vous ouvrez le terminal.

5
WinEunuuchs2Unix

Juste pour trouver les bases, selon https://wiki.debian.org/NvidiaGraphicsDrivers#NVIDIA_Proprietary_Driver ,

lspci | grep VGA

Si vous avez besoin de plus de détails, consultez @ knb's answer à la même question.

3
mightypile

Pour le modèle et la mémoire, voici une solution qui fonctionne pour toutes les cartes vidéo sur lesquelles j'ai testé le test, 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 cardid égale au premier champ de sortie de lspci correspondant à "VGA" et la transmet comme une demande de -v sortie détaillée de lspci pour ce périphérique -s spécifique, filtrage ultérieur la sortie par grep pour 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-prefetchable" dans notre sortie.

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

exécuter la commande Sudo find /sys -type f -name gt_cur* -print0 | xargs -0 cat Ceci permet de plonger dans l’arborescence/sys pour localiser le fichier gt_cur_freq_mhz qui, sur mon I3, est /sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_cur_freq_mhz et affiche le contenu. qui dans mon cas sous une charge extrêmement légère est 350 comme dans 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_mhz et lorsque vous exécutez glxgears et glmark2, le résultat est 1050 comme dans 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 procClk correspond à l'horloge du GPU nvidia-smi -stats -d memClk correspond à l'horloge de la mémoire.

Remarque: je ne parviens pas à tester les éléments ci-dessus car mon GeForce 210, très fiable, 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. Cependant, je dirai qu'au meilleur de ma connaissance, le aticonfig mentionné dans la réponse acceptée n'existe plus et il apparaît que nvclock n'est disponible pour rien depuis digne de confiance.

3
Elder Geek

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

gpustat screenshot

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 possédez pas de privilège root, essayez d’installer sur l’espace-noms: pip install --user. Notez qu'à partir de la version 0.4, gpustat.py n'est plus un 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
Nufa

Si vous exécutez Ubuntu sur un Chromebook avec crouton, la seule des réponses qui fonctionneront ira à chrome://gpu dans le navigateur Chrome.

2
k26dr

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.

1
user10872

Pour les GPU nvidia, la commande nvidia-smi est votre ami. Voir man nvidia-smi si vous le souhaitez.

Pour lister les GPU, utilisez nvidia-smi -L (nvidia-smi --list-gpus), nvidia-smi -q donnez des informations sur le gpu et les processus en cours.

1
Memin

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
Nerrve

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

  1. Pour avoir juste un petit résumé: nvidia-smi

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

  3. Faites 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. Remplissez <gpu-id> avec l'emplacement du bus: cat /proc/driver/nvidia/gpus/<gpu_id>/information

1

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 glxinfo n'est actuellement 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, glxinfo listera toutes les spécifications relatives au processeur graphique dans cet environnement.

0
Nayantara Jeyaraj

Utilisez lspciname__, lspci -v pour obtenir des informations de base voir ici .

Dans mon cas, par exemple, une fois que je lance 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
DINA TAKLIT

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.

0
kmario23