bug描述 Describe the Bug
某些TP/DP切分下,group size無可避免有可能最終剩 1
,看起來這種corner case在paddlepaddle 2.6
中被當作邊界處理放棄掉了,但實際上應該是合理的使用場景
demo.py
# paddle: 2.6.0
from paddle.distributed import fleet
from paddle.distributed import get_rank, new_group
if __name__ == '__main__':
fleet.init()
gp = new_group([0, 1])
print(f'rank={get_rank()}: gp.rank={gp.rank} gp.world_size={gp.world_size}')
gp = new_group([0])
print(f'rank={get_rank()}: gp.rank={gp.rank} gp.world_size={gp.world_size}') #-1, -1, WHY?
"""
Output:
rank=0: gp.rank=0 gp.world_size=2
rank=0: gp.rank=-1 gp.world_size=-1
rank=1: gp.rank=1 gp.world_size=2
rank=1: gp.rank=-1 gp.world_size=-1
"""
Reproduce: 找個2GPU的node,然後執行以下
python -m paddle.distributed.launch --nproc_per_node=2 demo.py
其他补充信息 Additional Supplementary Information
No response
3条答案
按热度按时间brtdzjyr1#
您好,我再說明更詳細一點。
比較困擾的會是group_rank也會是-1,這樣沒有辦法計算各進程之間的相對關係,一些allgather之類的操作就無法撰寫。
eeq64g8w2#
这个处理确实存在问题,后续会修复该问题。
uidvcgyl3#
@ForFishes As dicussion with biweekly sync meeting,
請問這個問題排程大概是?