Вы должны сохранить параллелизм модели в качестве своего последнего ресурса, и только если ваша модель не помещается в памяти одного графического процессора (с 16 ГБ / графическим процессором у вас достаточно места для гигантской модели).
Если у вас есть два графических процессора, я бы использовал параллелизм данных. В параллелизме данных у вас есть копия вашей модели на каждом графическом процессоре, и каждая копия снабжается пакетом. Затем градиенты собираются и используются для обновления копий.
Pytorch позволяет легко добиться параллелизма данных, поскольку вам просто нужно обернуть экземпляр модели в nn.DataParallel
:
model = torch.nn.DataParallel(model, device_ids=[0, 1])
output = model(input_var)