GPU性能实时监控的几种软件

在深度学习服务器上,各种模型的训练,需要监控GPU的情况,并且需要根据使用状态来切换不同的GPU上。

有以下四款软件,可以很好的进行GPU状态监控。

1. nvidia-smi

一个跨平台工具,用于监控和管理NVIDIA GPU的状态和性能。它支持所有标准的NVIDIA驱动程序支持的Linux发行版以及从WindowsServer 2008 R2开始的64位系统。这个工具通常与CUDA工具包一起安装,是NVIDIA显卡驱动的一部分。

常用命令:watch -n 2 nvidia-smi

2. gpustat

一个基于nvidia-smi的命令行工具,用于监控和分析GPU(GPU)的状态和使用情况。简约显示。

安装:

# 系统包安装
sudo apt install gpustat
# 作为python库安装
pip install gpustat

运行:

watch -n 1 -c gpustat --color
# 或者
gpustat -i

3. nvtop

一个专为NVIDIA GPU设计的任务监视器,类似于htop,但提供了更直观的用户界面和更多的进程信息。

sudo apt install nvtop
# 安装完毕后直接运行
nvtop

4. nvitop(重点推荐)

一款交互式的 NVIDIA GPU 设备性能、资源和进程的实时监测工具。"nvitop" 在实时监控 GPU 设备资源和性能方面具有全方位优势,包括更美观的颜色和更直观的进度条来展示某块 GPU 卡所处进程的 GPU & CPU 内存以及利用率占比 。此外,它还支持树视图、环境变量查看、进程过滤、进程指标监控等多种功能和选项 。因此,可以推断 "nvitop" 是一个高颜值的实时监控工具,专为监控 NVIDIA GPU 设备性能和资源而设计。

官网参考:Welcome to nvitop’s documentation! — nvitop: the one-stop solution for GPU process management. documentation

安装:

pip install nvitop

运行:三种模式 auto,compact,full

nvitop -m full

### 实时监控 GPU 使用率的工具和方法 在 Linux 系统中,有多种方法和工具可以实时监控 GPU 的使用情况。以下是几种常见的工具及其特点: #### 1. **nvidia-smi** `nvidia-smi` 是 NVIDIA 提供的官方命令行工具,用于监控和管理 NVIDIA GPU。它可以显示 GPU 的利用率、显存占用、温度等信息[^2]。 运行以下命令可以启动滚动显示模式,实时监控 GPU 的状态: ```bash nvidia-smi dmon ``` 此方法适用于 Tesla、GRID、Quadro 和部分 GeForce 产品,支持 Kepler 或更新架构的 GPU,在 x64 和 ppc64 裸机 Linux 下工作。需要注意的是,在启用 MIG(多实例 GPU)的情况下,某些指标可能无法查询[^2]。 #### 2. **nvtop** `nvtop` 是一个类似于 `htop` 的图形化工具,能够以动态界面的形式展示 GPU性能指标,包括温度、显存使用率、GPU 使用率等[^2]。 安装命令如下: ```bash sudo apt install nvtop ``` 运行命令: ```bash nvtop ``` `nvtop` 提供了更直观的可视化效果,适合需要实时观察 GPU 性能变化的用户[^2]。 #### 3. **nvitop** `nvitop` 是另一个基于命令行的工具,功能类似于 `nvtop`,但提供了更多的数据支持,例如进程级别的 GPU 使用情况[^2]。 安装命令: ```bash pip install nvitop ``` 运行命令: ```bash nvitop ``` `nvitop` 对于调试和分析 GPU 上运行的特定进程非常有用,尤其适合开发人员和研究人员[^2]。 #### 4. **gmonitor** `gmonitor` 是一款专为 NVIDIA GPU 设计的实时监控工具,特别适合 CUDA 编程开发者和 GPU 性能调试人员使用[^1]。它具有简洁实用的功能和灵活的配置选项,能够在 GNU/Linux 系统上提供全面的 GPU 监控能力。如果需要一款功能强大且易于使用的工具,`gmonitor` 是一个不错的选择。 #### 5. **pyNVML** `pyNVML` 是一个基于 Python 的库,可以用来监控 NVIDIA GPU 的显存和使用情况[^3]。通过编写简单的 Python 脚本,可以获取 GPU 的详细信息,例如显存总量、已用显存、空闲显存、GPU 利用率、温度等。以下是一个示例脚本: ```python import py3nvml.py3nvml as nvml nvml.nvmlInit() handle = nvml.nvmlDeviceGetHandleByIndex(0) info = nvml.nvmlDeviceGetMemoryInfo(handle) print(f"GPU {0}: {nvml.nvmlDeviceGetName(handle).decode('utf-8')}") print(f"Memory Total: {info.total / (1024**3):.2f} GB") print(f"Memory Free: {info.free / (1024**3):.2f} GB") print(f"Memory Used: {info.used / (1024**3):.2f} GB") print(f"GPU Utilization: {nvml.nvmlDeviceGetUtilizationRates(handle).gpu}%") print(f"Memory Utilization: {nvml.nvmlDeviceGetUtilizationRates(handle).memory}%") print(f"Temperature: {nvml.nvmlDeviceGetTemperature(handle, nvml.NVML_TEMPERATURE_GPU)}°C") nvml.nvmlShutdown() ``` #### 6. **远程监控工具** 对于需要远程监控 GPU 状态的场景,可以使用一些小工具或脚本实现自动化监控[^4]。例如,通过 SSH 连接到目标主机并运行上述工具,或者将监控数据发送到本地机器进行查看。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值