Skip to content

Commit 3609e8a

Browse files
[RouterLookahead] Added Preamble Section to Profile Report
The router lookahead report may be confusing to people who are not familiar with what the profiling code is doing to make that report. Added a preamble section to the report which explains what is being performed and how to interpret the data.
1 parent 9102e20 commit 3609e8a

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

vpr/src/route/router_lookahead/router_lookahead_report.cpp

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,34 @@ static void profile_lookahead_overestimation(std::ofstream& os,
239239

240240
print_header(os, "Lookeahead Overestimation Report");
241241

242+
// To make the report file itself self-documenting, adding a preamble section
243+
// describing what is happening and why.
244+
os << "\n";
245+
os << "The following section of the report will profile the router lookahead\n";
246+
os << "by performing a set of trial routes from different source RR nodes to\n";
247+
os << "all target nodes. These routes are performed using no heuristic, thus\n";
248+
os << "they perform a Dijkstra path search.\n";
249+
os << "\n";
250+
os << "Each \'trial\' below performs a single-source-all-destination Dijkstra\n";
251+
os << "search from a random source node to all reachable targets. The routes\n";
252+
os << "produced by this search are analyzed to see how good the router lookahead\n";
253+
os << "is at estimating the cost of the paths (the heuristic cost) compared to\n";
254+
os << "the cost returned by the Dijkstra search (the \'actual\' path cost).\n";
255+
os << "\n";
256+
os << "Important metrics in the data below include the Mean Squared Error (MSE)\n";
257+
os << "between the estimated cost of the path and the actual cost of the path, and\n";
258+
os << "the worst overestimation of the cost of the path. The MSE measures how\n";
259+
os << "acccurate the router lookahead is. The more accurate the router lookahead\n";
260+
os << "is, the faster the router will be while maintaining good quality. The\n";
261+
os << "max overestimation is a measure of how admissible the router lookahead is\n";
262+
os << "as a heuristic in the router. The higher this number is, the worse the\n";
263+
os << "router results may be (in theory).\n";
264+
os << "\n";
265+
os << "The routes performed by this profiling use a fixed criticality of 1.0, so\n";
266+
os << "be aware that these results entirely focus on the delay component of the\n";
267+
os << "costs of the paths.\n";
268+
os << "\n";
269+
242270
// Variables for the profiling.
243271
// The target number of random source (sample) nodes to use.
244272
constexpr size_t target_num_trials = 100;
@@ -337,7 +365,7 @@ static void profile_lookahead_overestimation(std::ofstream& os,
337365
os << "=================================================================\n";
338366

339367
// Print the total maximum difference.
340-
os << vtr::string_fmt("Max difference between heuristic and actual: %.3g\n", max_difference);
368+
os << vtr::string_fmt("Worst overestimation between heuristic and actual: %.3g\n", max_difference);
341369

342370
// Print the overestimation per node type.
343371
for (size_t l = 0; l < max_overestimation_per_type.size(); l++) {

0 commit comments

Comments
 (0)