【Linux】监控NVIDIA GPU显卡占用状态的命令

旅途中的宽~ 2024-07-03 10:07:05 阅读 86

文章目录

一、nvidia-smi顶部信息GPU详细信息GPU行Bus-Id行Volatile Uncorr. ECC行Fan行Memory-Usage行GPU-Util行MIG M.行

Processes部分总结

二、watch nvidia-smi基本用法参数解释常用选项改变刷新间隔高亮变化的值组合使用选项

输出解释使用场景示例

三、更美观的:nvitop安装基本用法功能和选项实时监控

在Linux系统中,监控NVIDIA GPU显卡的占用状态对于数据科学家、AI研究人员以及需要进行图形密集型计算的用户来说是非常重要的。了解GPU的实时状态不仅可以帮助优化资源使用,还能提高计算任务的效率和性能。本文将介绍几个用于监控NVIDIA GPU显卡占用状态的命令,帮助用户更好地掌握GPU的使用情况。

NVIDIA提供了一些强大而易用的工具,可以让用户在命令行界面中轻松查看GPU的状态和性能指标。以下是一些常用的监控命令:

一、nvidia-smi

nvidia-smi 是NVIDIA提供的一个命令行工具,用于监控和管理安装在系统中的NVIDIA GPU。它可以显示GPU的实时状态和性能数据,包括GPU利用率、显存使用情况、温度、电源状态等详细信息。nvidia-smi是每个使用NVIDIA GPU的开发者和系统管理员的必备工具。下面是对nvidia-smi的详细介绍。

首先,确保系统中已经安装了NVIDIA驱动程序和CUDA工具包。nvidia-smi通常随驱动程序一起安装。如果你已经安装了NVIDIA驱动程序,可以通过以下命令检查nvidia-smi是否可用:

<code>nvidia-smi

执行该命令后,你将看到类似于以下的输出:

root@06697c6452a8:~/workspace/wangzk# nvidia-smi

Mon May 20 18:21:21 2024

+---------------------------------------------------------------------------------------+

| NVIDIA-SMI 545.29.06 Driver Version: 545.29.06 CUDA Version: 12.3 |

|-----------------------------------------+----------------------+----------------------+

| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |

| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |

| | | MIG M. |

|=========================================+======================+======================|

| 0 NVIDIA GeForce RTX 2080 Ti Off | 00000000:02:00.0 Off | N/A |

| 33% 26C P8 13W / 250W | 2242MiB / 11264MiB | 0% Default |

| | | N/A |

+-----------------------------------------+----------------------+----------------------+

| 1 NVIDIA GeForce RTX 2080 Ti Off | 00000000:03:00.0 Off | N/A |

| 35% 26C P8 4W / 250W | 10MiB / 11264MiB | 0% Default |

| | | N/A |

+-----------------------------------------+----------------------+----------------------+

| 2 NVIDIA GeForce RTX 2080 Ti Off | 00000000:82:00.0 Off | N/A |

| 35% 26C P8 8W / 250W | 10MiB / 11264MiB | 0% Default |

| | | N/A |

+-----------------------------------------+----------------------+----------------------+

| 3 NVIDIA GeForce RTX 2080 Ti Off | 00000000:83:00.0 Off | N/A |

| 35% 26C P8 10W / 250W | 10MiB / 11264MiB | 0% Default |

| | | N/A |

+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+

| Processes: |

| GPU GI CI PID Type Process name GPU Memory |

| ID ID Usage |

|=======================================================================================|

+---------------------------------------------------------------------------------------+

nvidia-smi的输出信息可以分为几个部分,每个部分提供了关于GPU的详细信息。下面是对每一列的详细解释。

顶部信息

NVIDIA-SMI 545.29.06 Driver Version: 545.29.06 CUDA Version: 12.3

NVIDIA-SMI: 显示nvidia-smi工具的版本号。Driver Version: 显示当前安装的NVIDIA驱动程序版本号。CUDA Version: 显示当前支持的CUDA版本号。

GPU详细信息

每个GPU的信息列被划分为几个部分。以第一个GPU为例:

| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |

| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |

| | | MIG M. |

|=========================================+======================+======================|

| 0 NVIDIA GeForce RTX 2080 Ti Off | 00000000:02:00.0 Off | N/A |

| 33% 26C P8 13W / 250W | 2242MiB / 11264MiB | 0% Default |

| | | N/A |

GPU行

GPU: GPU编号,从0开始。Name: GPU的名称。Persistence-M: 持久模式状态,On表示开启,Off表示关闭。

Bus-Id行

Bus-Id: GPU所在的PCI总线ID。Disp.A: GPU是否用于显示,On表示用于显示,Off表示不用于显示。

Volatile Uncorr. ECC行

Volatile Uncorr. ECC: 挥发性不可纠正错误率。如果GPU支持ECC(错误纠正码),这里会显示具体数据。

Fan行

Fan: 风扇速度,以百分比表示。Temp: GPU温度,以摄氏度表示。Perf: 性能状态,P0P12表示不同的性能级别,P0是最高性能,P12是最低性能。Pwr:Usage/Cap: 当前功耗和最大功耗,以瓦特(W)为单位。

Memory-Usage行

Memory-Usage: 显存使用情况,显示为“已用显存 / 总显存”,单位为MiB。

GPU-Util行

GPU-Util: GPU利用率,以百分比表示。Compute M.: 计算模式,Default表示默认模式。

MIG M.行

MIG M.: 多实例GPU模式状态。如果GPU支持MIG,这里会显示相关信息。

Processes部分

| Processes: |

| GPU GI CI PID Type Process name GPU Memory |

| ID ID Usage |

|=======================================================================================|

+---------------------------------------------------------------------------------------+

GPU: 进程所在的GPU编号。GI ID: GPU实例ID(仅适用于支持MIG的GPU)。CI ID: 计算实例ID(仅适用于支持MIG的GPU)。PID: 进程ID。Type: 进程类型,如图形(Graphics)或计算(Compute)。Process name: 进程名称。GPU Memory Usage: 进程使用的GPU显存量。

总结

通过nvidia-smi的输出信息,可以全面了解系统中所有NVIDIA GPU的实时状态,包括硬件信息、使用情况、温度、功耗等。这对于监控GPU性能、优化资源使用、排查性能瓶颈等非常有用。

二、watch nvidia-smi

结合watch命令,可以定期刷新并显示GPU状态,便于实时监控。

watch 是一个常用的 Linux 命令,用于定期执行指定的命令并刷新输出。结合 nvidia-smi 命令使用,可以实时监控 NVIDIA GPU 的状态。以下是对 watch nvidia-smi 的详细介绍。

基本用法

在命令行中运行以下命令:

watch nvidia-smi

这将每隔两秒刷新一次 nvidia-smi 的输出,默认情况下,刷新间隔是两秒。

参数解释

watch: 用于定期运行指定命令的工具。nvidia-smi: NVIDIA 提供的用于显示 GPU 状态的命令行工具。

常用选项

改变刷新间隔

默认情况下,watch 每两秒刷新一次。可以使用 -n 选项来指定自定义的刷新间隔,例如每五秒刷新一次:

watch -n 5 nvidia-smi

高亮变化的值

使用 -d 选项可以高亮显示自上次刷新以来发生变化的值,这对于监控变化特别有用:

watch -d nvidia-smi

组合使用选项

可以组合使用 -n-d 选项,例如每五秒刷新一次并高亮显示变化的值:

watch -n 5 -d nvidia-smi

输出解释

watch nvidia-smi 的输出与单独运行 nvidia-smi 的输出相同,只是它会定期刷新。下面是一个示例输出:

在这里插入图片描述

使用场景

<code>watch nvidia-smi 特别适用于以下场景:

实时监控 GPU 使用情况

可以持续监控 GPU 的利用率、显存使用、温度和功耗等参数,便于及时发现性能瓶颈和潜在问题。

调试和优化 GPU 应用

在运行深度学习训练或其他计算密集型任务时,可以实时观察 GPU 资源的使用情况,优化代码和配置以提高效率。

系统维护和故障排除

在进行系统维护或排除 GPU 相关故障时,可以实时获取 GPU 状态信息,快速定位问题。

示例

每秒刷新一次 GPU 状态并高亮变化

watch -n 1 -d nvidia-smi

每十秒刷新一次 GPU 状态

watch -n 10 nvidia-smi

通过使用 watch nvidia-smi,用户可以方便地实时监控和管理 NVIDIA GPU 的状态,有助于提高计算任务的效率和性能。

三、更美观的:nvitop

nvitop 是一个用于监控 NVIDIA GPU 使用情况的命令行工具,它提供了一个类似于 top 命令的实时视图,显示 GPU 的利用率、显存使用情况、温度、功耗等信息,以及在 GPU 上运行的进程。nvitop 旨在为用户提供一个简洁且易于使用的界面来监控多个 GPU 的状态。

安装

在安装 nvitop 之前,确保你的系统已经安装了 pip。你可以使用以下命令来安装 nvitop

pip install nvitop

在这里插入图片描述

基本用法

安装完成后,只需在命令行中运行以下命令即可启动 <code>nvitop:

nvitop

功能和选项

nvitop 提供了许多功能和选项,帮助用户更好地监控和管理 GPU 资源。

实时监控

nvitop 启动后,会显示所有检测到的 GPU 的实时状态。默认界面如下:

在这里插入图片描述



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。