Wie erhalte ich die GPU-Informationen?


155

Ich suche einen Befehl, der mir die gleichen Informationen gibt wie:

cat /proc/cpuinfo 

Mit Ausnahme der GPU (Typ des Chips und Speicher, Frequenz).


Was macht: cat /proc/cpuinfo machen? nach welchen infos suchst du
Charlie Parker

1
@ CharlieParker gibt es Informationen über die CPU ...
Emobe

Antworten:


75

Diese Art von Informationen entspricht nicht dem Standard, und die Tools, mit denen Sie sie sammeln, variieren erheblich.

Mit dem Befehl erhalten glxinfoSie alle verfügbaren OpenGL-Informationen für den Grafikprozessor, einschließlich des Anbieternamens, wenn die Treiber korrekt installiert sind.

Es gibt kein Standardwerkzeug, um Informationen zur Taktfrequenz abzurufen.

  • Ruft bei ATI / AMD-GPUs aticonfig --odgcdie Taktraten und aticonfig --odgtdie Temperaturdaten ab.
  • Bei NVIDIA-GPUs ruft das nvclockProgramm dieselben Informationen ab.

Mir ist kein vergleichbares Tool für die Open Source-Treiber oder für Intel oder andere GPUs bekannt.

Weitere Informationen zur Hardware können über die Tools lspciund abgerufen lshwwerden.


2
Wie installiere ich glxinfo?
Stiv

7
@stiv: Es ist Teil der Mesa-Bibliothek und wird mit dem Paket mesa-utilsauf Ubuntu geliefert .
greyfade

2
aticonfigscheint seit dem Ausscheiden von fglrx nicht mehr verfügbar zu sein. nvclockscheint auch aufgegeben worden zu sein, da die letzte Version für vertrauenswürdig war. Haben Sie aktualisierte Lösungen? Folgendes habe ich bisher ..
Elder Geek

2
glxinfo | grep "Device"funktionierte gut genug für mich auf einer Intel-GPU
John Hamilton

Ich benutze:glxinfo | egrep -i 'device|memory'
danger89

154

Ich kenne keine direkte Entsprechung, aber lshw sollte Ihnen die gewünschten Informationen geben. Versuchen Sie Folgendes :

sudo lshw -C display

(Es funktioniert auch ohne, sudoaber die Informationen sind möglicherweise weniger vollständig / genau.)

Sie können das Paket auch installieren lshw-gtk, um eine GUI zu erhalten.


3
Musste gksu vor den Befehl im Menü stellen, damit lshw-gtk funktioniert.
robin0800

Irgendwelche Updates? Ich bin ein Fan des Befehls, aber die einzige Taktrate (Frequenz), die er für mich bereitzustellen scheint, ist der Basisbustakt von 33 MHz. Ich versuche, diese Fragen und Antworten auf den neuesten Stand zu bringen. Danke!
Elder Geek

1
Entschuldigung, neu bei Deep Learning. Was soll es heißen, wenn ich eine GPU habe? Es heißtproduct: 2nd Generation Core Processor Family Integrated Graphics Controller
Frank

80

Ein Blog-Beitrag, der sich mit der Arbeit auf der Kommandozeile befasst, ist hier:

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

Finden Sie die Geräte-ID heraus:

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

Sie können diese Ausgabe dann mit lspcierneut verwenden und zwei verschachtelte Befehle bilden

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

Wenn Sie mehr als eine GPU-Karte haben, versuchen Sie stattdessen diesen entsprechenden Befehl:

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

Ausgabe von meinem System:

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

BEARBEITEN: Sie können das vermeiden, <access denied>indem Sie mit startensudo

Zeigt also an, (prefetchable) [size=64M)dass ich eine 64-MB-NVIDIA-Karte habe. Ich weiß jedoch nicht, es ist eher 256 MB. Warum? Siehe unten.

Lesen Sie einen äußerst umfassenden Artikel im Arch-Linux-Wiki, um zu erfahren, wie Sie die besten Informationen und die bestmögliche Leistung erzielen

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

Beginnen Sie für NVIDIA-Benutzer mit

nvidia-smi

(Dies funktioniert mit den installierten Nvidia-Treibern, jedoch nicht mit Systemen, auf denen der Open-Source-Nouveau-Treiber ausgeführt wird.)

Ausgabe

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                                               |
+-----------------------------------------------------------------------------+

Dies zeigt an, dass ich eine 256 MB GDDR3-Grafikkarte habe.

Derzeit weiß ich nicht, wie ich das für Intel- und AMD / ATI-GPUs bekomme.


12
+1 für nvidia-smi(das sollte meiner Meinung nach ein wenig hervorgehoben werden)
Martin Thoma


2
Dies sollte wirklich die akzeptierte Antwort sein!
INElutTabile

1
nvidia-smizeigt mir nicht den vollständigen GPU-Namen
Mrgloom

48

Führen Sie google-chromeden Befehl aus und navigieren Sie zur URL about:gpu. Wenn Chrome herausgefunden hat, wie OpenGL verwendet wird, erhalten Sie äußerst detaillierte Informationen zu Ihrer GPU.


2
Dies funktioniert auch in Chromium ( chromium-browser).
Eliah Kagan

Klug. In diesem Sinne bin ich auch auf chromeexperiments.com gegangen, um die Aufführung dort zu sehen. Geschmeidig wie Butter - ich bin definitiv auf GPU
Jacksonkr

30

Da Sie einen Befehl wie catfür CPUs angegeben haben, ist dies der Gegenwert für GPUs. Speziell für Nvidia-Karten. Es ist keine Software erforderlich, außer dass der Nvidia-Gerätetreiber geladen wird.

Der Pfad hier funktioniert für die Karten, die ich habe. Aber Ihre können davon abweichen, wie andere in den Kommentaren ausgeführt haben.

1. 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. 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
Vielen Dank! (obwohl cat /proc/driver/nvidia/gpus/0000\:01\:00.0/informationfür mich)
Matt Wilkie

1
Dies ist die einzig richtige Antwort in einer On-Demand-Cloud / HPC-Cluster-Umgebung, in der sowohl glxinfo als auch lspci fehlschlagen (erstere, weil OpenGL und Display fehlen, letztere, weil die nVidia-Grafikkarte von einem Grafikcontroller wie der Matrox G200eW3 abstrahiert wird). Der Ordnername unter GPUs ist 0000:3b:00.0oder 0000:d8:00.0für mich, also sollten wir geben: cat /proc/driver/nvidia/gpus/0000:3b:00.0/information. Das schöne Tesla V100-PCIE-16GBModell zeigt, dass das qsubJoblimit wie gewünscht erfüllt ist.
User5280911

11

Geben Sie für Nvidia-Karten Folgendes ein

nvidia-smi -q


7

Ich glaube, die beste Option dafür ist Neofetch .

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

Dies ergibt eine Ausgabe wie diese:


3
In dieser Antwort werden die Häufigkeit und der Speicher der Grafikkarte nicht angezeigt. Es gibt viel einfachere Methoden, um das Modell der GPU zu erhalten, das alles zu sein scheint, was Sie uns geben. Ich bin nicht sicher, was dies zu den vorhandenen Antworten hinzufügt.
Elder Geek

1
Das screenfetchProgramm macht dasselbe und benötigt keine PPA zur Installation.
Braden Best

Es ist ein Shell-Skript. Außerdem habe ich auch einen Link zu seinem Github erstellt, sodass Sie ihn einfach als Skript verwenden können.
HaoZeke


5

Conky oder Terminal Splash Screen

Ich verwende zwei Methoden, um Informationen zu nVidia GPU und Intel iGPU automatisch anzuzeigen:

  • Conky zeigt GPU-Informationen dynamisch in Echtzeit an
  • ~/.bashrc Zeigt bei jedem Öffnen des Terminals GPU-Informationen an

Conky Echtzeitanzeige

In diesem Beispiel wird Conky verwendet, um die aktuellen GPU-Statistiken (nVidia oder Intel) in Echtzeit anzuzeigen. Conky ist ein leichtgewichtiger Systemmonitor, der bei vielen Linux-Enthusiasten beliebt ist.

Die Anzeige ändert sich je nachdem, ob Sie nach prime-select inteloder gebootet haben prime-select nvidia.

Intel iGPU

gpu temp intel.gif

  • Die Intel iGPU zeigt wie Skylake GT2 HD 530 iGPUmit der aktuellen Frequenz
  • Die minimale Frequenz ist 350MHz und das Maximum ist 1050MHz

NVIDIA GPU

gpu temp nvidia.gif

  • Die nVidia-GPU wird wie GeForce GTX970Mbei der aktuellen GPU-Frequenz und -Temperatur angezeigt
  • Die Treiberversion, der P-State und die BIOS-Version werden angezeigt
  • Die GPU-Last, die RAM-Nutzung, der Stromverbrauch und die RAM-Frequenz werden angezeigt

Conky-Code

Hier ist das relevante Conky-Skript für Intel iGPU und 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 Terminal-Begrüßungsbildschirm

In diesem Beispiel werden ~/.bashrcInformationen bei jedem Öffnen des Terminals oder bei jeder Eingabe . .bashrcan der Shell-Eingabeaufforderung auf einem Begrüßungsbildschirm angezeigt .

Zusätzlich zu der neofetchzuvor beantworteten Frage gibt es screenfetcheine, die viel besser aussieht (IMO). In einer weiteren Antwort wird erwähnt, dass er nicht weiß, wie er eine iGPU-Liste erstellen kann.

ubuntu terminal splash.png

Einzelheiten zur Einrichtung finden Sie unter: Begrüßungsbildschirm des Terminals mit Wetter, Kalender, Uhrzeit und Sysinfo?

Zusammenfassend nur für den unteren Bereich mit Ubuntu-Display mit GPU-Informationen (vorletzte Zeile) verwenden:

sudo apt install screenfetch
screenfetch

Sie sollten den screenfetchBefehl am Ende Ihrer ~/.bashrcDatei einfügen, damit er bei jedem Öffnen des Terminals angezeigt wird.



3

Das ist wirklich nicht so komplex. Für Modell und Speicher gibt es hier einen 1-Liner, der für jede Grafikkarte funktioniert, auf der ich sie getestet habe, unabhängig vom Hersteller (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 = Dieses Bit greift nur auf das dritte Feld der 'lspci'-Ausgabe zu, die über' grep 'für VGA gefiltert wird, das dem Videochip entspricht.

RAM = Dieses ganze Bit setzt die Variable cardidgleich dem ersten Ausgabefeld von lspciMatching "VGA" und speist diese als Anforderung für eine -vausführliche Ausgabe von lspcidiesem spezifischen -sGerät ein, wobei die Ausgabe weiter grepnach der Zeichenfolge "Prefetchable" gefiltert wird, wie diese enthält den Speicher auf der Karte selbst (beachten Sie das vorangegangene Leerzeichen, da wir in unserer Ausgabe nicht mit "nicht vorabrufbar" übereinstimmen möchten).

Für die Taktrate bei integrierten Intel-Grafiken (Getestet auf I3 und I5)

Führen Sie den Befehl aus. sudo find /sys -type f -name gt_cur* -print0 | xargs -0 cat Dies taucht in den / sys-Baum ein, um die gt_cur_freq_mhz-Datei zu finden, die sich auf meinem I3 befindet, /sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_cur_freq_mhzund druckt den Inhalt aus. was in meinem Fall unter extrem geringer Last 350wie bei 350 MHz ist, was der in /sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_min_freq_mhzund beim Laufen gefundenen Minimalfrequenz entspricht glxgearsund wie bei 1050 MHz glmark2ergibt 1050, was der in gefundenen Maximalfrequenz entspricht/sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_max_freq_mhz

Für Taktraten auf NVIDIA-Karten:

nvidia-smi -stats -d procClkentspricht dem GPU-Takt nvidia-smi -stats -d memClkentspricht dem Speichertakt.

Hinweis: Ich kann das Obige nicht testen, da meine vertrauenswürdige GeForce 210 nicht unterstützt wird und dies nur auf Kepler- oder neueren GPUs funktioniert, wie in "nvidia-smi-stats --help" angegeben.

Ich habe derzeit keine Lösungen für die Taktrate von AMD-Karten und habe die Hardware nicht zum Testen zur Verfügung. Ich werde jedoch sagen, dass meines Wissens die aticonfigin der akzeptierten Antwort erwähnte nicht mehr existiert und es scheint, dass nvclocksie für nichts mehr verfügbar ist, da sie vertrauenswürdig ist.


2

Wenn Sie Ubuntu auf einem Chromebook mit Crouton ausführen, funktioniert die einzige Antwort chrome://gpuim Chrome-Browser.


2

Wenn Sie einfache Informationen wünschen , können Sie gpustat ausprobieren . Es ist sehr gut und einfach.

gpustat screenshot

Der Autor gibt die folgenden Installationsanweisungen:

Installation von PyPI:

pip install gpustat 

So installieren Sie die neueste Version (Hauptzweig) über pip:

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

Wenn Sie nicht als Root - Berechtigung haben, versuchen Sie es auf Benutzernamespace zu installieren: pip install --user. Beachten Sie, dass ab Version 0.4 gpustat.pykeine Null-Abhängigkeit mehr ausführbar ist. In seltenen Fällen benötigen Sie jedoch ein einzelnes ausführbares Skript (Legacy). Sie können auch Folgendes versuchen:

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

In dieser Antwort wird davon ausgegangen, dass Sie einen Server mit NVIDIA-GPUs haben. Sie haben drei Möglichkeiten:

  1. Um es kurz zu machen: nvidia-smi

  2. Um einen detaillierten ein: nvidia-smi -q. Sie erhalten mehrere Bildschirme mit detaillierten Informationen, wenn Sie mehr als 1 GPU haben.

  3. Mach ein ls /proc/driver/nvidia/gpus/. Der GPU-Bus-Speicherort wird als Ordner angezeigt. Führen Sie nun den folgenden Befehl für jeden GPU-Busstandort aus. Füllen Sie <gpu-id>mit Bus-Standort:cat /proc/driver/nvidia/gpus/<gpu_id>/information


1

Für den Intel GMA950 (im Lieferumfang von EeePC enthalten) können Sie Folgendes ausführen:

setpci -s 00:02.0 f0.b

Dies gibt "00" für 200 MHz, "01" für 250 MHz oder "03" für 400 MHz zurück. Möglicherweise können Sie dasselbe Prinzip auf andere Intel-Karten anwenden.


Ich erhalte 04. Meine GPU ist 00: 02.0 VGA-kompatibler Controller: Intel Corporation Mobiler GM965 / GL960-Grafikcontroller (primär) (Version 03) (prog-if 00 [VGA-Controller])
Johny, warum

1

Wenn Sie eine AMD Radeon-Karte besitzen, können Sie die folgenden Befehle ausführen

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

Es sollte so etwas melden

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

Bei NVIDIA-GPUs ist der nvidia-smiBefehl Ihr Freund. Sehen man nvidia-smiSie, wenn Sie möchten.

Geben Sie zum Auflisten der mit nvidia-smi -L( nvidia-smi --list-gpus) verwendeten GPUs nvidia-smi -qInformationen zur GPU und zu den ausgeführten Prozessen an.


0

Verwenden Sie lspci, lspci -vum grundlegende Informationen zu erhalten, siehe hier .

In meinem Fall zum Beispiel, wenn ich einmal renne lspciund Folgendes habe:

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

Um alle Informationen zum Grafikprozessor abzurufen, können Sie den folgenden Befehl verwenden, der von @greyfade angegeben wird.

> glxinfo

Wenn das Programm glxinfoderzeit jedoch nicht installiert ist, können Sie es installieren, indem Sie Folgendes eingeben:

> sudo apt install mesa-utils

Sie müssen auch die aufgerufene Komponente aktivieren universe. Sobald dies erledigt ist, glxinfowerden alle Spezifikationen aufgelistet, die sich auf den Grafikprozessor in dieser Umgebung beziehen.


0

Wenn Sie nur die Namen der Grafikkarten auf dem Computer suchen, verwenden Sie einfach:

$ nvidia-smi --list-gpus

Bei einigen neueren GPUs wird auch der Speicher jedes Geräts aufgelistet.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.