diff --git a/src/graph/search.cc b/src/graph/search.cc index a2c0d0b710..4701a7f45f 100644 --- a/src/graph/search.cc +++ b/src/graph/search.cc @@ -426,7 +426,7 @@ ncclResult_t ncclTopoSearchRecNet(struct ncclTopoSystem* system, struct ncclTopo for (int i = 0; inodes[GPU].count; i++) if (paths[i].count < paths[f].count) f = i; int t = 1 << 10; - NCCLCHECK(ncclTopoSearchTryGpu(system, graph, saveGraph, 0, backToNet, backToFirstRank, FORCED_ORDER_PCI, &t, NET, n, f)); + NCCLCHECK(ncclTopoSearchTryGpu(system, graph, saveGraph, 0, backToNet, backToFirstRank, (f == 0) ? FORCED_ORDER_PCI : 0, &t, NET, n, f)); // [RCCL] Event if forced order PCI is found, continue the search instead of ending early // if (t == -1) *time = -1; // [/RCCL] diff --git a/tools/scripts/topo_val.sh b/tools/scripts/topo_val.sh index 9afe237aa6..fe11d8b26e 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..46} +for i in {0..47} 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/Makefile b/tools/topo_expl/Makefile index fcf838d232..75bab55396 100644 --- a/tools/topo_expl/Makefile +++ b/tools/topo_expl/Makefile @@ -6,7 +6,7 @@ endif HIPCC = $(HIP_PATH)/bin/hipcc EXE = topo_expl -CXXFLAGS = -g -O3 -Iinclude -I../../src/include -I../../src/graph/ -DTOPO_EXPL -DENABLE_TRACE -lnuma +CXXFLAGS = -g -O3 -Iinclude -I../../src/include -I../../src/graph -I../../src -DTOPO_EXPL -DENABLE_TRACE -lnuma files = $(EXE).cpp model.cpp utils.cpp ../../src/graph/topo.cc ../../src/graph/rings.cc ../../src/graph/paths.cc ../../src/graph/trees.cc \ ../../src/graph/search.cc ../../src/graph/connect.cc ../../src/graph/tuning.cc ../../src/graph/xml.cc ../../src/misc/nvmlwrap_stub.cc diff --git a/tools/topo_expl/models/topo_8p_rome_pcie.xml b/tools/topo_expl/models/topo_8p_rome_pcie.xml new file mode 100644 index 0000000000..ff2521f48a --- /dev/null +++ b/tools/topo_expl/models/topo_8p_rome_pcie.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/topo_expl/topo_expl.cpp b/tools/topo_expl/topo_expl.cpp index 48709bb14a..ec10e0ed09 100644 --- a/tools/topo_expl/topo_expl.cpp +++ b/tools/topo_expl/topo_expl.cpp @@ -116,6 +116,7 @@ NodeModelDesc model_descs[] = { {4, "topo_4p3l_n2_1.xml", "4 nodes 8 gfx908 Rome"}, {1, "topo_8p_rome_n4_1.xml", "single node 8 gfx908 Rome NPS=4"}, {4, "topo_8p_rome_n4_1.xml", "4 nodes node 8 gfx908 Rome NPS=4"}, + {2, "topo_8p_rome_pcie.xml", "2 nodes node 8 VEGA20 PCIe"}, }; int main(int argc,char* argv[])