From 0c314521352e7be36e4681cb5dae7bf68424047f Mon Sep 17 00:00:00 2001 From: Wenkai Du <43822138+wenkaidu@users.noreply.github.com> Date: Thu, 10 Aug 2023 17:14:51 -0700 Subject: [PATCH] Add new model support (#847) * Add new model support * Update new rings [ROCm/rccl commit: 704459957511dc48b294983f9f52a168d7325aed] --- projects/rccl/src/graph/rome_models.cc | 14 ++++++++++++++ projects/rccl/tools/scripts/topo_val.sh | 2 +- projects/rccl/tools/topo_expl/topo_expl.cpp | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/projects/rccl/src/graph/rome_models.cc b/projects/rccl/src/graph/rome_models.cc index e0e5c41948..8d4f9d41b0 100644 --- a/projects/rccl/src/graph/rome_models.cc +++ b/projects/rccl/src/graph/rome_models.cc @@ -604,6 +604,19 @@ static struct rcclRomeModel rome_model_80 = { .options = "", }; +static struct rcclRomeModel rome_model_81 = { + .nGpus = 8, .nCpus = 2, .nNics = 8, .nLinks = 7, + .gpuIds = { 0xc000, 0x22000, 0x38000, 0x5c000, 0x9f000, 0xaf000, 0xbf000, 0xdf000, }, + .nicIds = { 0x7000, 0x1d000, 0x33000, 0x57000, 0x9a000, 0xaa000, 0xba000, 0xda000, }, + .gpuNuma = { 0, 0, 0, 0, 1, 1, 1, 1, }, + .nicNuma = { 0, 0, 0, 0, 1, 1, 1, 1, }, + .connMatrix = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, }, + .gdrLevel = { PATH_PXB, PATH_PHB, PATH_PHB, PATH_PHB, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_PHB, PATH_PXB, PATH_PHB, PATH_PHB, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_PHB, PATH_PHB, PATH_PXB, PATH_PHB, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_PHB, PATH_PHB, PATH_PHB, PATH_PXB, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_PXB, PATH_PHB, PATH_PHB, PATH_PHB, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_PHB, PATH_PXB, PATH_PHB, PATH_PHB, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_PHB, PATH_PHB, PATH_PXB, PATH_PHB, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_PHB, PATH_PHB, PATH_PHB, PATH_PXB, }, + .pattern = "4444", + .ringBase = "N0 0 1 2 3 4 5 6 7 N7|N1 1 0 2 4 3 5 7 6 N6|N2 2 5 0 3 6 1 7 4 N4|N3 3 7 0 4 2 1 6 5 N5|N4 4 6 2 7 3 0 5 1 N1|N5 5 4 7 1 3 2 6 0 N0|N6 6 3 1 4 0 7 5 2 N2|N7 7 2 0 6 4 1 5 3 N3", + .options = "noCpuCheck=1", +}; + static struct rcclRomeModel romeTopoModels[] = { rome_model_22, rome_model_25, @@ -645,6 +658,7 @@ static struct rcclRomeModel romeTopoModels[] = { rome_model_76, rome_model_79, rome_model_80, + rome_model_81, }; /* Parse user defined rings. Format is like : diff --git a/projects/rccl/tools/scripts/topo_val.sh b/projects/rccl/tools/scripts/topo_val.sh index 14c2cf2831..cfdb668f94 100755 --- a/projects/rccl/tools/scripts/topo_val.sh +++ b/projects/rccl/tools/scripts/topo_val.sh @@ -21,7 +21,7 @@ DIR="$(cd -P "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -for i in {0..80} +for i in {0..81} do if [[ $i -eq 50 ]] || [[ $i -eq 51 ]] then diff --git a/projects/rccl/tools/topo_expl/topo_expl.cpp b/projects/rccl/tools/topo_expl/topo_expl.cpp index 1430e76f70..b675200f15 100644 --- a/projects/rccl/tools/topo_expl/topo_expl.cpp +++ b/projects/rccl/tools/topo_expl/topo_expl.cpp @@ -153,6 +153,7 @@ NodeModelDesc model_descs[] = { {2, "topo_8p1h_5.xml", "2 nodes 8P1H Alt."}, {1, "topo_8p_940.xml", "Single node gfx940 8P"}, {2, "topo_4p_940.xml", "2 nodes gfx940 4P"}, + {4, "topo_8p_940.xml", "4 nodes gfx940 8P"}, }; NCCL_PARAM(MaxCTAs, "MAX_CTAS", MAXCHANNELS);