1. 介绍
在 Ubuntu 上使用 GPU 时,必须准确监控其状态。这在深度学习或图形渲染等工作负载中尤为重要,因为了解 GPU 使用情况和驱动版本是必需的。本文将介绍如何使用 nvidia-smi(NVIDIA GPU 管理工具),并提供在 Ubuntu 上检查 GPU 信息的方法。
2. 使用 nvidia-smi 检查 GPU 信息
nvidia-smi 是一个命令行工具,可让您监控 NVIDIA GPU 的利用率、显存使用情况以及其他详细信息。当需要实时查看 GPU 活动或获取详细的利用率指标时,它特别有用。
基本用法
您可以使用以下命令实时监控 GPU 使用率和显存利用率:
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1
该命令会检索包括 GPU 利用率、显存使用情况以及可用显存等详细信息。-l 选项用于设置刷新间隔(秒)。
显示格式和文件输出
默认情况下,结果以表格形式显示,但您可以将其输出为 CSV 以便更容易处理。如果想将信息保存到文件中,请使用 -f 选项指定目标文件。
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /path/to/output.csv
这样即可保存 GPU 利用率日志,供以后分析使用。
3. 使用 nvidia-smi 获取进程信息
nvidia-smi 还可以获取当前使用 GPU 的进程信息,帮助您了解每个进程消耗了多少 GPU 资源。
获取进程信息
使用以下命令查看使用 GPU 的进程的 PID 和显存使用情况:
nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv,noheader
该命令会返回活跃的 GPU 进程列表,并显示每个进程的显存占用情况。
nvidia-smi pmon 子命令
nvidia-smi 工具还提供 pmon 子命令,可进行更细致的 GPU 进程监控。
nvidia-smi pmon --delay 10 -s u -o DT
该命令会在指定间隔显示 GPU 进程信息。--delay 选项定义刷新间隔(秒),您可以选择要显示的具体信息。
4. 安装与验证 NVIDIA 驱动
在 Ubuntu 上使用 NVIDIA GPU,必须安装正确的 NVIDIA 驱动。以下是安装与验证的步骤。
驱动安装
首先,使用以下命令为您的系统安装合适的 NVIDIA 驱动:
sudo apt install nvidia-driver-510
安装完成后,重启系统。
验证安装
重启后,运行以下命令确认驱动已正确安装:
nvidia-smi
如果显示了驱动版本和 CUDA 版本,则说明安装成功。

5. 使用 TensorFlow 验证 GPU 工作情况
您还可以通过 TensorFlow(机器学习框架)测试来验证 GPU 功能。
安装 Anaconda
首先,安装 Anaconda 并创建您的环境:
bash ./Anaconda3-2022.05-Linux-x86_64.sh
conda update -n base conda
conda update anaconda
conda update -y --all
conda install tensorflow-gpu==2.4.1
检查 TensorFlow 对 GPU 的识别情况
接下来,验证 TensorFlow 是否识别到 GPU:
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
如果列表中出现 GPU 设备,则说明 TensorFlow 已成功检测到 GPU。
6. GPU 监控与日志记录
nvidia-smi 支持实时 GPU 监控和日志记录,这有助于随时间跟踪 GPU 使用情况并优化性能。
定期监控
要设置定期监控,使用 -l 选项指定更新间隔,并可选择将数据记录到文件中:
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /var/log/gpu.log
通过 Python 绑定进行可编程控制
nvidia-smi 提供了 Python 绑定(nvidia-ml-py),允许您以编程方式获取 GPU 信息。这使得可以在 Python 脚本中实现更定制的监控和控制。
7. 结论
nvidia-smi 是在 Ubuntu 上检查和管理 NVIDIA GPU 使用的强大工具。本文阐述了基本用法、进程监控、驱动安装以及 TensorFlow GPU 验证。使用这些技术可最大化 GPU 性能并优化您的系统。


