帮助文档 > 显存没有释放

显存没有释放

首先使用命令检查GPU的使用情况,如果发现程序已经关闭了但是还有显存占用,说明有残留进程占用了显存,那么按以下方式释放
nvidia-smi
#输出
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.47.03    Driver Version: 510.47.03    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  NVIDIA A100-PCIE...  On  | 00000000:3B:00.0 Off |                    0 |
| N/A   30C    P0    50W / 250W |   1000MiB / 40536MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
能看出有程序占用了显存,此时要释放显存,那么首先找到进程ID
#使用ps -ef命令
ps -ef
#杀死占用显存的进程
kill -9 


#如果需要终止所有使用 GPU 的进程:


sudo kill -9 $(nvidia-smi | awk '$2=="Processes:" {flag=1} flag && $2 == "GPU" {print $5}')
使用 nvidia-smi 重置 GPU
sudo nvidia-smi --gpu-reset
#注意:此操作会重置 GPU 状态,可能导致正在运行的任务中断。
清理深度学习框架的显存

如果使用 TensorFlow 或 PyTorch 等深度学习框架,可以通过代码释放显存:

from tensorflow import keras
keras.backend.clear_session()
import torch
torch.cuda.empty_cache()
重启系统

如果以上方法无效,可以尝试重启系统:

sudo reboot