如何获取GPU信息?

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

cat /proc/cpuinfo 

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

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

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

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

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

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

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

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

 sudo lshw -C display 

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

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

一篇专注于命令行工作的博客文章如下:

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:  Kernel driver in use: nvidia 

编辑:您可以通过使用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/AN/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提供此function。

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

对于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 

clinfo

 sudo apt-get install clinfo clinfo 

glxinfo的类似物,但对于OpenCL。

nvidia-settings中

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

在此处输入图像描述

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

对于Nvidia卡,请键入

 nvidia-smi -q 

我相信最好的选择是neofetch 。

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

这给出了这样的输出:

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

 lspci | grep VGA 

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

这真的不是那么复杂对于型号和内存,这里有一个适用于我测试过的每个video卡的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’过滤,对应于video芯片的VGA。

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

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

执行命令sudo find /sys -type f -name gt_cur* -print0 | xargs -0 cat 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因为可靠而无法用于任何事情。

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

ubuntu terminal splash.png

有关设置的详细信息,请参阅: 如何获得此终端闪屏?

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

 sudo apt install screenfetch screenfetch 

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

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

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

 setpci -s 00:02.0 f0.b 

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

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

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