文章目录
查看环境
查看cuda是否可用
在python中使用torch.cuda.is_available()
,返回True,说明cuda可以正常使用
conda查看环境
控制台里使用conda info -e
可以查看conda已经配置过的环境
查看可使用的显卡
nvidia-smi
由上图可知显卡0目前空闲,可以用来运行我们的代码
根据代码文档激活环境
我这里使用anaconda激活了预先安装的pytorch1.6以及python3.6的环境,操作如下:
conda activate torch16py36
指定显卡运行代码
使用单个GPU加速计算
若代码中有设定默认显卡,则设置默认显卡为0,直接开始运行
python xxxx.py
若没有设定默认显卡,可以在命令前设置空闲显卡可见,屏蔽其他显卡
CUDA_VISIBLE_DEVICES=0 python xxxx.py
查看实时显存利用率
运行代码后,通过watch -n 1 nvidia-smi
命令查看实时的显存利用率,如果进程一直显示利用率很低,而且较多时间下显存利用率为0%,则终止代码运行,好好修改代码,提高GPU利用率再运行.
【提升显卡利用率部分参考文章】
https://zhuanlan.zhihu.com/p/53345706
https://ask.csdn.net/questions/752324
https://blog.csdn.net/xxboy61/article/details/97973288
https://www.ptorch.com/news/181.html
https://www.cnblogs.com/nanhe/p/13579887.html
https://oldpan.me/archives/pytorch-gpu-memory-usage-track
并行计算
xx
使用nohup后台运行代码以及进程管理
nohup xxxx.py &
其中nohup表示不间断执行命令,即就算终端和主机断开链接,该进程也不会停止,而&则表示在后台执行命令
实时打印到nohup.out
nohup.out中显示不出来python程序中print的东西。
这是因为python的输出有缓冲,导致nohup.out并不能够马上看到输出。
python 有个-u参数,使得python不启用缓冲。
nohup python -u xxxx.py &
jobs和ps查看后台进程
区别在于 jobs 只能查看当前终端后台执行的任务,换了终端就看不见了。而ps命令适用于查看瞬时进程的动态,可以看到别的终端的任务。
只有在当前命令行中使用 nohup和& 时,jobs命令才能将它显示出来。如果将他们写到 .sh 脚本中,然后执行脚本,是显示不出来的
关闭后台进程
(1)通过jobs命令查看jobnum,然后执行 kill %jobnum
(2)通过ps命令查看进程号PID,然后执行 kill %PID
如果是前台进程的话,直接执行 Ctrl+c 就可以终止了
注意每次运行完后确认进程清理干净,以免不必要地占用服务器资源