用服务器跑,竟然和我用电脑上的CPU跑的速度差不多,明显有问题,最终通过以下方法解决:
查看GPU使用情况和进程
nvidia-smi #查看GPU使用情况
python show_gpu.py # 查看GPU使用情况
w # 看有哪些用户/进程
通过print看是否调用了cuda
用服务器没办法某一进程是否用了显卡以及用了哪张显卡
所以在代码里print一下看看
print('input.is_cuda',input.is_cuda)
结果返回:input.is_cuda True,即调用了cuda
换卡跑–解决了本文问题
服务器默认用第0块GPU跑,可能别人占用着,所以我就用第2 块跑
os.environ['CUDA_VISIBLE_DEVICES'] = '2'
# 选择了2号卡(第三块)单引号里可以放多个数'0,1,2,3'
CUDA:0
# 上句中的单引号序列里的第0号(第1个,也就是对应的2号卡)
于是,咔咔咔跑很快,问题解决了。
多块显卡跑
模型也要写成多块显卡对应的,大概百度了一下用DataParallel库。