forked from mindspore-Ecosystem/mindspore
!27011 adjust comm executor order
Merge pull request !27011 from kisnwang/adjust-comm-execute-order
This commit is contained in:
commit
5645acee6c
|
@ -254,12 +254,17 @@ void KernelGraph::SetExecOrderByDefault() {
|
|||
}
|
||||
// delay execute comm ops that need optimize
|
||||
bool is_fused_comm = AnfAlgo::IsFusedCommunicationOp(node);
|
||||
bool is_comm = AnfAlgo::IsCommunicationOp(node);
|
||||
bool optimize_comm = false;
|
||||
if (is_fused_comm && optimized_comm_group.empty()) {
|
||||
if (is_fused_comm) {
|
||||
auto node_group = GetNodeGroup(node);
|
||||
if (node_group.find(kSyncBnGroup) == string::npos) {
|
||||
optimized_comm_group = node_group;
|
||||
optimize_comm = true;
|
||||
if (optimized_comm_group.empty()) {
|
||||
optimized_comm_group = node_group;
|
||||
optimize_comm = true;
|
||||
} else if (optimized_comm_group == node_group) {
|
||||
optimize_comm = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (optimize_comm) {
|
||||
|
@ -268,7 +273,11 @@ void KernelGraph::SetExecOrderByDefault() {
|
|||
delay_comm_stack.pop();
|
||||
}
|
||||
delay_comm_stack.push(node);
|
||||
} else if (is_fused_comm) {
|
||||
} else if (is_comm) {
|
||||
if (delay_comm_stack.size() > 1) {
|
||||
EnqueueActiveNodes(delay_comm_stack.front(), &communication_descendants, &visited_nodes, false);
|
||||
delay_comm_stack.pop();
|
||||
}
|
||||
delay_comm_stack.push(node);
|
||||
} else if (is_communication_descendant) {
|
||||
EnqueueActiveNodes(node, &communication_descendants, &visited_nodes);
|
||||
|
|
Loading…
Reference in New Issue