小技巧--查看GPU被哪个进程占用,pip安装包等

2,802 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


会专门整理一些linux上跑深度学习,比如pytorch等的小技巧,方便查看。

今天介绍两个小技巧,第一个是查看GPU被哪个进程占用?

有时候会发现明明进程都关了,尤其是用jupyer notebook的时候,因为没办法自动清除显卡缓存,所以会一直占用着GPU显存。有时候关了发现cuda显存还是满了。这时候就可以看一下到底是哪个进程占用了。下面是两个方法:

方法一(最简单):

nvidia-smi

出来的结果,直接就有PID,然后再用ps -ef|grep [PID],就知道这个PID是哪个程序在跑了,可以用kill [PID]杀掉进程。

在这里插入图片描述

方法二(使用fuser命令):

fuser -v /dev/nvidia*

fuser 结果,数字即为PID。

fuser结果

找到占用的[pid](一般就是python, 图中即为13242和52360),然后:

ps -ef|grep [pid]

最后

kill -9 [pid]

如果没装fuser

apt-get install fuser

如果找不到,则配置Ubuntu源,然后更新

配置Ubuntu源可参考: www.jianshu.com/p/eb9bd6142…


python查看package安装路径

第二个问题是,想查看python安装的package到底装到了哪个位置。比如我们要查看torch_geometric这个包装在了哪里,可以用下面的程序来查看。如果要查看其他的package的话,只要替换一下名字就可以了。

方法一:

import inspect
import torch_geometric

print(inspect.getfile(torch_geometric))

# output: /usr/local/lib/python3.6/dist-packages/torch_geometric/__init__.py

方法二:

其实还有个简单的办法:

pip show tensorflow

查看pip安装包的版本:

第三个问题是有时候版本不兼容的问题,想要查看当前安装的版本是哪个版本,当然用上面的命令我们可以一个一个查看,但是有时候关联的包有很多个,想一次性的查看,那么可以用下面的命令:

pip list |grep xxx