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

发布时间:2024年01月19日

和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的主事件循环,等待用户交互。

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

文章来源:https://blog.csdn.net/weixin_45498383/article/details/135697500
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。