如何获取GPU信息?

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

cat /proc/cpuinfo 

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

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

sudo lshw -C display

(它也适用于没有 sudo 但信息可能不太完整/准确)

您也可以安装软件包 lshw-gtk 得到一个GUI。

这种类型的信息是非标准的,你将用来收集它的工具差别很大。

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

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

  • 对于运行旧Catalyst驱动程序的ATI/AMD Gpu, aticonfig --odgc 应该获取时钟速率, aticonfig --odgt 应获取温度数据。 我不熟悉AMDGPU-Pro,但应该存在类似的工具。
  • 对于NVIDIA Gpu, nvidia-smi 工具将显示您可能想要的所有信息,包括时钟速度和使用统计信息。

我不知道开源驱动程序或英特尔或其他Gpu的等效工具,但硬件上的其他信息可以从 lspcilshw 工具。

这里是一篇专注于命令行工作的博客文章:

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

找出设备ID:

 lspci | grep ' VGA ' | cut -d" " -f 103: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卡。 但是,我没有,这是相当256MB。 为啥? 见下文。

要了解如何从中获得最大的信息和性能,请阅读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                                               |+-----------------------------------------------------------------------------+

这表明我有一个256MB GDDR3显卡。

在这个时候,我不知道如何为英特尔和AMD/ATI Gpu获得这个。

google-chrome 并导航到URL about:gpu.如果chrome已经弄清楚如何使用OpenGL,你会得到关于你的GPU极其详细的信息。

因为你指定了一个命令,比如 cat 因此,对于CPU来说,这是GPU的等价物.特别是对于Nvidia卡. 除了Nvidia设备驱动程序之外,它不需要加载任何软件。

这里的路径适用于我拥有的卡片。 但正如其他人在评论中指出的那样,你的可能会有所不同。

第一GPU

> cat /proc/driver/nvidia/gpus/0/informationModel:       GeForce GTX 680IRQ:         24GPU UUID:    GPU-71541068-cded-8a1b-1d7e-a093a09e9842Video BIOS:      80.04.09.00.01Bus Type:    PCIeDMA Size:    40 bitsDMA Mask:    0xffffffffffBus Location:    0000:01.00.0

第二GPU

> cat /proc/driver/nvidia/gpus/1/informationModel:       GeForce GTX 580IRQ:         33GPU UUID:    GPU-64b1235c-51fc-d6f1-0f0e-fa70320f7a47Video BIOS:      70.10.20.00.01Bus Type:    PCIeDMA Size:    40 bitsDMA Mask:    0xffffffffffBus Location:    0000:08.00.0

对于Nvidia卡,键入

nvidia-smi -q

克林福

sudo apt-get install clinfoclinfo

是类似的 glxinfo 但是对于OpenCL,我的GPU设置描述在: https://stackoverflow.com/questions/7542808/how-to-compile-opencl-on-ubuntu/33483311#33483311

Ubuntu20.04设置->关于

你可以通过点击右上角的菜单打开设置,或者你可以这样做:

  • 超级密钥(又名Windows密钥)
  • 键入"关于"并选择条目

所以下"图形"我可以看到,我的GPU模型是"Quadro M1200/PCIe/SSE2".

enter image description here

nvidia-设置

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

enter image description here

更多详情: 如何检查Ubuntu是否正在使用我的NVIDIA显卡?

我相信最好的选择是 新菲奇.

# Get neofetchsudo add-apt-repository ppa:dawidd0811/neofetchsudo apt updatesudo apt install neofetch# Run neofetchneofetch

这给出了这样的输出:

这对于模型和内存来说真的不是那么复杂,这里有一个1liner,适用于我测试过的每个视频卡,无论制造商如何(英特尔,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= 所有这些位都是从通过"grep"过滤的"lspci"输出中获取与视频芯片相对应的VGA的第三个字段。

RAM= 所有这些位都是设置变量 cardid 等于从输出的第一场 lspci 匹配的"VGA"和饲料,作为一个请求 -v 详细输出 lspci 就具体而言 -s 器,进一步过滤输出由 grep 对于字符串"prefetchable",因为它包含卡本身的内存(请注意前面的空格,因为我们不希望在输出中匹配"不可预取"。

对于英特尔集成显卡的时钟速率(在I3和I5上测试)

执行命令 sudo find /sys -type f -name gt_cur* -print0 | xargs -0 cat这潜入/sys树中以找到我的i3上的gt_cur_freq_mhzfile /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 而在跑步时 glxgearsglmark2 结果 1050 如1050兆赫,对应于 /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 对应于存储器时钟。

注意:我无法测试上述内容,因为我值得信赖的GeForce210不支持,这只适用于开普勒或更新的Gpu,如`nvidia-smi-stats--help'所示

我目前没有AMD卡上的时钟速率的任何解决方案,也没有可用于测试的硬件。 不过,我会说,就我所知, aticonfig 在接受的答案中提到的不再存在,似乎 nvclock 因为可靠,所以什么都没有。

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

  • 英特尔iGPU显示为 Skylake GT2 HD 530 iGPU 与当前频率
  • 最小频率为 350 兆赫和最大值是 1050 兆赫兹

nVidia GPU

gpu temp nvidia.gif

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

Conky代码

以下是英特尔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?

总之,只为包含GPU信息的Ubuntu显示的底部部分(最后一行)使用:

sudo apt install screenfetchscreenfetch

你会想把 screenfetch 命令你的底部 ~/.bashrc 文件,让它出现在每次打开终端。

@CharlieParker它输出cpu的信息。…

什么是:cat/proccpuinfo’做什么? 你在找什么信息?