nVidia-smi
时间: 2025-05-21 20:43:19 AIGC 浏览: 58
### nvidia-smi 使用指南与常见问题
#### 什么是 `nvidia-smi`?
`nvidia-smi` 是 NVIDIA 提供的一个用于管理和监控 GPU 设备的命令行工具。它可以提供关于 GPU 利用率、温度、功耗以及内存使用情况的信息[^1]。
---
#### 如何查看当前系统的 GPU 状态?
通过运行以下命令可以获取详细的 GPU 状态信息:
```bash
nvidia-smi
```
该命令会显示如下内容:
- **GPU 名称和型号**
- **驱动程序版本**
- **CUDA 版本**
- **显存占用情况**
- **当前运行的任务及其进程 ID**
如果需要更简洁的输出,可以通过参数控制,例如仅显示显存使用情况:
```bash
nvidia-smi --query-gpu=memory.total,memory.used --format=csv
```
---
#### 常见问题及解决办法
##### 1. `nvidia-smi` 报错:“Failed to initialize NVML”
当出现此类错误时,通常是因为 NVIDIA 驱动未正确安装或版本过低。确保已安装最新版驱动并与操作系统兼容[^1]。
推荐检查驱动版本的方法:
```bash
modinfo nvidia | grep version
```
若确认驱动正常但仍报错,则尝试重新启动系统以加载模块。
##### 2. 显卡利用率始终为零 (`%gpu-util`)
某些情况下,即使有任务在运行,`nvidia-smi` 可能不会报告实际的 GPU 占用率。这是由于默认采样间隔较短所致。可通过增加采样时间来观察变化:
```bash
watch -n 0.5 nvidia-smi
```
##### 3. Docker 中无法识别 GPU
为了在容器内访问主机上的 GPU 资源,需指定相应的运行时选项。以下是标准配置方式:
```bash
sudo docker run --gpus all --rm nvcr.io/nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
```
此操作允许容器内部调用宿主机的 `nvidia-smi` 工具并返回实时数据[^2]。
##### 4. Prometheus 数据采集支持
对于希望集成到监控系统的用户来说,“NVIDIA GPU Exporter”是一个理想的选择。它能够基于 `nvidia-smi` 输出生成标准化指标,并将其传递给 Prometheus 实现可视化管理[^3]。
---
#### 安装 CUDA 和驱动后的验证步骤
完成 NVIDIA 驱动与 CUDA Toolkit 的部署之后,务必检验其功能是否完好无损。具体做法包括但不限于测试编译器版本号:
```bash
nvcc --version
```
同时也可以借助简单的 C++ 测试脚本来进一步确认硬件加速能力是否可用[^4]:
```cpp
#include <cuda_runtime.h>
int main() {
int deviceCount;
cudaGetDeviceCount(&deviceCount);
printf("Number of devices: %d\n", deviceCount);
return 0;
}
```
---
阅读全文
相关推荐

















