Pytorch 根据 MIG ID 调用分块后的 GPU

将一块 GPU 分成多块后,当在 pytorch 中调用时,使用 torch.device 只能调用 cuda:0,而这默认是第一张子块;如果使用 cuda:1 等不同序号,则会报错说没有此编号的 cuda。

在 GPU 分块后,子块的编号是根据 MIG id 确定的,所以要调用非第一张子块,则需要根据其 MIG id 指定 cuda。

方法

首先,使用 nvidia-smi -L 命令查看各 GPU 子块的 MIG id:

nvidia-smi -L
GPU 0: NVIDIA A100-SXM4-40GB (UUID: GPU-XXXXXXXXXX)
  MIG 3g.20gb     Device  0: (UUID: MIG-XXXXXXXXXX)
  MIG 3g.20gb     Device  1: (UUID: MIG-XXXXXXXXXX)

后面括号中的 UUID 就是在 pytorch 中使用的编号。

然后,设置环境变量:

os.environ['CUDA_VISIBLE_DEVICES'] = "MIG-XXXXXXXXXX"

这样,pytorch 就会将你指定的这张子块设置为默认 GPU,在之后的使用中,直接指定 torch.device('cuda:0') 就可以正常调用了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值