本文目录导读:

是的,脚本完全可以监控GPU温度,这主要取决于你的操作系统和使用的脚本语言。
以下是几种常见的方法:
使用命令行工具(最常用、最直接)
几乎所有的GPU监控工具都提供命令行接口,非常适合在脚本中调用。
Windows (使用 nvidia-smi)
NVIDIA显卡必备工具,通常随驱动安装。
:: 查看所有GPU的温度(只提取温度值) nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader :: 查看更详细的信息 nvidia-smi --query-gpu=index,name,temperature.gpu,utilization.gpu,memory.used --format=csv
脚本示例 (PowerShell/Batch):
$temp = nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader Write-Host "当前GPU温度: $temp °C"
Linux (使用 nvidia-smi 或 sensors)
- NVIDIA显卡:
nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader
- AMD显卡:
# 使用amdgpu驱动 cat /sys/class/drm/card0/device/hwmon/hwmon*/temp1_input # 或使用rocm-smi rocm-smi --showtemp
- 通用工具 (sensors):
sensors | grep -i "gpu\|amdgpu\|nvme"
macOS (使用 istats 或 powermetrics)
# 如果安装了istats (需要先安装: brew install istats) istats cpu temp --value-only # 使用 powermetrics (需要root权限) sudo powermetrics --samplers smc -n 1 -i 1000 | grep -i "GPU die temperature"
使用编程语言库
这种方式更灵活,可以直接在脚本中处理数据。
Python (推荐)
Python有多个库可以直接读取GPU信息。
安装依赖:
pip install pynvml # 针对NVIDIA pip install pyamdgpuinfo # 针对AMD (Linux)
脚本示例 (Python):
import pynvml
# 初始化
pynvml.nvmlInit()
handle = pynvml.nvmlDeviceGetHandleByIndex(0) # 第一个GPU
# 获取温度
temp = pynvml.nvmlDeviceGetTemperature(handle, pynvml.NVML_TEMPERATURE_GPU)
print(f"GPU温度: {temp}°C")
# 获取更多信息
name = pynvml.nvmlDeviceGetName(handle).decode('utf-8')
util = pynvml.nvmlDeviceGetUtilizationRates(handle)
print(f"GPU: {name}, 利用率: {util.gpu}%, 显存: {util.memory}%")
pynvml.nvmlShutdown()
Node.js
npm install systeminformation
脚本示例 (Node.js):
const si = require('systeminformation');
si.graphics().then(data => {
data.controllers.forEach(gpu => {
console.log(`GPU: ${gpu.model}, 温度: ${gpu.temperatureGpu}°C`);
});
});
监控脚本示例(带报警功能)
Python 脚本 - 持续监控并在温度过高时报警:
#!/usr/bin/env python3
import pynvml
import time
import os
import sys
# 配置
THRESHOLD = 80 # 报警阈值 (°C)
CHECK_INTERVAL = 5 # 检查间隔(秒)
ALERT_COMMAND = "os.system('say 温度过高')" # macOS语音提醒,其他系统可替换
def get_gpu_temp():
pynvml.nvmlInit()
handle = pynvml.nvmlDeviceGetHandleByIndex(0)
temp = pynvml.nvmlDeviceGetTemperature(handle, pynvml.NVML_TEMPERATURE_GPU)
pynvml.nvmlShutdown()
return temp
def log_temp(temp):
timestamp = time.strftime("%Y-%m-%d %H:%M:%S")
print(f"[{timestamp}] GPU温度: {temp}°C")
with open("gpu_temp.log", "a") as f:
f.write(f"[{timestamp}] {temp}°C\n")
# 主循环
try:
while True:
temp = get_gpu_temp()
log_temp(temp)
if temp > THRESHOLD:
print(f"⚠️ 警告: GPU温度 {temp}°C 超过阈值 {THRESHOLD}°C!")
# 执行报警动作(如发送邮件、触发蜂鸣器等)
# os.system(ALERT_COMMAND)
time.sleep(CHECK_INTERVAL)
except KeyboardInterrupt:
print("\n监控已停止")
sys.exit(0)
跨平台方案
如果需要在多处运行,可以考虑:
- Python +
psutil+GPUtil:import GPUtil gpus = GPUtil.getGPUs() for gpu in gpus: print(f"{gpu.name}: {gpu.temperature}°C")安装:
pip install gputil
注意事项
- 权限问题: 某些系统或命令(如macOS的
powermetrics)需要root权限。 - 驱动要求: NVIDIA需要安装官方驱动;AMD在Linux上可能需要
amdgpu驱动。 - 多GPU: 如果有多个GPU,需要遍历索引(0,1,2...)或通过UUID区分。
- 集成显卡: 集成在CPU中的显卡通常没有独立的温度传感器,可能需要通过CPU温度间接监控。
脚本监控GPU温度非常可行且简单,最推荐的方法是Python + pynvml(或GPUtil),或者直接在bash中调用nvidia-smi,你可以将监控脚本集成到自动化任务、报警系统或性能调优工具中。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播