远程服务器(已配置)运行深度学习算法踩坑

查看环境

查看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 就可以终止了

注意每次运行完后确认进程清理干净,以免不必要地占用服务器资源

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值