gputemps displays GPU core, junction, and VRAM temperatures for compatible NVIDIA GPUs with GDDR6, GDDR6X, or GDDR7 memory.
Warning
This project is experimental and reads undocumented GPU temperature sensors. It is provided as-is without warranty.
Install the required development packages, build the program, and run it as root:
sudo apt install gcc make libpci-dev nvidia-cuda-toolkit
git clone https://github.com/ThomasBaruzier/gddr6-core-junction-vram-temps
cd gddr6-core-junction-vram-temps
make
sudo ./gputempsPress any key or Ctrl+C to exit.
Run the live temperature table:
sudo ./gputempsDisplay one reading and exit:
sudo ./gputemps --onceOutput JSON Lines:
sudo ./gputemps --jsonMonitor one or more GPUs:
sudo ./gputemps --device 0
sudo ./gputemps --device 0,2Devices can be selected by NVML index, UUID, or PCI BDF.
When --device is not specified, CUDA_VISIBLE_DEVICES is used as a device filter if set. Otherwise, NVIDIA_VISIBLE_DEVICES is used.
Change the refresh interval:
sudo ./gputemps --refresh-ms 100The minimum refresh interval is 50 milliseconds. The default is 1000 milliseconds.
--device <list>: Monitor selected devices by index, UUID, or PCI BDF.--json: Output one JSON object per line.--once: Output one reading and exit.--refresh-ms <ms>: Set the refresh interval in milliseconds.--help: Show the help message.
Each object contains a timestamp and the selected GPU readings:
{
"timestamp": 1678886400000,
"gpus": [{ "index": 0, "core": 55, "junction": 68, "vram": 72 }]
}timestamp: Unix timestamp in milliseconds.index: NVML device index.core: GPU core temperature in Celsius.junction: GPU junction temperature in Celsius.vram: VRAM temperature in Celsius.
Unavailable readings are returned as null.
The build requires:
- a C11 compiler
- GNU Make
- libpci development files
- NVIDIA NVML headers and library
Build with:
makeIf nvml.h is outside the default include path:
make CPPFLAGS="-I$CUDA_HOME/targets/x86_64-linux/include"Remove generated files:
make cleanInstall or uninstall the program:
sudo make install
sudo make uninstallBuild the executable in Docker and copy it to the repository directory:
./build-docker.sh
sudo ./gputempsExperimental junction and GDDR7 VRAM temperature support is included for RTX 5090, RTX 5080, RTX 5070 Ti, RTX 5070, and RTX 5060 Ti.
On supported Blackwell GPUs:
JUNCreports the hottest valid die thermal channel or hardware hotspot reading.VRAMreports the hottest valid GDDR7 temperature source.
The same values are available through the JSON junction and vram properties.
There is no support (yet) for RTX 5060. Contributions are welcomed.
The program reads memory-mapped GPU temperature sensors through /dev/mem. On many systems, this requires adding iomem=relaxed to the kernel command line.
On systems using GRUB, edit:
sudo nano /etc/default/grubAdd iomem=relaxed, for example:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash iomem=relaxed"
Apply the change and reboot:
sudo update-grub
sudo rebootSecure Boot or kernel lockdown may also prevent access to /dev/mem. Check Secure Boot with:
sudo mokutil --sbCaution
iomem=relaxed allows privileged processes broader access to device memory. Consider the security implications before enabling it, especially on shared systems.
Run the program as root:
sudo ./gputempsInstall the NVIDIA CUDA toolkit or provide the NVML include directory when building:
make CPPFLAGS="-I$CUDA_HOME/targets/x86_64-linux/include"- RTX 3090
- RTX 4060 Ti 16GB
- RTX 4060 Max-Q
- RTX 5060 Ti
- RTX 2000 Ada
- RTX PRO 4000 SFF
- RTX 5090
- RTX 5080
- RTX 5070 Ti
- RTX 5070
- RTX 4090
- RTX 4080 Super
- RTX 4080
- RTX 4070 Ti Super
- RTX 4070 Ti
- RTX 4070 Super
- RTX 4070
- RTX 3090 Ti
- RTX 3080 Ti
- RTX 3080
- RTX 3080 LHR
- RTX A2000
- RTX A4500
- RTX A5000
- RTX A6000
- L4
- L40S
- A10
- RTX 3070
- RTX 3070 LHR
- olealgoritme/gddr6: GDDR6/GDDR6X VRAM temperature support
- jjziets/gddr6_temps: GDDR6/GDDR6X junction temperature support
- igor'sLAB: RTX 5090 junction register findings
- TechPowerUp forum: RTX 5070 GDDR7 register findings
- sunnyyangyangyang/gddr7-temp: RTX 5090 GDDR7 VRAM and junction support
- biGGer: RTX 5070, 5070 Ti, 5080, and 5090 VRAM and junction support
