Skip to content

Commit 06beac6

Browse files
Merge pull request #3168 from AlexandreSinger/feature-report-router-lookahead
[RouterLookahead] Added Preamble Section to Profile Report
2 parents 9102e20 + 3609e8a commit 06beac6

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)