Jak uzyskać informacje o GPU?

155

Szukam polecenia, które dałoby mi te same informacje, co:

cat /proc/cpuinfo 

Z wyjątkiem GPU (rodzaj układu i pamięci, częstotliwość).

użytkownik2413
źródło
co robi: cat /proc/cpuinfo robi? jakich informacji szukasz?
Charlie Parker,
1
@CharlieParker wyświetla informacje o procesorze ...
Emobe,

Odpowiedzi:

74

Tego rodzaju informacje są niestandardowe, a narzędzia, których będziesz używać do ich gromadzenia, różnią się znacznie.

Polecenie glxinfopoda wszystkie dostępne informacje o OpenGL dla procesora graficznego, w tym nazwę jego dostawcy, jeśli sterowniki są poprawnie zainstalowane.

Aby uzyskać informacje o prędkości zegara, nie ma standardowego narzędzia.

  • W przypadku układów GPU ATI / AMD aticonfig --odgcpobierze częstotliwości taktowania i aticonfig --odgtpobierze dane dotyczące temperatury.
  • W przypadku procesorów graficznych NVIDIA nvclockprogram pobierze te same informacje.

Nie znam równoważnego narzędzia dla sterowników typu open source, Intel lub innych układów GPU.

Inne informacje o sprzęcie można pobrać z narzędzi lspcii lshw.

greyfade
źródło
2
Jak zainstalować glxinfo?
stiv
7
@stiv: Jest to część biblioteki Mesa i jest dostarczana z pakietem mesa-utilsUbuntu.
greyfade
2
aticonfignie wydaje się być dostępny od czasu wycofania fglrx. nvclockwydaje się również, że został porzucony, ponieważ ostatnia wersja była godna zaufania. Czy masz jakieś zaktualizowane rozwiązania? Oto, co mam do tej pory ..
Starszy Geek
2
glxinfo | grep "Device"działał wystarczająco dobrze dla mnie na procesorze graficznym Intel
John Hamilton
Używam:glxinfo | egrep -i 'device|memory'
danger89
152

Nie znam bezpośredniego odpowiednika, ale lshw powinien dać ci potrzebne informacje, spróbuj:

sudo lshw -C display

(działa również bez, sudoale informacje mogą być mniej kompletne / dokładne)

Możesz także zainstalować pakiet, lshw-gtkaby uzyskać GUI.

Marcel Stimberg
źródło
3
Musiałem umieścić gksu przed poleceniem w menu, aby lshw-gtk działał.
robin0800
Jakieś aktualizacje? Jestem fanem tego polecenia, ale jedyną częstotliwością (częstotliwością), jaką wydaje mi się to zapewnić, jest zegar magistrali bazowej 33 MHz. Staram się aktualizować niniejsze pytania i odpowiedzi. Dziękuję Ci!
Starszy Geek
1
Przepraszam, nowy w Deep Learning. Co powinienem powiedzieć, jeśli mam kartę graficzną? Mówiproduct: 2nd Generation Core Processor Family Integrated Graphics Controller
szczerze
80

Wpis na blogu poświęcony pracy wykonanej w wierszu polecenia znajduje się tutaj:

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

Znajdź identyfikator urządzenia:

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

Następnie możesz użyć tego wyjścia lspciponownie, tworząc dwa zagnieżdżone polecenia

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

Jeśli masz więcej niż 1 kartę GPU, spróbuj zamiast tego wykonać to równoważne polecenie:

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

Dane wyjściowe z mojego systemu:

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

EDYCJA: Możesz tego uniknąć <access denied>, uruchamiając za pomocąsudo

Tak, (prefetchable) [size=64M)wskazuje, że mam kartę 64 MB NVIDIA. Jednak nie, to raczej 256 MB. Dlaczego? Patrz poniżej.

Aby dowiedzieć się, jak uzyskać z tego jak najwięcej informacji i wydajność, przeczytaj niezwykle obszerny artykuł na Arch-Linux Wiki

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

W przypadku użytkowników nvidii zacznij od

nvidia-smi

(Działa to z zainstalowanymi sterownikami Nvidia, ale nie z systemami z otwartym sterownikiem „nouveau”).

Wynik

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

Oznacza to, że mam kartę graficzną GDDR3 256 MB.

W tej chwili nie wiem, jak to zrobić dla procesorów graficznych Intel i AMD / ATI.

knb
źródło
12
+1 za nvidia-smi(moim zdaniem należy to trochę podkreślić)
Martin Thoma
Jeśli ktoś ma jakiś pomysł: nvidia-smi zawiesza się w nieskończoność: co może być problemem?
Franck Dernoncourt
2
To naprawdę powinna być zaakceptowana odpowiedź!
INElutTabile
1
nvidia-sminie pokazuje mi pełnej nazwy GPU.
mrgloom
48

Uruchom google-chromei przejdź do adresu URL about:gpu. Jeśli Chrome zorientował się, jak korzystać z OpenGL, otrzymasz niezwykle szczegółowe informacje na temat twojego GPU.

Chris Uhlik
źródło
2
Działa to również w Chromium ( chromium-browser).
Eliah Kagan
Sprytny. Wzdłuż tych linii dodatkowo poszedłem na chromeexperiments.com, aby zobaczyć tam występ. Gładki jak masło - zdecydowanie jestem na gpu
Jacksonkr
30

Ponieważ podano polecenie takie jak catdla procesorów, jest to zatem odpowiednik dla procesorów graficznych. Specjalnie dla kart Nvidia. Nie wymaga ładowania żadnego oprogramowania oprócz sterownika urządzenia Nvidia.

Ścieżka tutaj działa dla kart, które mam. Ale twoje mogą się różnić, jak zauważyli inni w komentarzach.

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
Matt H.
źródło
7
Dzięki! (choć cat /proc/driver/nvidia/gpus/0000\:01\:00.0/informationdla mnie)
Matt Wilkie
1
Jest to jedyna poprawna odpowiedź w środowisku chmury / klastra HPC na żądanie, w którym zawodzą zarówno glxinfo, jak i lspci (ten pierwszy, ponieważ nie ma OpenGL i wyświetlacza, ten drugi, ponieważ karta graficzna nVidia jest abstrakcyjna przez kontroler graficzny taki jak Matrox G200eW3). Nazwa folderu pod GPU jest 0000:3b:00.0ani 0000:d8:00.0dla mnie, więc powinniśmy wpisać: cat /proc/driver/nvidia/gpus/0000:3b:00.0/information. Piękny Tesla V100-PCIE-16GBmodel pokazuje, że qsublimit pracy jest spełniony zgodnie z życzeniem.
user5280911,
11

W przypadku kart Nvidia wpisz

nvidia-smi -q
Quanlong
źródło
7

Wierzę, że najlepszą opcją dla tego jest Neofetch .

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

Daje to taki wynik:

HaoZeke
źródło
3
W tej odpowiedzi nie widzę częstotliwości i pamięci karty graficznej. Istnieją znacznie prostsze metody uzyskania modelu GPU, który wydaje się wszystkim, co nam dajesz. Nie jestem pewien, co to dodaje do istniejących odpowiedzi.
Starszy Geek
1
screenfetchProgram robi to samo i nie wymaga instalowania PPA.
Braden Best
To skrypt powłoki. Dodatkowo podłączyłem również jego github, więc możesz go użyć jako skryptu.
HaoZeke
1
Oto zrzut ekranu: github.com/KittyKatt/screenFetch
Camille Goudeseune
5

Conky lub Terminal Splash Screen

Używam dwóch metod do automatycznego wyświetlania informacji o GPU nVidia i Intel iGPU:

  • Conky dynamicznie wyświetla informacje o GPU w czasie rzeczywistym
  • ~/.bashrc wyświetla informacje o GPU przy każdym otwarciu terminala

Conky wyświetlacz w czasie rzeczywistym

W tym przykładzie Conky wyświetla bieżące statystyki GPU (nVidia lub Intel). Conky to lekki monitor systemowy popularny wśród wielu entuzjastów Linuksa.

Wyświetlacz zmienia się w zależności od tego, czy uruchomiłeś po prime-select intellub prime-select nvidia.

Intel iGPU

gpu temp intel.gif

  • Intel iGPU pokazuje jak Skylake GT2 HD 530 iGPUprzy bieżącej częstotliwości
  • Minimalna częstotliwość to 350MHz, a maksymalna to 1050MHz

Procesor graficzny nVidia

gpu temp nvidia.gif

  • GPU nVidia pokazuje, jak GeForce GTX970Mprzy bieżącej częstotliwości i temperaturze GPU
  • Wyświetlana jest wersja sterownika, stan P i wersja BIOS
  • Wyświetlane jest obciążenie GPU, użycie pamięci RAM, zużycie energii i częstotliwość pamięci RAM

Kod Conky

Oto odpowiedni skrypt Conky dla procesorów Intel iGPU i nVidia:

#------------+
# 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 Ekran powitalny terminala

Ten przykład modyfikuje ~/.bashrcwyświetlanie informacji na ekranie powitalnym za każdym razem, gdy terminal jest otwierany lub za każdym razem, gdy piszesz . .bashrcpo znaku zachęty powłoki.

Oprócz neofetchwcześniejszych odpowiedzi, jest coś, screenfetchco wygląda o wiele ładniej (IMO). Dodatkowo inna odpowiedź wspomina, że ​​nie wie, jak uzyskać listę iGPU i robi to:

ubuntu terminal splash.png

Aby uzyskać szczegółowe informacje na temat konfiguracji, patrz: Ekran powitalny terminala z pogodą, kalendarzem, czasem i Sysinfo?

Podsumowując tylko w dolnej części z wyświetlaczem Ubuntu zawierającym informacje o GPU (druga linia):

sudo apt install screenfetch
screenfetch

Będziesz chciał umieścić screenfetchpolecenie na dole ~/.bashrcpliku, aby pojawiało się ono przy każdym otwarciu terminala.

WinEunuuchs2Unix
źródło
3

To naprawdę nie jest tak skomplikowane Dla modelu i pamięci, oto 1 linijka, która działa na każdej karcie wideo, na której testowałem ją bez względu na producenta (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 = Wszystko, co robi ten bit, to pobranie trzeciego pola z wyjścia „lspci” filtrowanego przez „grep” dla VGA, który odpowiada układowi wideo.

RAM = Wszystko, co robi ten bit, jest ustawiane na zmienną cardidrówną pierwszemu polu danych wyjściowych z lspcidopasowanego „VGA” i przekazuje je jako żądanie -vpełnego wyjścia lspcidla tego konkretnego -surządzenia, dodatkowo filtrując dane wyjściowe według grepciągu „do pobrania”, ponieważ zawiera pamięć na samej karcie (zwróć uwagę na poprzednią spację, ponieważ nie chcemy dopasować „niepenowalnego” w naszym wyniku.

Dla częstotliwości taktowania zintegrowanej grafiki Intel (Testowane na I3 i I5)

Wykonaj polecenie sudo find /sys -type f -name gt_cur* -print0 | xargs -0 cat To nurkuje w drzewie / sys, aby zlokalizować plik gt_cur_freq_mhz, który na moim I3 jest /sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_cur_freq_mhzi drukuje zawartość. który w moim przypadku przy bardzo małym obciążeniu jest 350jak w 350 MHz, co odpowiada minimalnej częstotliwości stwierdzonej w /sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_min_freq_mhzi podczas pracy glxgearsi glmark2daje wynik 1050jak w 1050 MHz, co odpowiada maksymalnej częstotliwości znalezionej w/sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_max_freq_mhz

W przypadku częstotliwości taktowania na kartach NVIDIA:

nvidia-smi -stats -d procClkodpowiada zegarowi GPU nvidia-smi -stats -d memClkodpowiada zegarowi pamięci.

Uwaga: nie jestem w stanie przetestować powyższego, ponieważ mój sprawdzony GeForce 210 nie jest obsługiwany, a to działa tylko na Kepler lub nowszych procesorach graficznych, jak wskazuje `nvidia-smi -stats --help '

Obecnie nie mam żadnych rozwiązań dotyczących częstotliwości taktowania kart AMD i nie mam sprzętu dostępnego do testowania. Powiem jednak, że zgodnie z moją najlepszą wiedzą, aticonfigwspomniana w zaakceptowanej odpowiedzi już nie istnieje i wydaje się, że nvclocknie jest dostępna na nic, ponieważ jest wiarygodna.

Starszy Geek
źródło
2

Jeśli używasz Ubuntu na Chromebooku z crouton, jedyną odpowiedzią, która będzie działać, będzie chrome://gpuprzeglądarka Chrome.

k26dr
źródło
2

Jeśli chcesz mieć proste informacje, możesz spróbować gpustat . To jest bardzo dobre i proste.

zrzut ekranu gpustat

Autor podaje następujące instrukcje instalacji:

Zainstaluj z PyPI:

pip install gpustat 

Aby zainstalować najnowszą wersję (gałąź master) przez pip:

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

Jeśli nie masz uprawnień roota, spróbuj zainstalować na nazw użytkownika: pip install --user. Zauważ, że od wersji 0.4 gpustat.pynie jest już wykonywalny plik wykonywalny zależny od zera. Jednak w rzadkich przypadkach potrzebujesz jednego skryptu wykonywalnego (starszego typu), możesz także spróbować:

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
Nufa
źródło
2

Cóż, ta odpowiedź zakłada, że ​​masz serwer z procesorami graficznymi NVIDIA. Masz trzy sposoby:

  1. Aby uzyskać krótką treść: nvidia-smi

  2. Aby uzyskać szczegółowe jedno: nvidia-smi -q. Otrzymasz wiele ekranów szczegółowych informacji, jeśli masz więcej niż 1 GPU.

  3. Zrobić ls /proc/driver/nvidia/gpus/. Wyświetli lokalizację magistrali GPU jako foldery. Teraz uruchom następujące polecenie dla każdej lokalizacji magistrali GPU. Wpisz <gpu-id>lokalizację autobusu:cat /proc/driver/nvidia/gpus/<gpu_id>/information

Sritanu Chakraborty
źródło
1

W przypadku procesora Intel GMA950 (w szczególności z EeePC) możesz uruchomić:

setpci -s 00:02.0 f0.b

która zwróci „00” dla 200 MHz, „01” dla 250 MHz lub „03” dla 400 MHz. Możesz być w stanie zastosować tę samą zasadę do innych kart Intel.


źródło
Dostaję 04. Mój GPU to kontroler zgodny z VGA 00: 02.0: Zintegrowany kontroler grafiki Intel Corporation Mobile GM965 / GL960 (podstawowy) (rev 03) (prog-if 00 [kontroler VGA])
John, dlaczego
1

Jeśli masz kartę AMD Radeon, możesz chcieć uruchomić następujące polecenia

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

Powinien zgłosić coś takiego

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)
Nerrve
źródło
1

W przypadku procesorów graficznych NVIDIA nvidia-smipolecenie jest Twoim przyjacielem. Sprawdź, man nvidia-smiczy chcesz.

Aby wyświetlić listę procesorów GPU użyj nvidia-smi -L( nvidia-smi --list-gpus), nvidia-smi -qpodaj informacje o GPU i uruchomionych procesach.

Memin
źródło
0

Użyj lspci, lspci -vaby uzyskać podstawowe informacje, patrz tutaj .

W moim przypadku, na przykład, kiedy biegnę lspcii mam:

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
DINA TAKLIT
źródło
0

Aby uzyskać wszystkie informacje o procesorze graficznym, możesz użyć następującego polecenia określonego przez @greyfade.

> glxinfo

Jeśli jednak program nie glxinfojest obecnie zainstalowany, możesz go zainstalować, wpisując:

> sudo apt install mesa-utils

Będziesz także musiał włączyć komponent o nazwie universe. Gdy to zrobisz, glxinfowyświetli listę wszystkich specyfikacji związanych z procesorem graficznym w tym środowisku.

Nayantara Jeyaraj
źródło
0

Jeśli szukasz tylko nazw kart wideo na komputerze, po prostu użyj:

$ nvidia-smi --list-gpus

W przypadku niektórych nowszych układów GPU wyświetla to także pamięć każdego urządzenia.

kmario23
źródło