如何获取GPU信息?
我正在寻找一个能给我相同信息的命令:
cat /proc/cpuinfo
除GPU(芯片类型和内存,频率)。
这种类型的信息是非标准的,您将用于收集它的工具差异很大。
如果驱动程序安装正确, glxinfo
命令将为您提供图形处理器的所有可用OpenGL信息,包括其供应商名称。
要获得时钟速度信息,没有标准工具。
- 对于ATI / AMD GPU,
aticonfig --odgc
将获取时钟速率,aticonfig --odgt
将获取温度数据。 - 对于NVIDIA GPU,
nvclock
程序将获取相同的信息。
我不知道开源驱动程序或英特尔或其他GPU的等效工具。
可以从lspci
和lshw
工具获取有关硬件的其他信息。
我不知道直接的等价物,但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
的最小频率,并且当运行glxgears
和glmark2
导致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并且这样做:
有关设置的详细信息,请参阅: 如何获得此终端闪屏?
总结一下,只有包含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)