Skip to content

Commit 128b60a

Browse files
authored
Refactor inter-node device API (flagos-ai#403)
1 parent 5bf7fe0 commit 128b60a

18 files changed

Lines changed: 1771 additions & 699 deletions

flagcx/adaptor/ccl/nccl_adaptor.cc

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,10 +182,13 @@ flagcxResult_t ncclAdaptorCommInitRank(flagcxInnerComm_t *comm, int nranks,
182182
reqs.lsaMultimem = checkNvlsSupport();
183183
reqs.railGinBarrierCount = NCCL_ADAPTOR_DEVICE_CTA_COUNT;
184184
reqs.ginSignalCount = 1;
185-
FLAGCXCHECK(
186-
ncclAdaptorDevCommCreate((*comm)->base, &reqs, (*comm)->devBase));
187-
if ((*comm)->devBase == NULL) {
188-
WARN("ncclDevComm is not initialized succefully");
185+
flagcxResult_t devCommRes =
186+
ncclAdaptorDevCommCreate((*comm)->base, &reqs, (*comm)->devBase);
187+
if (devCommRes != flagcxSuccess) {
188+
WARN("ncclDevCommCreate unavailable (res=%d), DevComm disabled",
189+
devCommRes);
190+
free((*comm)->devBase);
191+
(*comm)->devBase = NULL;
189192
}
190193
}
191194
}
@@ -317,8 +320,12 @@ flagcxResult_t ncclAdaptorCommWindowRegister(flagcxInnerComm_t comm, void *buff,
317320
if (*win == NULL) {
318321
FLAGCXCHECK(flagcxCalloc(win, 1));
319322
}
320-
return (flagcxResult_t)ncclCommWindowRegister(comm->base, buff, size,
321-
&(*win)->base, winFlags);
323+
flagcxResult_t res = (flagcxResult_t)ncclCommWindowRegister(
324+
comm->base, buff, size, &(*win)->base, winFlags);
325+
if (res == flagcxSuccess) {
326+
(*win)->winFlags = winFlags;
327+
}
328+
return res;
322329
#else
323330
return flagcxNotSupported;
324331
#endif // NCCL_VERSION_CODE > NCCL_VERSION(2, 27, 0)

0 commit comments

Comments
 (0)