Hi, Experts
what does busBw in nccl-tests stand for ? the algorithm bandwidth is quite clear while it equals to the bytes transferred divided by the time spent, but i see there is a factor for the calculation of busbw,
src//scatter.cu
void ScatterGetBw(size_t count, int typesize, double sec, double* algBw, double* busBw, int nranks) {
double baseBw = (double)(count * nranks * typesize) / 1.0E9 / sec;
*algBw = baseBw;
double factor = ((double)(nranks-1))/((double)(nranks));
*busBw = baseBw * factor;
}
for alltoall/gather/all_gather/reduce_scatter/scatter
the factor is
double factor = ((double)(nranks - 1))/((double)nranks);
allreduce
double factor = ((double)(2*(nranks - 1)))/((double)nranks);
sendrecv/broadcast/
double factor = 1;
please help me to understand the difference of busbw/algbw and busbw!
thanks