目录
1 问题背景
环境:
- 远程服务器Ubuntu20.04
- CUDA 11.6
现象:在日志文件和终端均显示Python脚本已使用了GPU
但是nvidia-smi
中的
Processes
进程无显示
2 问题探索
首先,可以看到
|0 Tesla V100-PCIE... On | 00000000:0F:00.0 Off |0|| N/A 34C P0 37W / 250W | 1603MiB / 16384MiB |0% Default |
GPU显存被占用,换言之有实例在正常使用GPU,表明不是硬件、显卡驱动等问题。
检查Pytorch是否正确配置
>>>import torch
>>> print(torch.cuda.is_available())
True
证明也不是Pytorch的问题
接着安装一个工具查看正在使用显卡的进程
aptinstall -y psmisc
fuser -v /dev/nvidia*
终端输出
USER PID ACCESS COMMAND
/dev/nvidia-uvm: root kernel mount /dev/nvidia-uvm
root 12860 F...m python
/dev/nvidia-uvm-tools:
root kernel mount /dev/nvidia-uvm-tools
/dev/nvidia7: root kernel mount /dev/nvidia7
root 12860 F...m python
/dev/nvidiactl: root kernel mount /dev/nvidiactl
root 12860 F...m python
由于我这里诊断的进程是一个使用GPU的python脚本,所以记下脚本的
PID: 12860
查看系统进程
ps -aux
输出
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
...
root 128605764.23278120817343484 pts/0 Sl+ 14:11 269:00 python test.py
root 135100.00.0139009076 ? Ss 14:36 0:00 sshd: root@notty
root 135490.00.070243768 ? Ss 14:37 0:00 bash
root 150030.00.090924092 pts/3 Ss 14:50 0:00 /usr/bin/bash --init-file /root/.vscode-server/bin/da76f93349a72022ca4670c1b84860304616aaa2/out/vs/workbench/contrib/terminal/b
root 153520.00.05476592 ? S 14:55 0:00 sleep180
root 156980.00.0108563316 pts/3 R+ 14:58 0:00 ps -aux
PID: 12860
对应的python脚本,正好是我怀疑没用上GPU的脚本,证明该python实例实际上成功跑在了GPU上
3 问题解决
nvidia-smi不显示正在使用GPU的进程很可能不是一个问题,而是GPU的使用率太低(多发生在远程高性能服务器运行小型实验的情形),如遇到相关问题,可按上面步骤自检
4 告别Bug
本文收录于《告别Bug》专栏,该专栏记录人工智能领域中各类Bug以备复查,文章形式为:问题背景 + 问题探索 + 问题解决,订阅专栏+关注博主后可通过下方名片联系我进入AI技术交流群帮忙解决问题
👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇
版权归原作者 Mr.Winter` 所有, 如有侵权,请联系我们删除。