如何获取GPU信息?


155

我正在寻找一个命令,该命令将为我提供以下信息:

cat /proc/cpuinfo 

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


做什么:cat /proc/cpuinfo 做什么?您在寻找什么信息?
查理·帕克

1
@CharlieParker它输出cpu的信息...
Emobe

Answers:


74

这类信息是非标准的,收集信息所使用的工具千差万别。

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

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

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

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

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


2
如何安装glxinfo?
stiv 2015年

7
@stiv:它是Mesa库的一部分,并随mesa-utilsUbuntu一起提供。
greyfade

2
aticonfig自fglrx退役以来似乎不可用。 nvclock自从上一版发布以来,该版本似乎也已被放弃。您有更新的解决方案吗?下面是我有什么迄今为止..
上古野人

2
glxinfo | grep "Device"在Intel GPU上对我来说工作得足​​够好
John Hamilton

我使用:glxinfo | egrep -i 'device|memory'
危险

152

我不知道直接等效的方法,但是lshw应该会为您提供所需的信息,请尝试:

sudo lshw -C display

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

您也可以安装该软件包lshw-gtk以获取GUI。


3
必须将gksu放在菜单中的命令之前,以使lshw-gtk正常工作。
robin0800

任何更新?我是该命令的粉丝,但似乎为我提供的唯一时钟频率(频率)是33MHz的基本总线时钟。我正在尝试更新此问答。谢谢!
年长者怪胎

1
抱歉,是深度学习的新功能。如果我有GPU,应该怎么说?它说product: 2nd Generation Core Processor Family Integrated Graphics Controller
坦率的

80

这里是一个关注命令行完成工作的博客文章:

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

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

因此,(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图形卡。

目前,我不知道如何为Intel和AMD / ATI GPU获得此功能。


12
+1 nvidia-smi(我认为应该强调一下)
Martin Thoma 2014年


2
这确实应该是公认的答案!
INElutTabile

1
nvidia-smi没有显示完整的GPU名称。
mrgloom

48

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


2
这也适用于Chromiumchromium-browser)。
伊利亚·卡根

聪明。按照这些原则,我还去了chromeexperiments.com看到了那里的性能。像黄油一样光滑-我绝对喜欢gpu
Jacksonkr,

30

因为您指定了类似catCPU的命令,所以这等同于GPU的命令。专门用于Nvidia卡。除了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

7
谢谢!(尽管cat /proc/driver/nvidia/gpus/0000\:01\:00.0/information对我来说)
马特·威尔基

1
这是按需云/ HPC群集环境中glxinfo或lspci都失败的唯一正确答案(前者是因为没有OpenGL和显示,后者是因为nVidia显卡由Matrox G200eW3等图形控制器抽象化)。gpus下的文件夹名称是0000:3b:00.0or 0000:d8:00.0,所以我们应该输入:cat /proc/driver/nvidia/gpus/0000:3b:00.0/information。可爱的Tesla V100-PCIE-16GB模型表明qsub可以满足所需的工作限制。
user5280911 '18 -10-6



7

我确实认为,最好的选择是neofetch

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

这给出了这样的输出:


3
我没有在此答案中看到显卡的频率和内存。有很多简单的方法可以获取GPU的模型,这似乎就是您所提供的。我不确定这会增加现有的答案。
年长者怪胎

1
screenfetch程序做同样的事情,不需要安装PPA。
Braden Best

这是一个shell脚本。另外,我也链接到它的github,因此您可以将其用作脚本。
HaoZeke


5

Conky或终端启动画面

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

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

Conky实时显示

此示例使用Conky实时显示当前GPU(nVidia或Intel)状态。Conky是一种重量轻的系统监视器,在许多Linux爱好者中都很流行。

显示内容根据您是在prime-select intel还是之后启动而改变prime-select nvidia

英特尔iGPU

gpu temp intel.gif

  • 英特尔iGPU显示为Skylake GT2 HD 530 iGPU当前频率
  • 最小频率为350MHz,最大频率为1050MHz

nVidia GPU

gpu temp nvidia.gif

  • nVidia GPU显示为GeForce GTX970M当前GPU频率和温度
  • 显示驱动程序版本,P状态和BIOS版本
  • 显示GPU负载,RAM使用,功耗和RAM频率

康基码

以下是有关Intel 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每次打开终端或. .bashrc在shell提示符下键入该示例时,此示例都会进行修改以在初始屏幕上显示信息。

除了neofetch先前回答的内容外,还有screenfetch更好的内容(IMO)。再加上另一个答案提到他不知道如何将iGPU列出来,并且这样做:

ubuntu terminal splash.png

有关设置的详细信息,请参见:带有天气,日历,时间和Sysinfo的终端启动屏幕?

总而言之,仅针对底部部分,Ubuntu显示包含GPU信息(第二行),请使用:

sudo apt install screenfetch
screenfetch

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



3

对于模型和内存,这实际上并没有那么复杂,这是一种衬板,适用于我测试过的所有视频卡,不受制造商(英特尔,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”输出中获取第三个字段,该输出通过与视频芯片相对应的VGA通过“ grep”过滤。

RAM =所有这些位的设置变量cardid等于lspci匹配的“ VGA” 的输出的第一个字段,并将其作为对该特定设备的-v详细输出的请求进行馈送,进一步过滤字符串“ prefetchable” 的输出,因为其中包含卡本身上的内存(请注意前面的空格,因为我们不想在输出中匹配“ non-prefetchable”。lspci-sgrep

对于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并打印内容。在我的情况下,在极轻的负载下约为350350 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,并且仅在开普勒或更新的GPU上有效,如`nvidia-smi -stats --help'所示。

我目前没有针对AMD卡的时钟速率的任何解决方案,也没有可用于测试的硬件。但是,据我所知aticonfig,已经接受的答案中提到的内容已不存在,并且nvclock自从信任以来似乎无法使用。


2

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


2

如果您想获取简单的信息,可以尝试gpustat。这是非常好的和简单的。

gpustat屏幕截图

作者给出以下安装说明:

从PyPI安装:

pip install gpustat 

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

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

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

好吧,此答案假设您有一台具有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

对于英特尔GMA950(尤其是EeePC附带),您可以运行:

setpci -s 00:02.0 f0.b

200MHz时返回“ 00”,250MHz时返回“ 01”,400MHz时返回“ 03”。您可能可以将相同的原理应用于其他Intel卡。


我要04。我的GPU是00:02.0 VGA兼容控制器:英特尔公司移动GM965 / GL960集成图形控制器(主要)(修订版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 GPU,nvidia-smi命令是您的朋友。看看man nvidia-smi你是否喜欢。

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


0

使用lspcilspci -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

对于某些较新的GPU,它还会列出每个设备的内存。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.