diff --git a/src/graph/rome_models.h b/src/graph/rome_models.h
index 4b671b011..65a572c91 100755
--- a/src/graph/rome_models.h
+++ b/src/graph/rome_models.h
@@ -166,6 +166,36 @@ static struct rcclRomeModel rome_model_28 = {
.ringBase = "0 3 2 1 4 5 6 7|7 6 5 4 1 2 3 0|0 2 5 7 4 6 3 1|1 3 6 4 7 5 2 0",
};
+static struct rcclRomeModel rome_model_40 = {
+ .nGpus = 8, .nCpus = 4, .nNics = 1, .nLinks = 3,
+ .gpuIds = { 0x43000, 0x23000, 0x26000, 0x3000, 0xc3000, 0xc6000, 0xa3000, 0x83000, },
+ .gpuNuma = { 0, 1, 1, 1, 2, 2, 3, 3, },
+ .nicNuma = { 2, },
+ .connMatrix = { 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, },
+ .pattern = "10302120",
+ .ringBase = "6 7 1 4 0 5 3 2|7 6 4 1 0 2 3 5",
+};
+
+static struct rcclRomeModel rome_model_42 = {
+ .nGpus = 8, .nCpus = 7, .nNics = 1, .nLinks = 3,
+ .gpuIds = { 0x43000, 0x23000, 0x26000, 0x3000, 0xc3000, 0xc6000, 0xa3000, 0x83000, },
+ .gpuNuma = { 1, 2, 2, 3, 5, 5, 6, 7, },
+ .nicNuma = { 4, },
+ .connMatrix = { 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, },
+ .pattern = "00102010012010",
+ .ringBase = "7 4 6 1 3 0 2 5|6 4 7 1 3 2 5 0",
+};
+
+static struct rcclRomeModel rome_model_44 = {
+ .nGpus = 8, .nCpus = 4, .nNics = 1, .nLinks = 3,
+ .gpuIds = { 0x63000, 0x43000, 0x27000, 0x3000, 0xe3000, 0xc3000, 0xa3000, 0x83000, },
+ .gpuNuma = { 0, 0, 1, 1, 2, 2, 3, 3, },
+ .nicNuma = { 2, },
+ .connMatrix = { 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, },
+ .pattern = "20202120",
+ .ringBase = "4 5 7 6 2 1 3 0|7 4 5 6 2 0 1 3",
+};
+
static struct rcclRomeModel romeTopoModels[] = {
rome_model_22,
rome_model_25,
@@ -180,4 +210,7 @@ static struct rcclRomeModel romeTopoModels[] = {
rome_model_23,
rome_model_38,
rome_model_28,
+ rome_model_40,
+ rome_model_42,
+ rome_model_44,
};
diff --git a/tools/scripts/topo_val.sh b/tools/scripts/topo_val.sh
index 556c0f60b..fcc07c387 100755
--- a/tools/scripts/topo_val.sh
+++ b/tools/scripts/topo_val.sh
@@ -21,7 +21,7 @@
DIR="$(cd -P "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-for i in {0..38}
+for i in {0..44}
do
$DIR/../topo_expl/topo_expl -m $i > "topo_m$i.log"
$DIR/../TopoVisual/topo_visual.sh -i "topo_m$i.log"
diff --git a/tools/topo_expl/models/topo_4p3l_n2.xml b/tools/topo_expl/models/topo_4p3l_n2.xml
new file mode 100644
index 000000000..656a271d2
--- /dev/null
+++ b/tools/topo_expl/models/topo_4p3l_n2.xml
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tools/topo_expl/models/topo_4p3l_n2_1.xml b/tools/topo_expl/models/topo_4p3l_n2_1.xml
new file mode 100644
index 000000000..b1943a320
--- /dev/null
+++ b/tools/topo_expl/models/topo_4p3l_n2_1.xml
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tools/topo_expl/models/topo_4p3l_n4.xml b/tools/topo_expl/models/topo_4p3l_n4.xml
new file mode 100644
index 000000000..5faafa55e
--- /dev/null
+++ b/tools/topo_expl/models/topo_4p3l_n4.xml
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tools/topo_expl/topo_expl.cpp b/tools/topo_expl/topo_expl.cpp
index 338e63b57..ff283cc5a 100644
--- a/tools/topo_expl/topo_expl.cpp
+++ b/tools/topo_expl/topo_expl.cpp
@@ -108,6 +108,12 @@ NodeModelDesc model_descs[] = {
{4, "topo_8p_rome_n2_2.xml", "4 nodes 8 VEGA20 Rome NPS=2 Alt. Model 2 NET/IF"},
{4, "topo_8p_ts1_n4_2.xml", "4 nodes 8 VEGA20 TS1 NPS=4 3 NET/IF"},
{1, "topo_8p_rome_n4.xml", "single node 8 VEGA20 Rome NPS=4"},
+ {1, "topo_4p3l_n2.xml", "single node 8 gfx908 Rome"},
+ {4, "topo_4p3l_n2.xml", "4 nodes 8 gfx908 Rome"},
+ {1, "topo_4p3l_n4.xml", "single node 8 gfx908 Rome NPS=4"},
+ {4, "topo_4p3l_n4.xml", "4 nodes 8 gfx908 Rome NPS=4"},
+ {1, "topo_4p3l_n2_1.xml", "single node 8 gfx908 Rome"},
+ {4, "topo_4p3l_n2_1.xml", "4 nodes 8 gfx908 Rome"},
};
int main(int argc,char* argv[])