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

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

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

nvidia-smi

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

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

import subprocess
import tkinter as tk
from tkinter import fontdef 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的主事件循环,等待用户交互。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/414860.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C Primer Plus 第6版 编程练习 chapter 16

文章目录 1. 第1题1.1 题目描述1.2 编程源码1.3 结果显示 2. 第2题2.1 题目描述2.2 编程源码2.3 结果显示 3. 第3题3.1 题目描述3.2 编程源码3.3 结果显示 4. 第4题4.1 题目描述4.2 编程源码4.3 结果显示 5. 第5题5.1 题目描述5.2 编程源码5.3 结果显示 6. 第6题6.1 题目描述6.…

2024年甘肃省职业院校技能大赛信息安全管理与评估 样题三 理论题

竞赛需要完成三个阶段的任务,分别完成三个模块,总分共计 1000分。三个模块内容和分值分别是: 1.第一阶段:模块一 网络平台搭建与设备安全防护(180 分钟,300 分)。 2.第二阶段:模块二…

新手也能看懂的【前端自动化测试入门】!

前言 最近在网上搜索前端自动化测试相关的文档,但是发现网上的文章都是偏使用,没有把一些基础概念说清楚,导致后续一口气遇到一些karma、Jasmine、jest、Mocha、Chai、BDD等词汇的时候很容易一头雾水,这次一方面整理一下收获的知…

深入探究 JavaScript 中的 String:常用方法和属性全解析(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

问题解决:No module named ‘apex‘,apex安装

最近Git了一个别人的程序,跑的过程中遇到了报错: No module named apex 关于Apex,官方介绍是:该资源库包含英伟达维护的实用程序,用于简化 Pytorch 中的混合精度和分布式训练。这里的部分代码最终将被纳入 Pytorch …

某ttEncrypt算法的简单分析

捣鼓背景 其实就是今晚无聊整个乐子打发一下时间了吧??? - - 害,真实的原因是发现身边的大佬不是已经分析完某x了,就是在分析的路上了。再不跟上大佬的步伐,估计以后车尾灯都看不到了,再想抱…

【卡梅德生物】第一弹:关于慢病毒的介绍

慢病毒(Lentivirus)属于逆转录病毒的一种。包括人免疫缺陷病毒(HIV),常见的有HIV-1和HIV-2两个亚型、猫免疫缺陷病毒(FIV)、猿免疫缺陷病毒(SIV)、牛免疫缺陷病毒&#x…

Html+Css+JavaScript实现完整的轮播图功能

概要 这个案例具备常见轮播图完整的功能,大家可以根据自己的需求去修改; 代码可以直接复制运行,需要安装sass 主要功能: (1)鼠标移入轮播图,左右两边的按钮出现,离开则隐藏按钮&a…

一万六千字大章:Chrome 浏览器插件 V3 版本 Manifest.json 文件全字段解析

Chrome 浏览器插件 V3 版本 Manifest.json 文件全字段解析 Manifest.json 文件格式 每个扩展程序的根目录中都必须有一个 manifest.json 文件,其中列出了有关该扩展程序的结构和行为的重要信息。 1、Demo 展示 1. 最小文件 {"manifest_version": 3,&quo…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷6

某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenStack搭建企业内部私有云平台,开源Kubernetes搭建云原生服务平台,选…

JAVA——数据类型与运算符

数据类型 注意事项:1.初始化操作是可选的, 但是建议创建变量的时候都显式初始化. 2.最后不要忘记分号, 否则会编译失败. 3.初始化设定的值为 10L , 表示一个长整型的数字. 10l 也可以. 4.float 类型在 Java 中占四个字节, 遵守 IEEE 754 标准. 由于表示的数据精度范…

ORM Bee设计思想与功能思维导图

ORM Bee设计思想与功能思维导图 Bee,互联网新时代的Java ORM框架,支持Sharding;JDBC,Android,HarmonyOS;支持多种关系型数据库,还支持NoSQL的Cassandra,Mongodb等;更快、…