From 011447e4dc0a0fde02ecebca9ce8cbfbc58a1d77 Mon Sep 17 00:00:00 2001 From: Wenkai Du <43822138+wenkaidu@users.noreply.github.com> Date: Wed, 13 Apr 2022 11:45:40 -0700 Subject: [PATCH] Add new Rome model (#536) [ROCm/rccl commit: 2151c79d14c34de9048a4ee39eddfd135cce03ce] --- projects/rccl/src/graph/rome_models.cc | 14 +++ projects/rccl/tools/scripts/topo_val.sh | 2 +- .../tools/topo_expl/models/topo_8p1h_3.xml | 86 +++++++++++++++++++ projects/rccl/tools/topo_expl/topo_expl.cpp | 1 + 4 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 projects/rccl/tools/topo_expl/models/topo_8p1h_3.xml diff --git a/projects/rccl/src/graph/rome_models.cc b/projects/rccl/src/graph/rome_models.cc index f0afd84f56..8ac7de67ca 100644 --- a/projects/rccl/src/graph/rome_models.cc +++ b/projects/rccl/src/graph/rome_models.cc @@ -513,6 +513,19 @@ static struct rcclRomeModel rome_model_73 = { .options = "", }; +static struct rcclRomeModel rome_model_74 = { + .nGpus = 8, .nCpus = 4, .nNics = 4, .nLinks = 3, + .gpuIds = { 0xc1000, 0xc6000, 0xc9000, 0xce000, 0xd1000, 0xd6000, 0xd9000, 0xde000, }, + .nicIds = { 0xc5000, 0xcd000, 0xd5000, 0xdd000, }, + .gpuNuma = { 3, 3, 1, 1, 0, 0, 2, 2, }, + .nicNuma = { 3, 1, 0, 2, }, + .connMatrix = { 0, 4, 1, 0, 0, 0, 2, 0, 4, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 4, 2, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 4, 1, 0, 0, 1, 0, 0, 4, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 1, 0, 1, 4, 0, }, + .gdrLevel = { PATH_PHB, PATH_PHB, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_PHB, PATH_PHB, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_PHB, PATH_PHB, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_SYS, PATH_PHB, PATH_PHB, }, + .pattern = "21212121", + .ringBase = "N0 0 1 5 4 6 7 3 2 N1|N1 2 3 7 6 4 5 1 0 N0|N3 7 6 0 1 3 2 4 5 N2|N2 5 4 2 3 1 0 6 7 N3|N0 0 1 5 4 6 7 3 2 N1|N1 2 3 7 6 4 5 1 0 N0|N3 7 6 0 1 3 2 4 5 N2|N2 5 4 2 3 1 0 6 7 N3", + .options = "tuning=3", +}; + static struct rcclRomeModel romeTopoModels[] = { rome_model_22, rome_model_25, @@ -550,6 +563,7 @@ static struct rcclRomeModel romeTopoModels[] = { rome_model_71, rome_model_72, rome_model_73, + rome_model_74, }; /* 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 6b48ecf548..6bcce1284c 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..73} +for i in {0..74} do if [[ $i -eq 50 ]] || [[ $i -eq 51 ]] then diff --git a/projects/rccl/tools/topo_expl/models/topo_8p1h_3.xml b/projects/rccl/tools/topo_expl/models/topo_8p1h_3.xml new file mode 100644 index 0000000000..5dbe1d0b9d --- /dev/null +++ b/projects/rccl/tools/topo_expl/models/topo_8p1h_3.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/rccl/tools/topo_expl/topo_expl.cpp b/projects/rccl/tools/topo_expl/topo_expl.cpp index ed0480a73a..da70b9c021 100644 --- a/projects/rccl/tools/topo_expl/topo_expl.cpp +++ b/projects/rccl/tools/topo_expl/topo_expl.cpp @@ -143,6 +143,7 @@ NodeModelDesc model_descs[] = { {1, "topo_8p1h_1.xml", "single node 8P1H Alt."}, {4, "topo_8p1h_1.xml", "4 nodes 8P1H Alt."}, {1, "topo_8p1h_2.xml", "single node 8P1H Alt."}, + {4, "topo_8p1h_3.xml", "4 nodes 8P1H Alt."}, }; int main(int argc,char* argv[])