it-swarm.cn

如何获取GPU信息?

我正在寻找一个能给我相同信息的命令:

cat /proc/cpuinfo 

除GPU(芯片类型和内存,频率)。

142
user2413

这种类型的信息是非标准的,您将用于收集它的工具差异很大。

如果正确安装了驱动程序,glxinfo命令将为您提供图形处理器的所有可用OpenGL信息,包括其供应商名称。

要获得时钟速度信息,没有标准工具。

  • 对于ATI/AMD GPU,aticonfig --odgc将获取时钟速率,aticonfig --odgt将获取温度数据。
  • 对于NVIDIA GPU,nvclock程序将获取相同的信息。

我不知道开源驱动程序或英特尔或其他GPU的等效工具。

可以从lspcilshw工具中获取有关硬件的其他信息。

67
greyfade

我不知道直接的等价物,但lshw应该给你你想要的信息,试试:

Sudo lshw -C display

(它也可以在没有Sudo的情况下工作,但信息可能不太完整/准确)

您还可以安装包lshw-gtk来获取GUI。

136
Marcel Stimberg

关注命令行工作的博客文章如下:

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

找出设备ID:

 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

编辑:您可以通过Sudo启动来避免<access denied>

所以,(prefetchable) [size=64M)表示我有一个64 MB的NVIDIA卡。但是,我没有,它相当于256 MB。为什么?见下文。

要了解如何从中获取最多信息+性能,请阅读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 MB的GDDR3显卡。

目前,我不知道如何为英特尔和AMD/ATI GPU提供此功能。

74
knb

运行google-chrome并导航到URL about:gpu。如果chrome已经找到了如何使用OpenGL,您将获得有关GPU的极其详细信息。

46
Chris Uhlik

对于Nvidia卡。

第一个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

第二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

glxinfo的类似物,但是对于OpenCL。

NVIDIA的设置

将运行时与一些静态信息混合。

enter image description here

更多细节: 如何检查Ubuntu是否使用我的NVIDIA显卡?

对于Nvidia卡,请键入

nvidia-smi -q
9
Quanlong

我相信最好的选择是 neofetch

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

这给出了这样的输出:

7
HaoZeke

Conky或终端启动画面

我使用两种方法自动显示nVidia GPU和Intel iGPU信息:

  • Conky实时动态显示GPU信息
  • 每次打开终端时~/.bashrc都会显示GPU信息

Conky实时显示

此示例使用Conky实时显示当前GPU(nVidia或Intel)统计信息。 Conky是一款轻量级系统监视器,深受许多Linux爱好者的欢迎。

显示的变化取决于您是否在prime-select intelprime-select nvidia之后启动。

英特尔iGPU

gpu temp intel.gif

  • Intel iGPU以当前频率显示为Skylake GT2 HD 530 iGPU
  • 最小频率为350 MHz,最大值为1050 MHz

nVidia GPU

gpu temp nvidia.gif

  • NVidia GPU显示为具有当前GPU频率和温度的GeForce GTX970M
  • 显示驱动程序版本,P-State和BIOS版本
  • 显示GPU负载,RAM使用,功耗和RAM频率

Conky Code

以下是英特尔iGPU和nVidia GPU的相关Conky脚本:

#------------+
# 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以在每次打开终端时或在Shell提示符下键入. .bashrc时在启动屏幕上显示信息。

除了先前回答的neofetch之外,还有screenfetch,它看起来好多了(IMO)。另外一个答案提到他不知道如何列出iGPU,这样做:

ubuntu terminal splash.png

有关设置的详细信息,请参阅: 带有天气,日历,时间和系统信息的终端闪屏?

总结一下,只有包含GPU信息的Ubuntu显示的底部(最后一行)使用:

Sudo apt install screenfetch
screenfetch

您需要将screenfetch命令放在~/.bashrc文件的底部,以便每次打开终端时都显示它。

5
WinEunuuchs2Unix

根据 https://wiki.debian.org/NvidiaGraphicsDrivers#NVIDIA_Proprietary_Driver ,只是为了找到基础知识,

lspci | grep VGA

如果您需要更多细节,请参阅@ knb's 答案 同样的问题。

3
mightypile

这真的不是那么复杂对于型号和内存,这里有一个适用于我测试过的每个视频卡的1个线路,无论制造商(英特尔,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 =所有这一切都是从'lspci'输出中获取第3个字段,通过'grep'过滤,对应于视频芯片的VGA。

RAM =所有这一切都设置变量cardid等于lspci匹配“VGA”的第一个输出字段,并将其作为lspci-v详细输出请求提供给该特定的-s设备,进一步过滤grep输出字符串“prefetchable”,因为它包含卡本身的内存(注意前面的空格,因为我们不希望在输出中匹配“non-prefetchable”)。

对于Intel集成显卡的时钟频率(在I3和I5上测试)

执行命令Sudo find /sys -type f -name gt_cur* -print0 | xargs -0 cat这潜入/ sys树,找到我的I3上的gt_cur_freq_mhz文件/sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_cur_freq_mhz并打印内容。在我的情况下,在极轻载下是350,如在350 MHz中,它对应于/sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_min_freq_mhz中找到的最小频率,当运行glxgearsglmark2时,导致1050,如1050 MHz,这对应于/sys/devices/pci0000:00/0000:00:02.0/drm/card0/gt_max_freq_mhz中找到的最大频率

对于nvidia卡的时钟频率:

nvidia-smi -stats -d procClk对应于GPU时钟nvidia-smi -stats -d memClk对应于内存时钟。

注意:我无法测试上面的内容,因为我的可靠GeForce 210不受支持,这只适用于Kepler或更新的GPU,如'nvidia-smi -stats --help'所示

我目前没有AMD卡上的时钟速率解决方案,也没有可用于测试的硬件。然而,我会说,据我所知,接受的答案中提到的aticonfig不再存在,并且看起来nvclock因为可靠而无法用于任何事情。

3
Elder Geek

如果您想获得简单信息,可以尝试 gpustat 。它非常好而且简单。

gpustat screenshot

作者提供了以下安装说明:

从PyPI安装:

pip install gpustat 

通过pip安装最新版本(master分支):

pip install git+https://github.com/wookayin/[email protected] 

如果您没有root权限,请尝试在用户命名空间上安装: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
Nufa

如果您在带有crouton的Chromebook上运行Ubuntu,那么唯一有效的答案就是Chrome浏览器中的chrome://gpu

2
k26dr

对于Intel GMA950(特别是EeePC),您可以运行:

setpci -s 00:02.0 f0.b

它将返回'00'表示200MHz,'01'表示250MHz或'03'表示400MHz。您可以将相同的原则应用于其他Intel卡。

1
user10872

对于nvidia GPU,nvidia-smi命令是你的朋友。如果您愿意,请参阅man nvidia-smi

要列出GPU,请使用nvidia-smi -Lnvidia-smi --list-gpus),nvidia-smi -q提供有关gpu和正在运行的进程的信息。

1
Memin

如果您有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
Nerrve

好吧,这个答案假设您有一台带有NVIDIA-GPU的服务器。你有三种方式:

  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
Sritanu Chakraborty

要获取有关图形处理器的所有信息,可以使用@greyfade指定的以下命令。

> glxinfo

但是,如果当前未安装程序glxinfo,则可以通过键入以下命令来安装它:

> Sudo apt install mesa-utils

您还必须启用名为universe的组件。完成此操作后,glxinfo将列出与该环境中的图形处理器相关的所有规范。

0
Nayantara Jeyaraj

使用lspcilspci -v获取基本信息,请参阅 此处

在我的情况下,一旦我运行lspci,我得到:

[email protected]:~$ 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

如果您只在机器上查找视频卡的名称,那么只需使用:

$ nvidia-smi --list-gpus

对于一些较新的GPU,这也列出了每个设备的内存。

0
kmario23