Skip to content

TP=1,EP>1时仿真失败 #298

Description

@GeofferyGeng

场景

仿真DS-V3,TP=1,EP>1

存在的问题

1.EP通信group和DP_EP通信group创建会失败,因为TP=1,TP的通信group没创建,而EP通信group和DP_EP通信group都依赖于TP
2.所有前向和后向集合通信被屏蔽

过程分析

1.break_dimension(-1) 导致维度划分异常

在 Sys::break_dimension() 中:

int Sys::break_dimension(int model_parallel_npu_group) {
  if (model_parallel_npu_group == 1) {
    return -1;  // 返回 -1
  }
  ...
}

2.decode_involved_dimensions 中所有维度被标记为 Data 维度

当 parallelismPolicy == TransformerFwdInBckwd 时:

int model_parallel_boundary = generator->break_dimension(model_parallel_npu_group); // 返回 -1
for (int i = 0; i <= -1; i++) {  // 循环不执行!model 维度全为 false
  model.push_back(true);
}
for (int i = 0; i < 10; i++) {   // 所有10个维度都被标记为 data 维度
  model.push_back(false);
  data.push_back(true);
}

结果:general_involved_dimensions["fwd"] 和 ["ig"] 全部为 false。

3.generate_collective 中跳过所有维度

在 Sys::generate_collective() 中:

for (int dim = 0; dim < topology->get_num_of_dimensions(); dim++) {
  if (topology->get_num_of_nodes_in_dimension(dim_mapper[dim]) == 1 ||
      !dimensions_involved[dim_mapper[dim]]) {
    continue;  // 所有维度都被跳过!
  }
  // ... 生成 CollectivePhase
}

由于 dimensions_involved 全为 false,所有维度都被 continue 跳过,导致 vect 为空。

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions