Як отримати інформацію про GPU?


155

Я шукаю команду, яка дала б мені таку саму інформацію, як:

cat /proc/cpuinfo 

За винятком GPU (тип мікросхеми та пам'ять, частота).


що робить: cat /proc/cpuinfo робити? яку інформацію ви шукаєте?
Чарлі Паркер

1
@CharlieParker він виводить інформацію про процесор ...
Emobe

Відповіді:


74

Цей тип інформації є нестандартним, і інструменти, які ви будете використовувати для їх збирання, сильно відрізняються.

Команда glxinfoнадасть вам всю доступну інформацію OpenGL для графічного процесора, включаючи його ім’я постачальника, якщо драйвери правильно встановлені.

Для отримання інформації про тактову частоту немає стандартного інструменту.

  • Для графічних процесорів ATI / AMD aticonfig --odgcз'явиться тактова частота та aticonfig --odgtотримано дані про температуру.
  • Для графічних процесорів NVIDIA nvclockпрограма отримає ту саму інформацію.

Мені не відомий еквівалентний інструмент для драйверів з відкритим кодом або для Intel чи інших графічних процесорів.

Інша інформація про обладнання може бути отримана з інструментів lspciта lshwінструментів.


2
Як встановити glxinfo?
stiv

7
@stiv: Це частина бібліотеки Mesa і постачається з пакетом mesa-utilsна Ubuntu.
greyfade

2
aticonfigне видається доступним після виходу на пенсію fglrx. nvclockтакож, здається, було відмовлено, оскільки остання версія була надійною. Чи є у вас оновлені рішення? Ось що я маю досі ..
Старійшина Гік

2
glxinfo | grep "Device"працював для мене досить добре на процесорі Intel
Джон Гамільтон,

Я використовую:glxinfo | egrep -i 'device|memory'
небезпека89

152

Я не знаю прямого еквівалента, але lshw повинен дати вам потрібну інформацію, спробуйте:

sudo lshw -C display

(вона також працює без, sudoале інформація може бути менш повною / точною)

Ви також можете встановити пакет, lshw-gtkщоб отримати графічний інтерфейс.


3
Довелося поставити gksu перед командою в меню, щоб змусити lshw-gtk працювати.
robin0800

Будь які оновлення? Я фанат команди, але єдина тактова частота (частота), яку, здається, передбачає для мене - тактова частота базової шини 33 МГц. Я намагаюся оновити питання та відповіді. Дякую!
Старійшина Гейк

1
Вибачення, нове для глибокого навчання. Що має говорити, якщо у мене є графічний процесор? У ньому сказаноproduct: 2nd Generation Core Processor Family Integrated Graphics Controller
відвертий

80

Повідомлення в блозі, присвячене роботі в командному рядку, знаходиться тут:

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

Дізнайтеся ідентифікатор пристрою:

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

Потім ви можете використовувати цей вихід lspciзнову, формуючи дві вкладені команди

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

Якщо у вас більше 1 картки GPU, спробуйте замість цього еквівалентну команду:

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

Вихід з моєї системи:

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: Ви можете уникнути цього <access denied>, запустивши сsudo

Отже, (prefetchable) [size=64M)вказує на те, що у мене 64-Мб карта NVIDIA. Однак я не знаю, це швидше 256 Мб. Чому? Дивіться нижче.

Щоб дізнатися, як отримати максимальну інформацію та продуктивність, прочитайте надзвичайно вичерпну статтю на Arch-Linux Wiki

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

Для користувачів nvidia почніть з

nvidia-smi

(Це працює з встановленими драйверами Nvidia, але не із системами, що працюють з драйвером 'nouveau' з відкритим кодом).

Вихідні дані

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

Це вказує на те, що у мене графічна карта GDDR3 256 Мб.

Наразі я не знаю, як це отримати для Intel та AMD / ATI GPU.


12
+1 для nvidia-smi(це, на мій погляд, слід виділити трохи)
Мартін Тома


2
Це справді має бути прийнятою відповіддю!
INElutTabile

1
nvidia-smiне показує мені повне ім'я GPU.
mrgloom

48

Запустіть google-chromeта перейдіть до URL-адреси about:gpu. Якщо chrome зрозумів, як користуватися OpenGL, ви отримаєте надзвичайно детальну інформацію про ваш GPU.


2
Це також працює в Chromium ( chromium-browser).
Елія Каган

Розумний. З цього приводу я додатково зайшов на chromeexperiment.com, щоб побачити там виставу. Гладкий як вершкове масло - я точно на gpu
Jacksonkr

30

Оскільки ви вказали таку команду, як catдля процесора, це є еквівалентом для GPU. Спеціально для карт Nvidia. Він не потребує завантаження програмного забезпечення, крім драйвера пристроїв Nvidia.

Шлях тут працює для карток, які у мене є. Але ваше може відрізнятися, як інші вказували в коментарях.

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
Дякую! (хоча cat /proc/driver/nvidia/gpus/0000\:01\:00.0/informationдля мене)
matt wilkie

1
Це єдина правильна відповідь у хмарному середовищі на вимогу / HPC кластера, в якому glxinfo або lspci обидва не вдається (перший, оскільки немає OpenGL та дисплея, другий тому, що відеокарта nVidia абстрагується графічним контролером, як Matrox G200eW3). Ім'я папки під чіпами це 0000:3b:00.0або 0000:d8:00.0для мене, так що ми повинні набрати: cat /proc/driver/nvidia/gpus/0000:3b:00.0/information. Прекрасна Tesla V100-PCIE-16GBмодель показує, що qsubліміт робочих місць задовольняється бажаним чином.
користувач5280911



7

Я вважаю, що найкращим варіантом для цього є неодетч .

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

Це дає такий вихід:


3
У цій відповіді я не бачу частоти та пам'яті відеокарти. Є набагато простіші способи отримати модель GPU, яка, здається, є всім, що ви нам даєте. Я не впевнений, що це додає до існуючих відповідей.
Старійшина Гейк

1
screenfetchПрограма робить те ж саме , і не вимагає PPA для установки.
Бреден Кращий

Це сценарій оболонки. Плюс я також зв’язав його github, так що ви можете просто використовувати його як сценарій.
HaoZeke

1
Ось знімок екрана: github.com/KittyKatt/screenFetch
Каміль Ґудесюн

5

Конічний або термінальний сплеск екрану

Я використовую два методи для автоматичного відображення інформації про GPU nVidia та Intel iGPU:

  • Конкі динамічно відображає інформацію про GPU в режимі реального часу
  • ~/.bashrc відображає інформацію про GPU кожного разу, коли термінал відкривається

Конічний показ у режимі реального часу

Цей приклад використовує Conky для відображення поточної статистики GPU (nVidia або Intel) в режимі реального часу. Conky - це монітор легкої ваги, популярний серед багатьох ентузіастів Linux.

Дисплей змінюється залежно від завантаження після prime-select intelабо prime-select nvidia.

Intel iGPU

gpu temp intel.gif

  • Intel iGPU показує, як Skylake GT2 HD 530 iGPUз поточною частотою
  • Мінімальна частота - 350МГц, а максимальна - 1050МГц

nVidia GPU

gpu temp nvidia.gif

  • Графічний процесор nVidia показує, як GeForce GTX970Mз поточною частотою та температурою GPU
  • Відображається версія драйвера, P-State та версія BIOS
  • Відображається навантаження GPU, використання оперативної пам’яті, споживання енергії та частота оперативної пам’яті

Коньський кодекс

Ось відповідний сценарій Conky для iGPU Intel та GPU 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 Екран заставки на терміналі

Цей приклад змінюється ~/.bashrcдля відображення інформації на екрані заставки кожного разу при відкритті терміналу або під час введення . .bashrcзапиту оболонки.

Окрім neofetchпопереднього відповіді, є те, screenfetchщо виглядає набагато приємніше (ІМО). Плюс ще одна відповідь згадує, що він не знає, як включити iGPU до списку, і це робить:

ubuntu термінал splash.png

Докладніше про налаштування див. У розділі: Екран заставки терміналу з погодою, календарем, часом та системою інформації?

Підсумовуючи лише нижній розділ з дисплеєм Ubuntu, що містить інформацію про GPU (другий останній рядок), використовуйте:

sudo apt install screenfetch
screenfetch

Ви хочете поставити screenfetchкоманду в нижній частині вашого ~/.bashrcфайлу, щоб вона з'являлася щоразу, коли ви відкриваєте термінал.



3

Це дійсно не так складно для моделі та пам'яті, ось 1 вкладиш, який працює для кожної відеокарти, на яку я тестував її незалежно від виробника (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 = Все це біт - це захопити 3-е поле з виводу 'lspci', відфільтрованого через 'grep' для VGA, що відповідає відеочипі.

ОЗУ = Все це біт встановлюється змінною, що cardidдорівнює першому полі виводу з lspciвідповідності "VGA" і подає це як запит на -vбагатослівний вихід з lspciцього конкретного -sпристрою, додатково фільтруючи вихід за grepрядком "попередньо завантажуваний", оскільки це містить пам'ять на самій картці (зверніть увагу на попередній пробіл, оскільки ми не хочемо відповідати "неперевершеним" у нашому виході.

Для тактової частоти інтегрованої графіки Intel (випробувано на I3 та I5)

виконати команду sudo find /sys -type f -name gt_cur* -print0 | xargs -0 cat Це занурюється в дерево / sys, щоб знайти файл gt_cur_freq_mhz, який є на моєму I3, /sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_cur_freq_mhzі друкує вміст. що в моєму випадку при надзвичайно легкому навантаженні становить 350як у 350 МГц, що відповідає мінімальній частоті, знайденій у /sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_min_freq_mhzта під час роботи, glxgearsі glmark2призводить 1050до 1050 МГц, що відповідає максимальній частоті, знайденій у/sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_max_freq_mhz

Для тактових тарифів на картках nvidia:

nvidia-smi -stats -d procClkвідповідає тактовій графічній графіці nvidia-smi -stats -d memClkвідповідає тактовій пам'яті.

Примітка. Я не в змозі перевірити вищесказане, оскільки мій надійний GeForce 210 не підтримується, і це працює лише на Kepler або новіших графічних процесорах, як вказує `nvidia-smi -stats --help '

Наразі у мене немає рішень щодо тактової частоти на картах AMD і не маю обладнання для тестування. Однак я скажу, що, наскільки мені відомо, aticonfigзгаданого у прийнятій відповіді більше не існує, і, здається, nvclockвін не доступний ні для чого, оскільки є надійним.


2

Якщо ви працюєте з Ubuntu на Chromebook із сухариком, у chrome://gpuбраузері Chrome вийде лише один із відповідей .


2

Якщо ви хочете мати просту інформацію, ви можете спробувати gpustat . Це дуже добре і просто.

скріншот gpustat

Автор дає такі інструкції щодо встановлення:

Встановити з PyPI:

pip install gpustat 

Щоб встановити останню версію (головну гілку) через pip:

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

Якщо у вас немає відповідних прав , будь ласка , спробуйте встановити на користувача імен: pip install --user. Зауважте, що з v0.4 gpustat.pyбільше не виконується нульова залежність. Однак у рідкісних випадках вам знадобиться один виконуваний сценарій (спадщина), ви також можете спробувати:

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

Що ж, ця відповідь передбачає, що у вас є сервер з NVIDIA-GPU. У вас є три способи:

  1. Щоб отримати лише короткий зміст: nvidia-smi

  2. Для того, щоб отримати детальну одне: nvidia-smi -q. Ви отримаєте кілька екранів детальної інформації, якщо у вас більше 1 ГПУ.

  3. Зробіть a ls /proc/driver/nvidia/gpus/. Він відображатиме розташування шини GPU як папки. Тепер запустіть таку команду для кожного з розташувань шини gpu. Заповніть <gpu-id>місце розташування автобуса:cat /proc/driver/nvidia/gpus/<gpu_id>/information


1

Для Intel GMA950 (зокрема з EeePC) ви можете запускати:

setpci -s 00:02.0 f0.b

який поверне «00» для 200 МГц, «01» для 250 МГц або «03» для 400 МГц. Можливо, ви зможете застосувати той же принцип до інших карт Intel.


Я отримую 04. Мій графічний процесор 00: 02.0 VGA-сумісний контролер: Intel Corporation Mobile GM965 / GL960 Інтегрований графічний контролер (основний) (rev 03) (прог. Якщо 00 [контролер VGA])
Джоні, чому

1

Якщо у вас є карта AMD Radeon, ви можете запустити наступні команди

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

Він повинен повідомити про щось подібне

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

Для графічних процесорів nvidia nvidia-smiкоманда - ваш друг. Подивіться, man nvidia-smiчи любите ви.

Для переліку графічних процесорів use nvidia-smi -L( nvidia-smi --list-gpus), nvidia-smi -qдайте інформацію про gpu та запущені процеси.


0

Використовуйте lspci, lspci -vщоб отримати основну інформацію, дивіться тут .

У моєму випадку колись, коли я бігаю, lspciі я отримав:

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

Для того, щоб отримати всю інформацію про графічний процесор, ви можете скористатись такою командою, як вказано в @greyfade.

> glxinfo

Однак якщо програма glxinfoнаразі не встановлена, ви можете встановити її, ввівши:

> sudo apt install mesa-utils

Вам також потрібно буде включити компонент, який називається universe. Після цього glxinfoбуде перераховано всі технічні характеристики, пов'язані з графічним процесором у цьому середовищі.


0

Якщо ви шукаєте на імені лише назви відеокарт, просто використовуйте:

$ nvidia-smi --list-gpus

Для деяких нових графічних процесорів це також перелічує пам’ять кожного пристрою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.