From d377c4dcc630a688ade268483aee99eb0770fbe9 Mon Sep 17 00:00:00 2001 From: Wenkai Du <43822138+wenkaidu@users.noreply.github.com> Date: Wed, 6 Oct 2021 08:17:12 -0700 Subject: [PATCH] Add another Rome model (#431) [ROCm/rccl commit: e0053311c0079d81475a090457083df796481002] --- projects/rccl/src/graph/rome_models.cc | 13 ++++ projects/rccl/tools/scripts/topo_val.sh | 2 +- .../tools/topo_expl/models/topo_8p_90a_1.xml | 67 +++++++++++++++++++ projects/rccl/tools/topo_expl/topo_expl.cpp | 1 + 4 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 projects/rccl/tools/topo_expl/models/topo_8p_90a_1.xml diff --git a/projects/rccl/src/graph/rome_models.cc b/projects/rccl/src/graph/rome_models.cc index b8abffa17e..70c1cb37cf 100644 --- a/projects/rccl/src/graph/rome_models.cc +++ b/projects/rccl/src/graph/rome_models.cc @@ -342,6 +342,18 @@ static struct rcclRomeModel rome_model_56 = { .ringBase = "0 1 3 2 6 7 15 14 10 11 9 8 12 13 5 4|0 1 2 3 7 6 13 12 8 9 10 11 15 14 5 4|0 2 3 7 6 14 15 11 10 8 9 13 12 4 5 1|4 5 13 12 8 9 11 10 14 15 7 6 2 3 1 0|4 5 14 15 11 10 9 8 12 13 6 7 3 2 1 0|1 5 4 12 13 9 8 10 11 15 14 6 7 3 2 0", }; +static struct rcclRomeModel rome_model_58 = { + .nGpus = 8, .nCpus = 3, .nNics = 0, .nLinks = 3, + .gpuIds = { 0xc1000, 0xc6000, 0xc9000, 0xce000, 0xd1000, 0xd6000, 0xd9000, 0xde000, }, + .nicIds = { }, + .gpuNuma = { 3, 3, 1, 1, 0, 0, 0, 0, }, + .nicNuma = { }, + .connMatrix = { 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, }, + .gdrLevel = { }, + .pattern = "402020", + .ringBase = "0 1 3 2 4 5 7 6|6 7 5 4 2 3 1 0|0 1 5 4 6 7 3 2|2 3 7 6 4 5 1 0", +}; + static struct rcclRomeModel romeTopoModels[] = { rome_model_22, rome_model_25, @@ -368,6 +380,7 @@ static struct rcclRomeModel romeTopoModels[] = { rome_model_43, rome_model_55, rome_model_56, + rome_model_58, }; /* 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 d658ea45c2..3a71359d92 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..57} +for i in {0..58} do if [[ $i -eq 50 ]] || [[ $i -eq 51 ]] then diff --git a/projects/rccl/tools/topo_expl/models/topo_8p_90a_1.xml b/projects/rccl/tools/topo_expl/models/topo_8p_90a_1.xml new file mode 100644 index 0000000000..6fee329532 --- /dev/null +++ b/projects/rccl/tools/topo_expl/models/topo_8p_90a_1.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/rccl/tools/topo_expl/topo_expl.cpp b/projects/rccl/tools/topo_expl/topo_expl.cpp index 1c234e0159..320948febc 100644 --- a/projects/rccl/tools/topo_expl/topo_expl.cpp +++ b/projects/rccl/tools/topo_expl/topo_expl.cpp @@ -127,6 +127,7 @@ NodeModelDesc model_descs[] = { {1, "topo_8p_rome_vm1.xml", "single node 8 gfx908 Rome VM"}, {1, "topo_16p1h.xml", "single node 16P1H"}, {4, "topo_8p_rome_4n_2.xml", "4 nodes 8 gfx908 Rome 4 NICs NPS=4 Alt. Model"}, + {1, "topo_8p_90a_1.xml", "single node gfx90a Alt. Model"}, }; int main(int argc,char* argv[])