PaddlePaddle / PaddleFleetX

飞桨大模型开发套件,提供大语言模型、跨模态大模型、生物计算大模型等领域的全流程开发工具链。
Apache License 2.0
440 stars 162 forks source link

在使用CustomDevice单机双卡推理ernie模型,配置应当mp=2,为何运行log中似乎dp=2 #1090

Closed jinyouzhi closed 1 year ago

jinyouzhi commented 1 year ago
[2023-06-19 17:07:48,648] [    INFO] distributed_strategy.py:152 - distributed strategy initialized
I0619 17:07:48.649518 3565096 tcp_utils.cc:181] The server starts to listen on IP_ANY:53537
I0619 17:07:48.649669 3565096 tcp_utils.cc:130] Successfully connected to 127.0.1.1:53537
[2023-06-19 17:07:53,079] [    INFO] topology.py:268 - Total 1 data comm group(s) create successfully!
[2023-06-19 17:07:53,084] [    INFO] topology.py:268 - Total 2 model comm group(s) create successfully!
[2023-06-19 17:07:53,088] [    INFO] topology.py:268 - Total 2 pipe comm group(s) create successfully!
[2023-06-19 17:07:53,091] [    INFO] topology.py:268 - Total 2 sharding comm group(s) create successfully!
[2023-06-19 17:07:53,096] [    INFO] topology.py:217 - HybridParallelInfo: rank_id: 0, mp_degree: 1, sharding_degree: 1, pp_degree: 1, dp_degree: 2, mp_group: [0],  sharding_group: [0], pp_group: [0], dp_group: [0, 1], check/clip group: [0]
args.mp_degree= 2 _(脚本中手动打印的配置)_
self.mp_degree 2 _(脚本中手动打印的配置)_
I0619 17:07:53.134132 3565096 analysis_predictor.cc:1503] CustomDevice is enabled
  1. 如上log应当表明建立了dp=2、mp=1的并行,是否正确?
  2. 请问可能的原因有哪些?比如缺失mp必需的算子?是否其中有fallback机制使得mp=2转为dp=2?
  3. 另,当前NPU实现了基于PaddleFleetX的模型并行、流水线并行了吗?
GuoxiaWang commented 1 year ago
  1. 分布式环境初始化的时候就没有初始化 mp,请问你的初始化代码是什么。
  2. 不会的。
  3. 已经支持
jinyouzhi commented 1 year ago
  1. 分布式环境初始化的时候就没有初始化 mp,请问你的初始化代码是什么。
  2. 不会的。
  3. 已经支持

https://github.com/PaddlePaddle/PaddleFleetX/blob/60f9de6be49627d92d08d3085ecd1ac5c6186487/projects/ernie/auto_export_ernie_345M_mp2_npu.sh#L27 https://github.com/PaddlePaddle/PaddleFleetX/blob/60f9de6be49627d92d08d3085ecd1ac5c6186487/projects/ernie/run_inference_mp2_npu.sh#L18 感谢回复,参考这里,分别将device替换为intel_gpu。

jinyouzhi commented 1 year ago

@GuoxiaWang 您好,除了上面初始化的问题,还想请教NPU的多节点并行是否也有支持?

GuoxiaWang commented 1 year ago

还没跑过多机,只跑过单机。可以试试能不能跑,如果不能跑,可以把问题抛出来。

ronny1996 commented 1 year ago

@jinyouzhi 这里log是个bug,不用管

jinyouzhi commented 1 year ago

@jinyouzhi 这里log是个bug,不用管

与NPU表现一致?其实是MP生效了是吗?有什么快速验证的建议吗?谢谢~

ronny1996 commented 1 year ago

@jinyouzhi 打log查看下是否有 cembedding,c* 这类op被调用即可