Ubuntu下将nvidia-smi封装为GUI界面,实时查看显卡信息

本文介绍了一种使用Python编写的GUI程序,通过调用nvidia-smi命令实时监控NVIDIA显卡状态,将结果显示在图形界面上,实现无需终端且自动刷新的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

和win系统不同的是,在Ubuntu端,系统级的系统监视器中,只能查看内存、CPU和网络状态,并不能查看GPU状态

而使用NVIDIA显卡的朋友都知道一条指令

nvidia-smi

在终端运行后即可查看显卡信息、资源占用情况等

但是这样会占用终端,而且想要实时刷新还需要额外的指令,所以就想到利用python程序将其封装进GUI界面中实时刷新显示

import subprocess
import tkinter as tk
from tkinter import font

def update_smi():
    smi_output = subprocess.getoutput('nvidia-smi')
    text_box.delete(1.0, "end")
    text_box.insert("end", smi_output)
    root.after(300, update_smi)

root = tk.Tk()
root.title("NVIDIA 资源监控器")

# Set the window size (width x height)
root.geometry("750x420")

# Set the font for the textbox (font family, size, and other attributes)
custom_font = font.Font(family="aakar", size=12)

text_box = tk.Text(root, bg='black', fg='white', font=custom_font)
text_box.pack(expand=True, fill='both')

update_smi()
root.mainloop()

这个程序是一个使用Python编写的图形界面应用,其主要功能是定期监控和显示NVIDIA显卡的状态信息。程序的关键部分包括:

1. 导入必要的库:使用subprocess来运行外部命令,tkinter和tkinter.font用于创建图形界面。

2. 定义update_smi函数:这个函数通过运行nvidia-smi命令获取NVIDIA显卡的当前状态,然后更新显示在文本框中。subprocess.getoutput('nvidia-smi')获取命令输出,text_box.delete(1.0, "end")清除文本框中的旧内容,text_box.insert("end", smi_output)插入新的命令输出。root.after(300, update_smi)实现了每300毫秒自动刷新显示的功能。

3. 初始化Tkinter窗口:通过tk.Tk()创建了一个Tkinter窗口,设置了窗口标题和大小。

4. 设置文本框:创建了一个文本框用于显示信息,设置了背景颜色、前景色(文字颜色)和字体样式。

5. 开始监控和事件循环:调用update_smi()开始监控,并进入Tkinter的主事件循环,等待用户交互。

运行程序可以看到如下界面:

<think>好的,我现在需要帮助用户解决在Ubuntu系统中使用nvidia-smi查看NVIDIA显卡状态的问题。首先,我得回想一下用户提供的引用内容,看看有没有直接相关的信息。 用户提到的引用[1]和[2]都是关于更新NVIDIA驱动后无法使用nvidia-smi的问题。引用[3]提到Ubuntu系统监视器默认不显示GPU状态,所以需要nvidia-smi或者第三方GUI工具。这说明用户可能遇到了驱动问题或者不知道如何正确使用命令。 首先,我需要确认用户是否已经正确安装了NVIDIA驱动。根据引用[1],安装驱动需要用到dkms和特定版本的驱动,这可能意味着如果驱动安装不正确,nvidia-smi会无法通信。所以第一步应该检查驱动状态。 然后,用户的问题是如何使用nvidia-smi,所以需要给出基本的命令,比如直接运行nvidia-smi,并解释输出结果。同时,考虑到用户可能需要实时监控,可以介绍watch命令或者第三方工具如gpustat,这在引用[3]中有提到。 另外,常见错误处理也很重要。用户引用[2]中的错误提示说明驱动通信失败,这时候需要检查驱动是否加载,比如使用lsmod | grep nvidia,以及如何重新安装驱动。可能需要指导用户如何查找正确的驱动版本,并正确安装。 还有,用户可能不知道如何安装nvidia-smi,所以需要指出它属于nvidia-utils包,并提供安装命令。此外,第三方GUI工具也是一个补充方案,适合不喜欢命令行的用户。 最后,需要提醒用户确保驱动兼容性,避免版本冲突,这可能涉及到如何选择适合自己显卡的驱动版本,以及使用ubuntu-drivers工具自动安装推荐版本。 总结步骤应该是:安装驱动→验证驱动状态→使用nvidia-smi命令→实时监控方法→错误处理→第三方工具。需要按照逻辑顺序组织这些信息,确保用户能一步步排查问题并正确使用工具。</think>### 如何在 Ubuntu 中使用 `nvidia-smi` 监控 NVIDIA 显卡状态 #### 一、准备工作:驱动安装与验证 1. **确认 NVIDIA 驱动已正确安装** - 使用以下命令查看已安装的驱动版本: ```bash nvidia-smi ``` 若显示类似以下信息,说明驱动正常: ![nvidia-smi示例](https://example.com/nvidia-smi.png) 若报错 `NVIDIA-SMI has failed...`(如引用[2]),需重新安装驱动[^2]。 - 安装推荐驱动版本(以 510 版本为例): ```bash sudo apt install nvidia-driver-510 ``` 2. **使用 DKMS 修复驱动问题** 若更新系统后驱动失效(如引用[1]),需通过 DKMS 重新注册驱动: ```bash sudo dkms install -m nvidia -v 510.xxx.xx # 替换为实际版本号[^1] ``` #### 二、使用 `nvidia-smi` 查看显卡信息 1. **基础命令** 直接运行以下命令查看实时状态: ```bash nvidia-smi ``` 输出包含 GPU 利用率、显存占用、温度及进程信息。 2. **动态刷新监控(每 2 秒更新)** ```bash watch -n 2 nvidia-smi ``` #### 三、进阶用法 1. **筛选特定信息** - 仅显示 GPU 利用率与显存: ```bash nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv ``` 2. **生成日志文件** ```bash nvidia-smi -l 5 > gpu_log.txt # 每5秒记录一次 ``` #### 四、常见问题排查 1. **驱动未加载** 检查内核模块是否加载: ```bash lsmod | grep nvidia # 若无输出,执行 sudo modprobe nvidia ``` 2. **版本冲突** 使用 `ubuntu-drivers` 自动选择兼容版本: ```bash sudo ubuntu-drivers autoinstall ``` #### 五、GUI 替代方案 若需图形化界面(如引用[3]),可安装工具: 1. **gpustat**(终端可视化): ```bash pip install gpustat && gpustat -i ``` 2. **GreenWithEnvy**(GUI 监控工具): ```bash sudo apt install greenwithenvy ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sagima_sdu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值