Как получить информацию о GPU?

156

Я ищу команду, которая выдала бы мне ту же информацию, что и:

cat /proc/cpuinfo 

За исключением графического процессора (тип чипа и памяти, частота).

user2413
источник
что делает: cat /proc/cpuinfo делать? какую информацию вы ищете?
Чарли Паркер
1
@CharlieParker выводит информацию о процессоре ...
Эмоб

Ответы:

75

Этот тип информации является нестандартным, и инструменты, которые вы будете использовать для его сбора, сильно различаются.

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

Чтобы получить информацию о тактовой частоте, не существует стандартного инструмента.

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

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

Другая информация на оборудовании может быть извлечена из lspciи lshwинструментов.

greyfade
источник
2
Как установить glxinfo?
Стив
7
@stiv: это часть библиотеки Mesa и поставляется с пакетом mesa-utilsдля Ubuntu.
Greyfade
2
aticonfigПохоже, не доступны после выхода на пенсию fglrx. nvclockтакже, похоже, был заброшен, так как последняя версия была верной. Есть ли у вас какие-либо обновленные решения? Вот то, что я до сих пор ..
Старейшина Гик
2
glxinfo | grep "Device"работал достаточно хорошо для меня на Intel GPU
Джон Гамильтон
Я использую:glxinfo | egrep -i 'device|memory'
danger89
154

Я не знаю прямого эквивалента, но 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 графической карты, попробуйте выполнить следующую команду:

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

РЕДАКТИРОВАТЬ: Вы можете избежать <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                                               |
+-----------------------------------------------------------------------------+

Это означает, что у меня есть 256 МБ графической карты GDDR3.

В настоящее время я не знаю, как получить это для Intel и AMD / ATI GPU.

KNB
источник
12
+1 за nvidia-smi(это должно быть немного подчеркнуто, на мой взгляд)
Мартин Тома
Если у кого-то есть идеи: 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для CPU, это эквивалентно для GPU. Специально для карт Nvidia. Для этого не требуется никакого программного обеспечения, кроме драйвера устройства Nvidia.

Путь здесь работает для карт, которые у меня есть. Но ваш может отличаться, как другие указали в комментариях.

1-й графический процессор

> 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-й графический процессор

> 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для меня)
Мэтт Вилки
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лимит работы выполняется по желанию.
user5280911
11

Для карт Nvidia введите

nvidia-smi -q
Quanlong
источник
7

Я считаю, что лучший вариант для этого - neofetch .

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

Это дает вывод как это:

HaoZeke
источник
3
Я не вижу частоты видеокарты и памяти в этом ответе. Существуют гораздо более простые методы получения модели графического процессора, которая, по-видимому, и есть все, что вы нам даете. Я не уверен, что это добавляет к существующим ответам.
Старейшина Гик
1
screenfetchПрограмма делает то же самое , и не требует PPA для установки.
Брэден Бест
Это сценарий оболочки. Плюс я также связался с его github, так что вы можете использовать его как скрипт.
HaoZeke
1
Вот скриншот: github.com/KittyKatt/screenFetch
Камиль Гудесюн
5

Конки или Терминал Заставка

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

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

Conky дисплей в реальном времени

В этом примере Conky используется для отображения текущей статистики графического процессора (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с текущей частотой и температурой графического процессора
  • Версия драйвера, P-State и версия BIOS отображаются
  • Отображается загрузка графического процессора, использование ОЗУ, энергопотребление и частота ОЗУ

Код Конки

Вот соответствующий скрипт Conky для Intel iGPU и 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 Терминал заставки

Этот пример модифицируется ~/.bashrcдля отображения информации на заставке каждый раз, когда открывается терминал или когда вы печатаете . .bashrcв приглашении оболочки.

В дополнение к neofetchответам ранее, есть screenfetchчто выглядит намного лучше (IMO). Плюс другой ответ упоминает, что он не знает, как включить iGPU в список, и это делает это:

Ubuntu Terminal Splash.png

Подробнее о настройке см .: Заставка терминала с информацией о погоде, календаре, времени и Sysinfo?

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

sudo apt install screenfetch
screenfetch

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

WinEunuuchs2Unix
источник
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, который соответствует видеочипу.

RAM = Все, что делает этот бит, устанавливает переменную, cardidравную первому полю вывода из lspciсоответствующего «VGA», и передает его как запрос -vподробного вывода lspciдля этого конкретного -sустройства, дополнительно фильтруя вывод по grepстроке «prefetchable», так как она содержит памяти на самой карте (обратите внимание на предыдущий пробел, так как мы не хотим совпадать с "non-prefetchable" в нашем выводе.

Для тактовой частоты на интегрированной графике 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 будет работать только один из ответов .

k26dr
источник
2

Если вы хотите иметь простую информацию, вы можете попробовать gpustat . Это очень хорошо и просто.

скриншот gpustat

Автор дает следующие инструкции по установке:

Установить из PyPI:

pip install gpustat 

Чтобы установить последнюю версию (основная ветка) через pip:

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

Если у вас нет соответствующих прав , пожалуйста , попробуйте установить на пользователя имен: pip install --user. Обратите внимание, что начиная с версии 0.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
Nufa
источник
2

Ну, этот ответ предполагает, что у вас есть сервер с графическими процессорами NVIDIA. У вас есть три способа:

  1. Чтобы получить только краткую суть: nvidia-smi

  2. Для того, чтобы получить подробную одно: nvidia-smi -q. Вы получите несколько экранов с подробной информацией, если у вас более 1 GPU.

  3. Сделать а 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. Мой GPU - это 00: 02.0 VGA-совместимый контроллер: Intel Corporation Mobile GM965 / GL960 Интегрированный графический контроллер (основной) (версия 03) (prog-if 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)
Nerrve
источник
1

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

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

Memin
источник
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

Для некоторых более новых графических процессоров это также перечисляет память каждого устройства.

kmario23
источник