Merge remote-tracking branch 'nccl/master' into develop

Dieser Commit ist enthalten in:
Wenkai Du
2022-04-18 11:14:51 -07:00
Commit d28e1cb44f
81 geänderte Dateien mit 7358 neuen und 4468 gelöschten Zeilen
+12 -11
Datei anzeigen
@@ -195,12 +195,17 @@ int main(int argc,char* argv[])
NCCLCHECK(ncclCalloc(&comm, nranks));
struct allGather1Data_t *allGather1Data;
NCCLCHECK(ncclCalloc(&allGather1Data, nranks));
struct ncclPeerInfo *peerInfo;
NCCLCHECK(ncclCalloc(&peerInfo, nranks+1)); // Extra rank to represent CollNet root
struct allGather3Data_t *allGather3Data;
NCCLCHECK(ncclCalloc(&allGather3Data, nranks));
struct ncclTopoGraph *treeGraph, *ringGraph, *collNetGraph;
NCCLCHECK(ncclCalloc(&treeGraph, nranks));
NCCLCHECK(ncclCalloc(&ringGraph, nranks));
NCCLCHECK(ncclCalloc(&collNetGraph, nranks));
for (int i = 0; i < nranks; i++) {
comm[i].rank = i;
comm[i].nRanks = nranks;
@@ -211,22 +216,18 @@ int main(int argc,char* argv[])
NCCLCHECK(ncclCalloc(&comm[i].p2pRecvs, comm->nRanks));
node_model = network.GetNode(i);
assert(node_model!=0);
comm[i].busId = node_model->getGpuBusId(i);
comm[i].topo = node_model->getSystem(i);
bootstrapAllGather(&comm[i], allGather1Data);
comm[i].peerInfo = peerInfo;
// Mark channels as non initialized.
for (int c=0; c<MAXCHANNELS; c++) comm[i].channels[c].id = -1;
NCCLCHECK(ncclCalloc((uint32_t**)&comm[i].p2pNet, 1));
NCCLCHECK(ncclCalloc(&comm[i].rankToIntraNodeRank, comm->nRanks));
NCCLCHECK(fillInfo(&comm[i], comm[i].peerInfo+comm[i].rank, 0));
}
struct ncclTopoGraph *treeGraph, *ringGraph, *collNetGraph;
NCCLCHECK(ncclCalloc(&treeGraph, nranks));
NCCLCHECK(ncclCalloc(&ringGraph, nranks));
NCCLCHECK(ncclCalloc(&collNetGraph, nranks));
for (int i = 0; i < nranks; i++) {
node_model = network.GetNode(i);
assert(node_model!=0);
initTransportsRank_1(&comm[i], allGather1Data, allGather3Data, treeGraph[i], ringGraph[i], collNetGraph[i]);
initTransportsRank_1(&comm[i], allGather3Data, treeGraph[i], ringGraph[i], collNetGraph[i]);
}
for (int i = 0; i < nranks; i++) {
@@ -246,7 +247,7 @@ int main(int argc,char* argv[])
free(ringGraph);
free(collNetGraph);
free(allGather3Data);
free(allGather1Data);
free(peerInfo);
free(comm);
printf("Done generating topology using %d: %s\n", model_id, desc->description);