GPU显存被占用无法清理问题解决
创作时间:
作者:
@小白创作中心
GPU显存被占用无法清理问题解决
引用
1
来源
1.
http://82.157.247.243/archives/2269
在使用GPU进行深度学习或数据科学任务时,经常会遇到显存被占用但无法清理的问题。本文将通过一个具体案例,详细介绍如何检查GPU使用情况,并使用Linux命令行工具释放被占用的显存。
问题描述
在运行了多个Jupyter Lab Notebook后,发现系统提示"out of memory"。通过nvidia-smi检查GPU使用情况时,虽然显存显示被占用,但占用列表却为空,无法直接看到具体的占用情况。
原因分析
经过排查,发现是由于一个未及时关闭的web_demo_streamlit进程导致的显存占用。
解决方案
1. 使用nvidia-smi检查GPU使用情况
首先使用nvidia-smi命令检查GPU的使用情况。如果发现程序已经关闭了但是还有显存占用,说明有残留进程占用了显存,需要按以下方式释放:
从截图中能看出有程序占用了4388MiB的显存,此时要释放显存,需要先找到进程ID。
2. 使用ps -ef命令终止占用GPU的进程(生产环境不建议操作)
使用ps -ef命令查看全部进程,并通过grep命令识别出可能用到了GPU的进程。接着使用kill -9命令终止这些进程。
ps -ef
ps -ef|grep 关键字
kill -9 进程号
从截图中可以看到python train.py程序的进程ID是594和797,可以使用以下命令来结束进程:
kill -9 594 797
在多卡并行场景下,可以使用以下更强大的方式结束进程:
ps -ef | grep train | awk '{print $2}' | xargs kill -9
更多说明
Linux命令中的|符号称之为管道,作用是把前一个命令的输出作为下一个命令的输入。管道的功能非常实用,在很多场景下都可以使用到,比如某个文件夹下有几万个文件,但是有一个文件是txt文件,其他均为图片,需要将此文件找出来。如果使用ls获取文件列表后人工排查非常麻烦,因此可以使用:
ls | grep .txt
参考资料
- AutoDL 文档 - 显存没有释放
- AutoDL 文档 - 性能篇
先使用nvidia-smi -l 1命令查看GPU使用率,如果GPU使用率为0优先检查代码是否调用了GPU进行计算。如果GPU使用率已经为90%+,则可以考虑换多卡并行或更高算力的GPU。
热门推荐
如何利用元宇宙新技术提升用户体验?
越南有54个民族,为何把华人拆成3个民族:华族、山由族、艾族?
房产评估流程的标准是什么样的?
如何核查评估公司的资质?
如何利用佛珠手串进行冥想?
《论语》及其六种优秀整理版本推荐
陶行知先生奖励学生四颗糖的故事
鸡蛋是寒性的还是温性的?
服务器计算带宽和并发,如何优化以提升性能?
优化服务器并发数的计算与提升策略探讨:提升用户体验的关键因素
探索浙江:更佳旅游季节与必游景点推荐
江苏海事职业技术学院举办AI素养提升培训,赋能航海职业教育数字化转型
万宁鹧鸪茶:海南特产的养生佳茗
城记:世界上唯一以加泰罗尼亚语为母语的国家,夹在西班牙和法国之间
宋英宗与宋神宗的父子关系
平衡L1损失(Balanced L1 Loss)详解
那些最美的现代诗句
历史上三位神人,其中一位皇帝换了8个还活着,人均活过200岁!
丑橘的功效与食用指南:营养价值、功效作用及注意事项全解析
巴旦木:适量享用的健康秘诀
汉朝私藏甲胄的罪名及其法律分析
巴旦木干果多少钱一斤?教你挑选优质巴旦木
TA:皇马青睐阿诺德因其长传调度能力,且能与贝林形成默契
表皮葡萄球菌
深度解读:CSP-J/S参赛年龄限制政策六大影响及三年预测
选择合适床材质,提升睡眠品质
井巷工程课件-岩石的性质及其工程分级
CRRT学社:滤过分数那些事
萨特名言解读:对我们今天的意义
英国国王何时彻底失去权力?从光荣革命到一战的权力演变史