如何获取GPU信息?

use*_*413 262 command-line graphics gpu

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

cat /proc/cpuinfo 
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*erg 271

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

sudo lshw -C display
Run Code Online (Sandbox Code Playgroud)

(没有它也可以工作,sudo但信息可能不太完整/准确)

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

  • 必须将 gksu 放在菜单中的命令之前才能使 lshw-gtk 工作。 (3认同)
  • 抱歉,深度学习新手。如果我有 GPU 应该怎么说?上面写着“产品:第二代核心处理器系列集成图形控制器” (2认同)
  • @Nathan 这意味着你有一个 GPU......可能是一个非常弱的 GPU。你的 GPU 上写着“集成显卡”,这意味着它集成到了 CPU 中。您的 CPU 有自己的组件,可以充当显卡,并且可能(为了节省成本)使用普通 RAM 来存储其缓冲区。您没有单独的独立可移动显卡。 (2认同)

gre*_*ade 130

这种类型的信息是非标准的,您用来收集这些信息的工具千差万别。

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

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

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

我不知道开源驱动程序或 Intel 或其他 GPU 的等效工具,但可以从lspcilshw工具中获取有关硬件的其他信息。

  • @stiv:它是 Mesa 库的一部分,在 Ubuntu 上随附了 `mesa-utils` 包。 (11认同)
  • `glxinfo | grep "Device"` 在英特尔 GPU 上对我来说效果很好 (6认同)
  • 自 fglrx 停用以来,`aticonfig` 似乎不再可用。`nvclock` 似乎也已被放弃,因为上一个版本是为了可靠。你有任何更新的解决方案吗?这是[我所拥有的](https://askubuntu.com/a/985237/225694) 到目前为止.. (4认同)
  • 我使用:`glxinfo | egrep -i '设备|内存'` (4认同)
  • 如何安装glxinfo? (3认同)

knb*_*knb 115

一篇专注于在命令行上完成的工作的博客文章在这里:

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

找出设备 ID:

 lspci | grep ' VGA ' | cut -d" " -f 1
03:00.0
Run Code Online (Sandbox Code Playgroud)

然后您可以再次使用此输出lspci,形成两个嵌套命令

lspci  -v -s  $(lspci | grep ' VGA ' | cut -d" " -f 1)
Run Code Online (Sandbox Code Playgroud)

如果您有 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
Run Code Online (Sandbox Code Playgroud)

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

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

要了解如何从中获得最多的信息和性能,请阅读 Arch-Linux Wiki 上非常全面的文章

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

对于nvidia 用户,从

nvidia-smi
Run Code Online (Sandbox Code Playgroud)

(这适用于安装的 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                                               |
+-----------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

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

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

  • +1 为 `nvidia-smi`(在我看来应该强调一点) (23认同)
  • `nvidia-smi -q`,[如@Quanlong 所建议](https://askubuntu.com/a/929163/432288) 使用更合理的输出格式。 (7认同)
  • 这应该是公认的答案! (4认同)
  • `nvidia-smi` 没有显示完整的 GPU 名称。 (3认同)

小智 70

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

  • 这也适用于 [Chromium](https://www.chromium.org/Home) (`chromium-browser`)。 (5认同)

hoo*_*enz 48

因为您cat为 CPU指定了一个命令,因此这与 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
Run Code Online (Sandbox Code Playgroud)

第二个 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
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!(虽然对我来说`cat /proc/driver/nvidia/gpus/0000\:01\:00.0/information`) (13认同)
  • 这是 glxinfo 或 lspci 都失败的按需云/HPC 集群环境中唯一正确的答案(前者是因为没有 OpenGL 和显示器,后者是因为 nVidia 显卡是由像 Matrox G200eW3 这样的图形控制器抽象出来的)。gpu 下的文件夹名称是`0000:3b:00.0` 或`0000:d8:00.0` 对我来说,所以我们应该输入:`cat /proc/driver/nvidia/gpus/0000:3b:00.0/information`。可爱的“Tesla V100-PCIE-16GB”模型显示,“qsub”作业限制按预期满足。 (2认同)

Qua*_*ong 23

对于 Nvidia 卡,键入

nvidia-smi -q
Run Code Online (Sandbox Code Playgroud)


Cir*_*郝海东 15

信息

sudo apt-get install clinfo
clinfo
Run Code Online (Sandbox Code Playgroud)

glxinfoOpenCL类似,但对于 OpenCL,我的 GPU 设置在以下位置进行了描述:https : //stackoverflow.com/questions/7542808/how-to-compile-opencl-on-ubuntu/33483311#33483311

Ubuntu 20.04 设置 -> 关于

您可以通过单击右上角的菜单打开设置,也可以执行以下操作:

  • 超级键(又名 Windows 键)
  • 输入“关于”并选择条目

所以在“图形”下,我可以看到我的 GPU 型号是“Quadro M1200/PCIe/SSE2”。

在此处输入图片说明

英伟达设置

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

在此处输入图片说明

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


Hao*_*eke 10

我相信最好的选择是neofetch

# Get neofetch
sudo add-apt-repository ppa:dawidd0811/neofetch
sudo apt update
sudo apt install neofetch
# Run neofetch
neofetch
Run Code Online (Sandbox Code Playgroud)

这给出了这样的输出:

  • 我在这个答案中没有看到显卡频率和内存。有更简单的方法来获得 GPU 的模型,这似乎是你给我们的全部。我不确定这对现有答案有什么影响。 (5认同)
  • 这是屏幕抓取:https://github.com/KittyKatt/screenFetch (3认同)
  • `screenfetch` 程序做同样的事情,不需要安装 PPA。 (2认同)

Eld*_*eek 9

这真的没有那么复杂对于模型和内存,这是一个适用于我测试过的每个视频卡的 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=此位所做的所有工作是从通过 'grep' 过滤的 'lspci' 输出中获取第三个字段,用于对应于视频芯片的 VGA。

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

英特尔集成显卡的时钟频率(在 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,对应于 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自从值得信赖以来,它似乎对任何东西都不可用。


Win*_*nix 8

Conky 或终端启动画面

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

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

Conky实时显示

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

显示会根据您是在prime-select intel或之后启动而改变prime-select nvidia

英特尔 iGPU

gpu 温度 intel.gif

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

英伟达 GPU

gpu 温度 nvidia.gif

  • nVidia GPU 显示为GeForce GTX970M当前 GPU 频率和温度
  • 显示驱动程序版本、P-State 和 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}
Run Code Online (Sandbox Code Playgroud)

~/.bashrc 终端启动画面

~/.bashrc每次打开终端或. .bashrc在 shell 提示符下键入时,此示例都会修改为在启动屏幕上显示信息。

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

ubuntu 终端 splash.png

有关设置的详细信息,请参阅:带有天气、日历、时间和系统信息的终端启动画面?

总之,对于包含 GPU 信息(倒数第二行)的 Ubuntu 显示的底部部分,请使用:

sudo apt install screenfetch
screenfetch
Run Code Online (Sandbox Code Playgroud)

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


kma*_*o23 7

如果您只查找机器上显卡的名称,则只需使用:

$ nvidia-smi --list-gpus
Run Code Online (Sandbox Code Playgroud)

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


mig*_*ile 6

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

lspci | grep VGA
Run Code Online (Sandbox Code Playgroud)

如果您需要更多详细信息,请参阅@knb对同一问题的回答


Nuf*_*ufa 5

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

gpustat 截图

笔者给出如下安装说明:

从 PyPI 安装:

pip install gpustat 
Run Code Online (Sandbox Code Playgroud)

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

pip install git+https://github.com/wookayin/gpustat.git@master 
Run Code Online (Sandbox Code Playgroud)

如果您没有 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
Run Code Online (Sandbox Code Playgroud)


小智 5

对于 nvidia GPU,nvidia-smi命令是你的朋友。看看man nvidia-smi你是否喜欢。

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