pytorch GPU训练

1、查看cuda相关

    1)cuda是否可用    

        torch.cuda.is_available()
    2)gpu数量

        torch.cuda.device_count()

    3)gpu名字,默认从0开始

        torch.cuda.get_device_name(0)
    4)当前设备索引

        torch.cuda.current_device()

2、多卡训练

    1)DataParallel

    2)

3、设置默认device

    1)torch.cuda.set_device(device_ids)

    2)os.environ["CUDA_VISIBLE_DEVICES"] = device_ids

【注意】

        1)当已经import torch并进行了初始化之后,2可能无效,导致模型在其他卡上训练

        2)torch.load(checkpoint),如果checkpoint中的tensor是gpu tensor,则会加载到0卡上;

            对于1方法来说,是绝对0卡gpu: 0;

            对于2方法来说,是相对0卡gpu: visible_start;

            最好是存储checkpoint时,存为cpu tensor;或者load时,设置map_location=cpu

        3)不推荐使用model.to(device)来指定模型gpu,因为不设置全局的默认设备的话,torch.cuda.empty_cache()操作可能会出现问题

4、GPU显存限制

[Feature] Allow user to specify a fraction of the GPU memory. (#48172) · pytorch/pytorch@47aa253 · GitHub

torch.cuda.set_per_process_memory_fraction — PyTorch 1.12 documentation

Pytorch显存分配机制与显存占用分析方法

混合精度

模型流水线(deep speed zero 3、accelerator)

grad checkpointing

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值