全,
我尝试了AWS sagemaker数据并行化方法,用于从smdistributed.dataparallel.torch.parallel.distributed导入DistributedDataParallel作为DDP导入smdistributed.dataparallel.torch.distributed作为dist的分布式培训(使用两个库),尽管数据被划分为所有GPUs("ml.p3.16xlarge“,8个Gpus),但是,无论是单实例还是双实例,培训时间都没有减少。
之前,我们尝试使用Sagemaker内置的algo Resnet101来获取相同的数据,100个时代的训练时间大约为2080秒(批处理大小- 64 ),这是我们希望通过分布式培训来改进的基准。
现在,当我们使用分布式数据并行方法在相同的实例中进行分布式训练时,我们训练的时间为20次-时间为1600秒(批处理大小- 64),训练时间为20次-时间为1300秒(批处理大小- 128),训练时间为20次-时间为1063秒(批处理大小-258次)。
即使有不同的批次大小,培训时间也没有多大改善。
训练数据- 6016图像。测试数据- 745图像。
发布于 2022-02-24 18:10:56
假设您正在增加批处理大小和实例数量,那么每个/gpu的批处理大小保持不变。从两倍的实例中获得的速度收益似乎并不多。可能有几个原因:
如果您仍然面临问题,请创建一个支持案例,并需要服务团队的帮助。https://console.aws.amazon.com/support/home?#/
谢谢!
https://stackoverflow.com/questions/69924340
复制相似问题