Linux服务器使用GPU技巧

进行深度学习实验的时候用pytorch-gpu,经常要与GPU打交道;
所以经常遇到奇奇怪怪的问题;

查看GPU占用情况

  • watch -n 10 nvidia-smi
  • nvidia-smi

在这里插入图片描述

杀死进程

kill PID

使用技巧

指定在哪张GPU上运行

有两种方法,建议用第二种

1. cuda() , torch.cuda.set_device()

在代码内部指定;

model.cuda(1)

2. os.environ[“CUDA_VISIBLE_DEVICES”]

在程序前面写如下语句:

os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "2, 3"

此时系统会只调用原来的2, 3卡,并重新编号成0, 1,所以你在后面再调用cuda:0实际上在用原来的2卡了;(官网上也建议用这种方法)

查看变量在哪个设备上

查看model在哪张卡上:

if torch.cuda.is_available():
    # 获取当前模型所在的设备
    device = next(model.parameters()).device
    print("Model is on device:", device)
else:
    print("Model is on CPU")

torch.nn.DataParallel()

CLASStorch.nn.DataParallel(module, device_ids=None, output_device=None, dim=0)

在这里插入图片描述
可以看得到第一张卡用的多一些,这是因为虽然是并行,但是在做output_loss的时候默认是在第一张卡上跑的;参考[1]

Debug

1. RuntimeError: CUDA out of memory.

RuntimeError: CUDA out of memory. Tried to allocate 392.00 MiB (GPU 0; 7.80 GiB total capacity; 6.48 GiB already allocated; 131.88 MiB free; 6.71 GiB reserved in total by PyTorch)

之所以会爆是因为·torch.nn.DataParallel()`上述原因;

参考

[1]Pytorch的nn.DataParallel

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值