open-mmlab / mmengine

OpenMMLab Foundational Library for Training Deep Learning Models
https://mmengine.readthedocs.io/
Apache License 2.0
1.15k stars 344 forks source link

不是大模型使用并行策略的效率大大降低 ! #1522

Closed Shen001 closed 3 months ago

Shen001 commented 6 months ago

What is the feature?

我使用了https://mmengine.readthedocs.io/zh-cn/latest/common_usage/large_model_training.html 里面介绍的几种方法在2台3090(无NVLINK)上进行了训练测试,发现使用torchrun 不用任何策略,比直接python调用快20%-30%,使用deepspeed或者colossalai都慢了2倍甚至以上,我使用mmengine0.10.3;请问这种情况是普遍情况吗?我没有使用fsdp,因为我使用的是1.13版本的torch~

Any other context?

No response

fanqiNO1 commented 6 months ago

您好,由于在大模型训练场景下,单张显卡很难完整装下模型、梯度以及优化器等,所以 DeepSpeed 和 ColossalAI 为了节省显存引入了额外的通信操作(比如 DeepSpeed ZeRO 系列分别将梯度、优化器信息都做了切分与收集),这相比于 torch 的 DDP 有着更多的显卡间通信。

由于显卡间无 NVLINK,DeepSpeed 和 ColossalAI 相比于 DDP 引入的额外的显卡间通信带来的时间损耗也不可忽视,最终导致了整体速度相比于 torch DDP 更慢。希望我的回答可以帮助到您。

Shen001 commented 3 months ago

了解~