Skip to content

Commit f5f8464

Browse files
committed
fix(ascend): use CommInitAll for single-node TP
1 parent 3faa1db commit f5f8464

2 files changed

Lines changed: 22 additions & 1 deletion

File tree

‎csrc/engine/distributed/communication_group.cpp‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,10 @@ CommunicationGroup::CommunicationGroup(const DistConfig &dist_config,
176176
}
177177

178178
if (tp_size > 1) {
179-
if (device_type_ == infinicore::Device::Type::kCambricon) {
179+
const bool use_single_node_init_all =
180+
device_type_ == infinicore::Device::Type::kCambricon
181+
|| device_type_ == infinicore::Device::Type::kAscend;
182+
if (use_single_node_init_all) {
180183
checkInfiniccl(
181184
"infinicclCommInitAll",
182185
infinicclCommInitAll(

‎test/static/test_infinicore_runtime_contracts.py‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,24 @@ def test_eager_graph_tensors_alias_while_compiled_outputs_force_blobs(
5656
source.count("GraphTensor::SnapshotPolicy::kBlob"), count
5757
)
5858

59+
def test_ascend_single_node_tp_uses_comm_init_all(self) -> None:
60+
source = read_source(
61+
"csrc/engine/distributed/communication_group.cpp"
62+
)
63+
constructor = function_body(
64+
source,
65+
"CommunicationGroup::CommunicationGroup(const DistConfig &dist_config,",
66+
)
67+
68+
self.assertIn("const bool use_single_node_init_all", constructor)
69+
self.assertIn(
70+
"device_type_ == infinicore::Device::Type::kAscend",
71+
constructor,
72+
)
73+
self.assertIn("infinicclCommInitAll(", constructor)
74+
self.assertIn("communicators_", constructor)
75+
self.assertNotIn("infinicclCommInitRank", constructor)
76+
5977
def test_standard_mlp_consumes_packed_gate_up_without_repacking(self) -> None:
6078
consumers = (
6179
(

0 commit comments

Comments
 (0)