HeAP: Make log output more consistent
Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
parent
49e827a9b4
commit
25e3350675
@ -242,6 +242,7 @@ class SAPlacer
|
|||||||
}
|
}
|
||||||
require_legal = false;
|
require_legal = false;
|
||||||
diameter = 3;
|
diameter = 3;
|
||||||
|
log_info("Running simulated annealing placer for refinement.\n");
|
||||||
}
|
}
|
||||||
auto saplace_start = std::chrono::high_resolution_clock::now();
|
auto saplace_start = std::chrono::high_resolution_clock::now();
|
||||||
|
|
||||||
|
@ -148,7 +148,8 @@ class HeAPPlacer
|
|||||||
seed_placement();
|
seed_placement();
|
||||||
update_all_chains();
|
update_all_chains();
|
||||||
wirelen_t hpwl = total_hpwl();
|
wirelen_t hpwl = total_hpwl();
|
||||||
log_info("Initial placer starting hpwl = %d\n", int(hpwl));
|
log_info("Creating initial analytic placement for %d cells, random placement wirelen = %d.\n",
|
||||||
|
int(place_cells.size()), int(hpwl));
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
setup_solve_cells();
|
setup_solve_cells();
|
||||||
auto solve_startt = std::chrono::high_resolution_clock::now();
|
auto solve_startt = std::chrono::high_resolution_clock::now();
|
||||||
@ -161,7 +162,7 @@ class HeAPPlacer
|
|||||||
update_all_chains();
|
update_all_chains();
|
||||||
|
|
||||||
hpwl = total_hpwl();
|
hpwl = total_hpwl();
|
||||||
log_info("Initial placer iter %d, hpwl = %d\n", i, int(hpwl));
|
log_info(" at initial placer iter %d, wirelen = %d\n", i, int(hpwl));
|
||||||
}
|
}
|
||||||
|
|
||||||
wirelen_t solved_hpwl = 0, spread_hpwl = 0, legal_hpwl = 0, best_hpwl = std::numeric_limits<wirelen_t>::max();
|
wirelen_t solved_hpwl = 0, spread_hpwl = 0, legal_hpwl = 0, best_hpwl = std::numeric_limits<wirelen_t>::max();
|
||||||
@ -190,6 +191,7 @@ class HeAPPlacer
|
|||||||
|
|
||||||
heap_runs.push_back(all_celltypes);
|
heap_runs.push_back(all_celltypes);
|
||||||
// The main HeAP placer loop
|
// The main HeAP placer loop
|
||||||
|
log_info("Running main analytical placer.\n");
|
||||||
while (stalled < 5 && (solved_hpwl <= legal_hpwl * 0.8)) {
|
while (stalled < 5 && (solved_hpwl <= legal_hpwl * 0.8)) {
|
||||||
// Alternate between particular Bel types and all bels
|
// Alternate between particular Bel types and all bels
|
||||||
for (auto &run : heap_runs) {
|
for (auto &run : heap_runs) {
|
||||||
@ -225,9 +227,10 @@ class HeAPPlacer
|
|||||||
|
|
||||||
legal_hpwl = total_hpwl();
|
legal_hpwl = total_hpwl();
|
||||||
auto run_stopt = std::chrono::high_resolution_clock::now();
|
auto run_stopt = std::chrono::high_resolution_clock::now();
|
||||||
log_info("Iter %d type %s: HPWL solved = %d, spread = %d, legal = %d; time = %.02fs\n", iter,
|
log_info(" at iteration #%d, type %s: wirelen solved = %d, spread = %d, legal = %d; time = %.02fs\n",
|
||||||
(run.size() > 1 ? "ALL" : run.begin()->c_str(ctx)), int(solved_hpwl), int(spread_hpwl),
|
iter + 1, (run.size() > 1 ? "ALL" : run.begin()->c_str(ctx)), int(solved_hpwl),
|
||||||
int(legal_hpwl), std::chrono::duration<double>(run_stopt - run_startt).count());
|
int(spread_hpwl), int(legal_hpwl),
|
||||||
|
std::chrono::duration<double>(run_stopt - run_startt).count());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->timing_driven)
|
if (ctx->timing_driven)
|
||||||
|
Loading…
Reference in New Issue
Block a user