pytorch分布式训练理解

单机多卡训练

配置每个进程的gpu

  • ddp模式
local_rank = torch.distributed.get_rank()	# 获取当前进程在所有进程中的编号
torch.cuda.set_device(local_rank)	# 与下面的等效使用CUDA_VISIBLE_DEVICES=local_rank,即指定当前进程使用的gpu编号
device = torch.device("cuda", local_rank) ## 表示 torch.Tensor 分配到指定编号的设备
device = torch.device("cuda:1") #如果local_rank=1,与上述等效
device = torch.device("cuda")  # 默认为当前设备
  • horovod模式
hvd.init()
torch.cuda.set_device(hvd.local_rank())
#此处没有申明device,这样,在将torch.Tensor分配到gpu时,可以采用torch.cuda()

cuda其他用法

#cuda是否可用
print(torch.cuda.is_available())
##返回gpu数量
print(torch.cuda.device_count())
#返回当前设备索引;
print(torch.cuda.current_device())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值