NVIDIA / nccl

Optimized primitives for collective multi-GPU communication
Other
3.28k stars 831 forks source link

For channel computing, why nvlinkBw is accumulated, but pciBw is not? Is this a BUG? #1322

Open GodHforever opened 5 months ago

GodHforever commented 5 months ago
static float getTotalBw(struct ncclTopoSystem* system, struct ncclTopoNode* gpu) {
  float nvlinkBw = 0.0, pciBw = 0.0;
  for (int l=0; l<gpu->nlinks; l++) {
    struct ncclTopoLink* link = gpu->links+l;
    if (link->type == LINK_NVL) nvlinkBw += link->bw;
    if (link->type == LINK_PCI) pciBw = link->bw;
  }
  return std::max(pciBw, nvlinkBw);
}

Is there anyone know about this?

GeofferyGeng commented 5 months ago

pic exists only one link between two point, but nvlink not.

GodHforever commented 5 months ago

n

thanks