Post thread-block size increase tuning (#2042)

* for multinode gfx950, extend AR LL128 up to 256MB, extend RS LL128 up to 8MB per rank, extend AG LL up to 64KB per rank

* dont override direct allgather threshold if set to -1

* restore 2-node AR simple at earlier message sizes than higher multi-node AR

* extend range of LL for single-node RS on gfx950

* update algo/proto for multi-node allreduce on gfx942

* set single-node AR on gfx950 to Tree LL for KB message sizes

* decrease threshold for single node Tree for gfx950 AR
Этот коммит содержится в:
isaki001
2025-11-13 14:51:04 -06:00
коммит произвёл GitHub
родитель 83ffc82fa7
Коммит 0d09f86608
3 изменённых файлов: 26 добавлений и 16 удалений
+9
Просмотреть файл
@@ -2218,6 +2218,15 @@ rccl_static ncclResult_t getAlgoInfo(
NCCLCHECK(topoGetAlgoInfo(comm, info, nBytes, (float **)collCostTable, simInfo));
} else {
NCCLCHECK(topoGetAlgoInfo(comm, info, nBytes, (float **)collCostTable, simInfo));
//override algo, tree doesn't work with fewer than 64 bytes
static int userAlgoInput = -2;
const char *algoStr = getenv("NCCL_ALGO");
userAlgoInput = !algoStr ? 0 : 1;
size_t sizePerRank = rcclGetSizePerRank(info->func, nBytes, comm->nRanks);
if (!userAlgoInput && IsArchMatch(comm->topo->nodes[GPU].nodes[0].gpu.gcn, "gfx950") && comm->nNodes == 1 && (info->func == ncclFuncAllReduce) && sizePerRank >= 64 && sizePerRank <= 262144){
info->algorithm = NCCL_ALGO_TREE;
info->protocol = NCCL_PROTO_LL;
}
// NCCL_CTA_POLICY_EFFICIENCY requires user (non-symmetric) buffer registration (currently unsupported with MNNVL)
if (comm->config.CTAPolicy == NCCL_CTA_POLICY_EFFICIENCY && ncclGetEnv("NCCL_ALGO") == NULL && ncclGetEnv("NCCL_PROTO") == NULL && !comm->MNNVL) {
// make algorithm selection based on buffer registration