如何指定到 4,5,6,7号卡
方法一:
步骤:
# gpu init
multi_gpus = False
if ',' in args.gpus:
gpu_ids = [int(id) for id in args.gpus.split(',')]
multi_gpus = True
else:
gpu_ids = [int(args.gpus)]
device = torch.device('cuda:{}'.format(gpu_ids[0]) if torch.cuda.is_available() else 'cpu')
# 此处如果使用 下面一行代码,则会报错,RuntimeError: all tensors must be on devices[0]
# 默认情况下 device 为0,因此需要指定 device id.
# device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
....
if multi_gpus:
net = DataParallel(net, device_ids=gpu_ids).to(device)
margin = DataParallel(margin, device_ids=gpu_ids).to(device)
else:
net = net.to(device)
margin = margin.to(device)
方法二
if len(args.gpus.split(',')) > 1:
multi_gpus = True
os.environ['CUDA_VISIBLE_DEVICES'] = args.gpus
#device = torch.device('cuda:{}'.format(gpu_ids[0]) if torch.cuda.is_available() else 'cpu')
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')