2.20.3-1
Add support for alternating rings, allow for cross-nic rings without cross-rail communication. Add support for user buffer registration for network send/recv. Optimize aggregated operations to better utilize all channels. Add flattening for BCM PCI gen5 switches. Add support for inter-node NVLink communication Add support for port fusion in NET/IB. Add support for ReduceScatter and AllGather using Collnet. Update net API to v8. Fix hang during A2A connection.
Tento commit je obsažen v:
@@ -291,3 +291,79 @@ void ncclMemoryStackDestruct(struct ncclMemoryStack* me) {
|
||||
h = h1;
|
||||
}
|
||||
}
|
||||
|
||||
const char* ncclOpToString(ncclRedOp_t op) {
|
||||
switch (op) {
|
||||
case ncclSum:
|
||||
return "ncclSum";
|
||||
case ncclProd:
|
||||
return "ncclProd";
|
||||
case ncclMax:
|
||||
return "ncclMax";
|
||||
case ncclMin:
|
||||
return "ncclMin";
|
||||
case ncclAvg:
|
||||
return "ncclAvg";
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
}
|
||||
|
||||
const char* ncclDatatypeToString(ncclDataType_t type) {
|
||||
switch (type) {
|
||||
case ncclInt8: // ncclChar
|
||||
return "ncclInt8";
|
||||
case ncclInt32: // ncclInt
|
||||
return "ncclInt32";
|
||||
case ncclUint32:
|
||||
return "ncclUint32";
|
||||
case ncclInt64:
|
||||
return "ncclInt64";
|
||||
case ncclUint64:
|
||||
return "ncclUint64";
|
||||
case ncclFloat16: // ncclHalf
|
||||
return "ncclFloat16";
|
||||
case ncclFloat32: // ncclFloat
|
||||
return "ncclFloat32";
|
||||
case ncclFloat64: // ncclDouble
|
||||
return "ncclFloat64";
|
||||
#if defined(__CUDA_BF16_TYPES_EXIST__)
|
||||
case ncclBfloat16:
|
||||
return "ncclBfloat16";
|
||||
#endif
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
}
|
||||
|
||||
const char* ncclAlgoToString(int algo) {
|
||||
switch (algo) {
|
||||
case NCCL_ALGO_TREE:
|
||||
return "TREE";
|
||||
case NCCL_ALGO_RING:
|
||||
return "RING";
|
||||
case NCCL_ALGO_COLLNET_DIRECT:
|
||||
return "COLLNET_DIRECT";
|
||||
case NCCL_ALGO_COLLNET_CHAIN:
|
||||
return "COLLNET_CHAIN";
|
||||
case NCCL_ALGO_NVLS:
|
||||
return "NVLS";
|
||||
case NCCL_ALGO_NVLS_TREE:
|
||||
return "NVLS_TREE";
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
}
|
||||
|
||||
const char* ncclProtoToString(int proto) {
|
||||
switch (proto) {
|
||||
case NCCL_PROTO_LL:
|
||||
return "LL";
|
||||
case NCCL_PROTO_LL128:
|
||||
return "LL128";
|
||||
case NCCL_PROTO_SIMPLE:
|
||||
return "SIMPLE";
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
}
|
||||
|
||||
Odkázat v novém úkolu
Zablokovat Uživatele