Fix visualization

This commit is contained in:
liulixinkerry 2023-06-19 21:35:05 +08:00
parent 1d67a58479
commit 92bdd77be5
4 changed files with 10 additions and 37 deletions

View File

@ -67,15 +67,15 @@ Drawer::Drawer(const std::vector<std::tuple<std::string, double, double, double,
if (type_to_rgba.find(ele_type) == type_to_rgba.end()) { if (type_to_rgba.find(ele_type) == type_to_rgba.end()) {
type_to_rgba.emplace(ele_type, std::make_tuple(0.878, 0.365, 0.365, 0.8)); type_to_rgba.emplace(ele_type, std::make_tuple(0.878, 0.365, 0.365, 0.8));
} }
ele_type = "doubleIOPin"; ele_type = "FloatIOPin";
if (type_to_rgba.find(ele_type) == type_to_rgba.end()) { if (type_to_rgba.find(ele_type) == type_to_rgba.end()) {
type_to_rgba.emplace(ele_type, std::make_tuple(0.878, 0.365, 0.365, 0.8)); type_to_rgba.emplace(ele_type, std::make_tuple(0.878, 0.365, 0.365, 0.8));
} }
ele_type = "doubleFix"; ele_type = "FloatFix";
if (type_to_rgba.find(ele_type) == type_to_rgba.end()) { if (type_to_rgba.find(ele_type) == type_to_rgba.end()) {
type_to_rgba.emplace(ele_type, std::make_tuple(0.878, 0.365, 0.365, 0.8)); type_to_rgba.emplace(ele_type, std::make_tuple(0.878, 0.365, 0.365, 0.8));
} }
ele_type = "doubleMov"; ele_type = "FloatMov";
if (type_to_rgba.find(ele_type) == type_to_rgba.end()) { if (type_to_rgba.find(ele_type) == type_to_rgba.end()) {
type_to_rgba.emplace(ele_type, std::make_tuple(0.082, 0.176, 0.208, 0.8)); type_to_rgba.emplace(ele_type, std::make_tuple(0.082, 0.176, 0.208, 0.8));
} }

View File

@ -256,6 +256,7 @@ def run_gr_and_fft_main(
def run_gr_and_fft(args, logger, data, rawdb, gpdb, ps, grdb=None, skip_m1_route=True, run_fft=False, visualize=False, report_gr_metrics_only=False, given_gr_params={}): def run_gr_and_fft(args, logger, data, rawdb, gpdb, ps, grdb=None, skip_m1_route=True, run_fft=False, visualize=False, report_gr_metrics_only=False, given_gr_params={}):
route_size = 512 route_size = 512
iteration = ps.iter - 1 # ps.iter is increased before running GR optimization
die_ratio = (data.__ori_die_hx__ - data.__ori_die_lx__) / (data.__ori_die_hy__ - data.__ori_die_ly__) die_ratio = (data.__ori_die_hx__ - data.__ori_die_lx__) / (data.__ori_die_hy__ - data.__ori_die_ly__)
route_xSize = route_size if die_ratio <= 1 else round(route_size / die_ratio) route_xSize = route_size if die_ratio <= 1 else round(route_size / die_ratio)
route_ySize = route_size if die_ratio >= 1 else round(route_size / die_ratio) route_ySize = route_size if die_ratio >= 1 else round(route_size / die_ratio)
@ -269,7 +270,7 @@ def run_gr_and_fft(args, logger, data, rawdb, gpdb, ps, grdb=None, skip_m1_route
gpugr.load_gr_params(gr_params) gpugr.load_gr_params(gr_params)
# 1.2) do GR # 1.2) do GR
logger.info("--------- Start GR in Iter: %d ---------" % ps.iter) logger.info("--------- Start GR in Iter: %d ---------" % iteration)
if grdb is None: if grdb is None:
grdb = gpugr.create_grdatabase(rawdb, gpdb) grdb = gpugr.create_grdatabase(rawdb, gpdb)
routeforce = gpugr.create_routeforce(grdb) routeforce = gpugr.create_routeforce(grdb)
@ -371,11 +372,11 @@ def run_gr_and_fft(args, logger, data, rawdb, gpdb, ps, grdb=None, skip_m1_route
title = "#OvflNets: %.2e, WL: %.2e, #Vias: %.2e\n#Shorts: %.2e, RC Hor: %.3f, RC Ver: %.3f " % ( title = "#OvflNets: %.2e, WL: %.2e, #Vias: %.2e\n#Shorts: %.2e, RC Hor: %.3f, RC Ver: %.3f " % (
numOvflNets, gr_wirelength, gr_numVias, gr_numShorts, rc_hor_mean, rc_ver_mean numOvflNets, gr_wirelength, gr_numVias, gr_numShorts, rc_hor_mean, rc_ver_mean
) )
draw_cg_fig(args, input_mat, (data.design_name, ps.iter, "cg_mapAll"), title) draw_cg_fig(args, input_mat, (data.design_name, iteration, "cg_mapAll"), title)
draw_cg_fig(args, cg_mapHV[0], (data.design_name, ps.iter, "cg_mapH"), title) draw_cg_fig(args, cg_mapHV[0], (data.design_name, iteration, "cg_mapH"), title)
draw_cg_fig(args, cg_mapHV[1], (data.design_name, ps.iter, "cg_mapV"), title) draw_cg_fig(args, cg_mapHV[1], (data.design_name, iteration, "cg_mapV"), title)
# draw_cg_fig(args, route_gradmat[0], (data.design_name, ps.iter, "route_gradmatX"), title) # draw_cg_fig(args, route_gradmat[0], (data.design_name, iteration, "route_gradmatX"), title)
# draw_cg_fig(args, route_gradmat[1], (data.design_name, ps.iter, "route_gradmatY"), title) # draw_cg_fig(args, route_gradmat[1], (data.design_name, iteration, "route_gradmatY"), title)
if report_gr_metrics_only: if report_gr_metrics_only:
return gr_metrics return gr_metrics

View File

@ -1,5 +1,4 @@
from .io_parser import IOParser from .io_parser import IOParser
from .timer import Timer
from .logger import setup_logger from .logger import setup_logger
from .visualization import * from .visualization import *
from .tools import * from .tools import *

View File

@ -1,27 +0,0 @@
import numpy as np
import time
from collections import deque
# timer
class Timer:
def __init__(self, interval=10):
self.value = 0.0
self.start = time.time()
self.buffer = deque(maxlen=interval)
def __enter__(self):
self.start = time.time()
def __exit__(self, exc_type, exc_val, exc_tb):
self.value = time.time() - self.start
self.buffer.append(self.value)
@property
def now(self):
"""Return the seconds elapsed since initializing this class"""
return time.time() - self.start
@property
def avg(self):
return np.mean(self.buffer, dtype=float)