Fix visualization
This commit is contained in:
parent
1d67a58479
commit
92bdd77be5
@ -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));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 *
|
||||||
|
|||||||
@ -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)
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user