在Python终端下绘制实时的显卡利用率折线图,可以使用 matplotlib
库来绘制图表,并使用 pynvml
库来获取显卡的利用率信息。以下是一个简单的实现步骤:
首先,确保你已经安装了 matplotlib
和 pynvml
库。如果没有安装,可以使用以下命令进行安装:
pip install matplotlib pynvml
以下是一个示例代码,用于在终端中实时绘制显卡利用率的折线图:
import matplotlib.pyplot as plt
import pynvml
import time
# 初始化NVML
pynvml.nvmlInit()
# 获取GPU数量
device_count = pynvml.nvmlDeviceGetCount()
# 初始化图表
plt.ion() # 开启交互模式
fig, ax = plt.subplots()
x_data = []
y_data = []
# 设置图表标题和标签
ax.set_title('GPU Utilization')
ax.set_xlabel('Time (s)')
ax.set_ylabel('Utilization (%)')
# 主循环
try:
while True:
# 获取当前时间
current_time = time.time()
# 获取GPU利用率
handle = pynvml.nvmlDeviceGetHandleByIndex(0) # 获取第一个GPU的句柄
utilization = pynvml.nvmlDeviceGetUtilizationRates(handle)
gpu_utilization = utilization.gpu
# 更新数据
x_data.append(current_time)
y_data.append(gpu_utilization)
# 绘制折线图
ax.clear()
ax.plot(x_data, y_data, label='GPU Utilization')
ax.legend()
ax.set_xlabel('Time (s)')
ax.set_ylabel('Utilization (%)')
ax.set_title('GPU Utilization Over Time')
# 显示图表
plt.pause(1) # 暂停1秒
except KeyboardInterrupt:
print("Exiting...")
# 关闭NVML
pynvml.nvmlShutdown()
将上述代码保存为一个Python文件(例如 gpu_utilization_plot.py
),然后在终端中运行:
python gpu_utilization_plot.py
pynvml.nvmlDeviceGetHandleByIndex(0)
中的索引来获取其他GPU的利用率。plt.pause(1)
控制图表的更新频率。你可以根据需要调整这个值。按下 Ctrl+C
可以退出程序。
通过这种方式,你可以在终端中实时监控并绘制显卡的利用率折线图。