如何查看显卡温度(Nvidia,ATI,Intel...)

有没有通过终端命令查看任何显卡温度的方法。

已尝试使用应用了 sensors-detectsensors 命令。但无法检测到例如 Nvidia 和 ATI 显卡的温度。

10个回答

NVIDIA卡的另一种选择是使用nvidia-smi:即"NVIDIA系统管理接口程序"。
user@box:~$ nvidia-smi -q -d temperature
GPU 0:
            Product Name            : GeForce 210
            PCI ID                  : a6510de
            Temperature             : 39 C

或者只输出摄氏度的数值:
user@box:~$ nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader
39

optirun nvidia-smi -q -d temperature - Gelldur
1如果有人错过了,nvidia-settings -q gpucoretemp 是另一种方法。 - Mateen Ulhaq
当所有GPU核心都达到100%并且您的nvidia-smi命令在核心被释放之前挂起时,您该如何处理?这样就打破了“熔毁警报”的目的?我只能使用市场上的温度传感器了吗?2080Ti GPU显然无法在100%使用率下读取自己的温度,并且不知道何时启动自己的风扇,也不会因为>135摄氏度的熔化温度而停止。看起来是时候解包他们的专有C二进制文件,并像暴雪游戏开发者那样操作了。干得好,NVIDIA,愤怒的噪音。 - Eric Leschinski
内存当前温度:无法获取。怎么办? - gies0r

是的,有一个命令。

检测传感器

首先,你必须搜索传感器:

sudo apt-get install lm-sensors
sudo sensors-detect

自从清晰的猞猁版本以来,你必须输入:
sudo service module-init-tools start

如果你正在运行另一个Ubuntu版本,请输入以下命令:
sudo /etc/init.d/module-init-tools start

为了保存检测结果。
显示传感器数据
现在,要显示温度,请输入:
sensors

现在你应该看到类似这样的东西:

My sensors result

我没有很多传感器,顺便说一句 :)
显示NVIDIA GPU的温度
如果您使用的是NVIDIA GPU类型:
sudo apt-get install nvclock

安装完成后,输入“nvclock -T”来显示温度。
你也可以输入“nvidia-settings -q gpucoretemp”。
希望这对你有所帮助,

5谢谢你的回答,Daniel。但是传感器无法检测像ATI和NVIDIA这样的情况下的视频温度。我应该在问题中提到这一点,但是忘记了。对于完整的示例给予+1评价。 - Luis Alvarado
1@CYREX 在做了一些研究后,我发现如果你在探测传感器之前安装了libsensors3,它还能显示GPU温度。尝试执行以下步骤:sudo apt-get install libsensors3,然后再次按照我的步骤操作。 - omnidan
没有,也没有运气。只显示了CPU温度。 - Luis Alvarado
一些由NVIDIA/ATI制作的程序可以显示GPU温度。 - omnidan
@CYREX我添加了显示NVIDIA GPU温度的说明,请查看我的编辑答案。 - omnidan
对我来说,这些都不起作用;然而,@drgrog的建议却有效。 - mirabilos
如果您使用的是 ATI GPU(Radeon...)专有驱动程序(fglrx),请先运行sudo aticonfig --initial,然后运行aticonfig --odgt --odgc来显示GPU温度和负载。 - KrisWebDev
对于AMD GPU,在16.04版本中:首先执行apt install lm-sensors,然后执行sensors-detect - noobninja
无论是sensors-detect还是sensors在我的原始16.04上都不起作用。我必须首先安装lm-sensors软件包(sudo apt-get install lm-sensors)。我有一张NVIDIA显卡。nvidia-settings可以正常工作,但我已经安装好了NVIDIA 340.X驱动程序。Psensor图形界面(https://launchpad.net/ubuntu/+source/psensor/1.1.3-2ubuntu5)非常好用。 - Manuel J. Diaz
Kubuntu 21.10 不认识一个叫做 "nvclock" 的软件包。 - Silicomancer

已经提到的nvidia命令(在我的OpenElec安装中):
nvidia-smi

还提供了额外的信息:
+------------------------------------------------------+                       
| NVIDIA-SMI 3.295.71   Driver Version: 295.71         |                       
|-------------------------------+----------------------+----------------------+
| Nb.  Name                     | Bus Id        Disp.  | Volatile ECC SB / DB |
| Fan   Temp   Power Usage /Cap | Memory Usage         | GPU Util. Compute M. |
|===============================+======================+======================|
| 0.  GeForce GT 520            | 0000:01:00.0  N/A    |       N/A        N/A |
|  N/A   52 C  N/A   N/A /  N/A |  17%  169MB / 1023MB |  N/A      Default    |
|-------------------------------+----------------------+----------------------|
| Compute processes:                                               GPU Memory |
|  GPU  PID     Process name                                       Usage      |
|=============================================================================|
|  0.           Not Supported                                                 |
+-----------------------------------------------------------------------------+

如果你想在终端中监视温度,你可以使用watch命令和其他答案中给出的指令(例如@drgrog的)。例如,要每5秒刷新一次温度:
watch -n 5 nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader

对于NVIDIA而言,有一个名为“nvidia-settings”的软件包,其中包含一个图形界面用于查看温度。我不记得是否有一个文本模式工具在里面。
一些Intel图形适配器通过ACPI报告其温度,并且您可以通过同名软件包中的“sensors”命令来读取它。


我希望能有一种快速简单的方式来查看我的电脑上的GPU和CPU温度。我还希望能以华氏度显示NVidia温度。假设您已经安装、配置并且已经使得`nvidia-smi`和`sensors`工具正常运行(请参阅上面的操作步骤),您可以使用以下脚本将所有信息显示在一起:
#!/bin/bash
echo ""

echo "GPU Current Temp"
echo "Core 0:       +$(( $((`nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader` * 9/5)) + 32))°F"
# nvidia-smi --query --display=TEMPERATURE | grep "GPU Current Temp" --color=none | sed 's/        //g'

echo ""

echo "CPU Current Temp"
sensors coretemp-isa-0000 -f | sed 's/(high.*//g' | tail -n +4 | sed 's/\.[0-9]//g'

注意:如果您的计算机使用不同的架构,您可能需要将coretemp-isa-0000更改为适用于它的标识符。
输出将看起来类似于:

GPU Current Temp
Core 0:       +120°F

CPU Current Temp
Core 0:       +167°F  
Core 1:       +176°F  
Core 2:       +156°F  
Core 3:       +152°F  
Core 4:       +147°F  
Core 5:       +143°F  


安装完nvclock后,只需在终端上运行nvidia-settings即可。在Ubuntu 14lts上,这对于GeForce 210显卡非常有效。你将获得一个非常漂亮的图形界面,并可以在GPU 0 > Thermal Settings中检查摄氏温度。


使用Conky监控GPU温度

Conky是一款在Linux上广受欢迎的轻量级系统监视器,它对资源消耗很小,但功能强大。您可以使用它来持续显示GPU温度以及其他您想要跟踪的系统元素。

大多数搭载nVidia GPU的笔记本电脑还包含一个用于在电池供电时使用的Intel集成GPU(iGPU)。

我的Conky显示会根据选择的是Intel还是nVidia而改变。

以下是nVidia和Intel的GIF图像,在运行glxgears来测试GPU性能之前和之后。我将尝试找到比glxgears更具挑战性的图形测试。

激活nVidia的笔记本电脑显示

当使用prime-select nvidia激活时,我的Conky显示如下:

gpu temp nvidia

最初nVidia GPU的负载较低,运行在746 MHz,温度为55摄氏度。在运行glxgears后,GPU速度飙升到最高速度1037 MHz,温度上升至58摄氏度。

激活带有Intel集成GPU的笔记本电脑显示器

当使用prime-select intel命令时,我的Conky显示如下:

intel GPU

最初,Intel集成GPU(iGPU)的负载较低,CPU温度为49摄氏度。在运行glxgears后,CPU温度上升到73摄氏度!

Conky代码

以下是与上述相关的Conky代码:

#------------+
# Temperature|
#------------+
#${color1}All CPUs ${color green}${cpu}% ${goto 131}${color1}Temp: ${color green}${execpi .001 cat /sys/class/thermal/thermal_zone7/temp | cut -c1-2}°C ${alignr}${color1}Up: ${color green}$uptime
# Next line is for kernel >= 4.13.0-36-generic
${color1}All CPUs ${color green}${cpu}% ${goto 131}${color1}Temp: ${color green}${hwmon 1 temp 1}°C ${alignr}${color1}Up: ${color green}$uptime
# Next line is for temperature with Kerenel 4.4
#${color1}All CPUs ${color green}${cpu}% ${goto 131}${color1}Temp: ${color green}${hwmon 0 temp 1}°C ${alignr}${color1}Up: ${color green}$uptime
${color green}$running_processes ${color1}running of ${color green}$processes ${color1}loaded processes.
${color1}Load Average 1-5-15 minutes: ${alignr}${color green}${execpi .001 (awk '{printf "%s/", $1}' /proc/loadavg; grep -c processor /proc/cpuinfo;) | bc -l | cut -c1-4} ${execpi .001 (awk '{printf "%s/", $2}' /proc/loadavg; grep -c processor /proc/cpuinfo;) | bc -l | cut -c1-4} ${execpi .001 (awk '{printf "%s/", $3}' /proc/loadavg; grep -c processor /proc/cpuinfo;) | bc -l | cut -c1-4}
#------------+
# 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}

我无法将这个配置文件加载到$HOME/.conkyrc中。我觉得这可能已经过时了。 - morhook
@morhook 这可能需要根据最新版本的conky进行更新,但我不确定。 - WinEunuuchs2Unix
我正在使用Ubuntu 21.04,如果有帮助的话。已安装的软件包是conky-all版本1.11.6-2。 - morhook