理解nvidia-smi的日志含义
从一个例子开始
nvidia-smi
得到返回
Wed Dec 24 11:30:38 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.144.03 Driver Version: 550.144.03 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| 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 4090 Off | 00000000:1B:00.0 Off | Off |
| 30% 45C P2 69W / 450W | 22273MiB / 24564MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 1 NVIDIA GeForce RTX 4090 Off | 00000000:1C:00.0 Off | Off |
| 30% 44C P2 93W / 450W | 20622MiB / 24564MiB | 100% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 2 NVIDIA GeForce RTX 4090 Off | 00000000:1D:00.0 Off | Off |
| 30% 48C P0 106W / 450W | 20584MiB / 24564MiB | 100% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 3 NVIDIA GeForce RTX 4090 Off | 00000000:1E:00.0 Off | Off |
|ERR! 46C P2 124W / 450W | 21833MiB / 24564MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 4 NVIDIA GeForce RTX 4090 Off | 00000000:3D:00.0 Off | Off |
| 30% 46C P2 118W / 450W | 4171MiB / 24564MiB | 99% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 5 NVIDIA GeForce RTX 4090 Off | 00000000:3F:00.0 Off | Off |
| 30% 39C P8 21W / 450W | 6934MiB / 24564MiB | 12% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 6 NVIDIA GeForce RTX 4090 Off | 00000000:40:00.0 Off | Off |
| 30% 44C P2 85W / 450W | 2020MiB / 24564MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 7 NVIDIA GeForce RTX 4090 Off | 00000000:41:00.0 Off | Off |
| 30% 37C P8 36W / 450W | 16478MiB / 24564MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 118038 G ...aries/Linux/CarlaUE4-Linux-Shipping 6MiB |
| 0 N/A N/A 3088439 C python 14MiB |
| 0 N/A N/A 3101801 C python 14MiB |
| 1 N/A N/A 3505257 C ...yi/anaconda3/envs/planr1/bin/python 20614MiB |
| 2 N/A N/A 3505258 C ...yi/anaconda3/envs/planr1/bin/python 20576MiB |
| 4 N/A N/A 3462430 C ray::wrapped_fn 764MiB |
| 4 N/A N/A 3462431 C ray::wrapped_fn 712MiB |
| 4 N/A N/A 3462432 C ray::wrapped_fn 660MiB |
| 4 N/A N/A 3462433 C ray::wrapped_fn 658MiB |
| 4 N/A N/A 3462434 C ray::wrapped_fn 656MiB |
| 4 N/A N/A 3462435 C ray::wrapped_fn 670MiB |
| 5 N/A N/A 118038 C+G ...aries/Linux/CarlaUE4-Linux-Shipping 6862MiB |
| 6 N/A N/A 117893 C python 2012MiB |
| 7 N/A N/A 16286 C python 16470MiB |
+-----------------------------------------------------------------------------------------+
nvidia-smi 到底在展示什么
一张标准的 nvidia-smi 输出可以分为三块:
- GPU 概览表(每张卡一行)
- Processes 表(每个 GPU 的进程)
- 驱动 / CUDA / GPU 状态信息
推荐的阅读顺序
Processes → GPU-Util → Memory-Usage → Type
因为Processes 表告诉你谁在用 GPU,跑了什么样的程序,占用的显存是多少
如何理解关键的Processes
以 GPU 0 为例
GPU 0:
PID 118038 Type G CarlaUE4-Linux-Shipping 6MiB
PID 3088439 Type C python 14MiB
PID 3101801 Type C python 14MiB
PID:进程号
Type:
C = CUDA 计算进程
G = Graphics / OpenGL / GUI 进程
GPU Memory Usage:该进程能被 CUDA 追踪到的显存
【注意】
Processes 表 只显示 CUDA 可追踪的显存使用,并不代表 GPU 上的全部显存占用。
GPU-Util = 0%,但显存几乎占满?
GPU-Util 表示在最近一个采样窗口内,CUDA 核心是否在执行计算指令。
GPU-Util 不表示显存是否被占用,是否有 OpenGL context,GPU 是否“被锁死”
GPU-Util = 0% 并不等于 GPU 是“空的”。
显存占用的三大常见原因
1 OpenGL / GUI / EGL 上下文
当使用以下功能时:
GUI 渲染
OpenGL / EGL
游戏引擎(Carla、Unreal、Isaac、SAPIEN)
GPU 会分配大量资源用于:
Framebuffer
Texture
Depth buffer
Shader cache
这些显存:
不走 CUDA runtime
不会显示在 Processes 表
但会计入 Memory-Usage
2 驱动级 Context 未释放
在以下情况下:
GUI 渲染卡死
强制 kill 进程
watchdog soft lockup
OpenGL / CUDA context 可能未被干净释放,导致:
显存被 driver 标记为“仍占用”
但已经没有任何活跃进程
这类显存通常只能通过:
进程自然退出
GPU reset
驱动重载
才能释放。
3 引擎级显存预留(如 Carla / Unreal)
某些引擎会:
提前预留大块显存
用于后续 streaming / rendering
实际计算发生前 GPU-Util 仍为 0

浙公网安备 33010602011771号