2024-04-29 11:09:24 +08:00
|
|
|
from .get_design_params import get_single_design_params, get_custom_design_params, get_custom_json_params
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def find_design_params(args, logger, placement=None):
|
|
|
|
|
if args.custom_path != "":
|
|
|
|
|
params = get_custom_design_params(args)
|
|
|
|
|
elif args.custom_json != "":
|
2024-05-15 17:05:07 +08:00
|
|
|
params = get_custom_json_params(args, logger)
|
2024-04-29 11:09:24 +08:00
|
|
|
else:
|
|
|
|
|
params = get_single_design_params(
|
|
|
|
|
args.dataset_root, args.dataset, args.design_name, placement
|
|
|
|
|
)
|
|
|
|
|
log_design_params(logger, params)
|
|
|
|
|
setup_design_args(args)
|
|
|
|
|
return params
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def log_design_params(logger, params: dict):
|
|
|
|
|
content = "Design Info:\n"
|
|
|
|
|
num_items = 0
|
|
|
|
|
if "benchmark" in params.keys():
|
|
|
|
|
content += f"benchmark: {params['benchmark']}\n"
|
|
|
|
|
num_items += 1
|
|
|
|
|
if "design_name" in params.keys():
|
|
|
|
|
content += f"design_name: {params['design_name']}\n"
|
|
|
|
|
num_items += 1
|
|
|
|
|
for key, value in params.items():
|
|
|
|
|
if key == "design_name" or key == "benchmark":
|
|
|
|
|
continue
|
|
|
|
|
content += f"{key}: {value}"
|
|
|
|
|
if num_items < len(params) - 1:
|
|
|
|
|
content += "\n"
|
|
|
|
|
num_items += 1
|
|
|
|
|
logger.info(content)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def setup_design_args(args):
|
2022-10-20 22:46:17 +08:00
|
|
|
if args.design_name in ["adaptec1", "bigblue1"]:
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 512
|
|
|
|
|
args.target_density = 1.0
|
|
|
|
|
elif args.design_name in ["adaptec2", "adaptec3", "adaptec4", "bigblue2"]:
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 1024
|
|
|
|
|
args.target_density = 1.0
|
|
|
|
|
elif args.design_name in ["bigblue3", "bigblue4"]:
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 2048
|
|
|
|
|
args.target_density = 1.0
|
2024-06-05 11:12:55 +08:00
|
|
|
elif args.design_name in ["adaptec5"]:
|
|
|
|
|
args.target_density = 0.5
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 1024
|
|
|
|
|
elif args.design_name in ["newblue1"]:
|
|
|
|
|
args.target_density = 0.8
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 512
|
|
|
|
|
elif args.design_name in ["newblue2"]:
|
|
|
|
|
args.target_density = 0.9
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 1024
|
|
|
|
|
elif args.design_name in ["newblue3"]:
|
|
|
|
|
args.target_density = 0.8
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 2048
|
|
|
|
|
elif args.design_name in ["newblue4"]:
|
|
|
|
|
args.target_density = 0.5
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 1024
|
|
|
|
|
elif args.design_name in ["newblue5"]:
|
|
|
|
|
args.target_density = 0.5
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 1024
|
|
|
|
|
elif args.design_name in ["newblue6"]:
|
|
|
|
|
args.target_density = 0.8
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 2048
|
|
|
|
|
elif args.design_name in ["newblue7"]:
|
|
|
|
|
args.target_density = 0.8
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 2048
|
2022-10-20 22:46:17 +08:00
|
|
|
elif args.design_name in ["mgc_des_perf_1"]:
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 512
|
|
|
|
|
args.target_density = 0.91
|
|
|
|
|
elif args.design_name in ["mgc_fft_1"]:
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 512
|
|
|
|
|
args.target_density = 0.835
|
|
|
|
|
elif args.design_name in ["mgc_fft_2"]:
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 512
|
|
|
|
|
args.target_density = 0.65
|
|
|
|
|
elif args.design_name in ["mgc_fft_a"]:
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 512
|
|
|
|
|
args.target_density = 0.5
|
|
|
|
|
elif args.design_name in ["mgc_fft_b"]:
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 512
|
|
|
|
|
args.target_density = 0.6
|
|
|
|
|
elif args.design_name in ["mgc_matrix_mult_1"]:
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 512
|
|
|
|
|
args.target_density = 0.802
|
|
|
|
|
elif args.design_name in ["mgc_matrix_mult_2"]:
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 512
|
|
|
|
|
args.target_density = 0.8
|
|
|
|
|
elif args.design_name in ["mgc_matrix_mult_a"]:
|
|
|
|
|
args.num_bin_x = args.num_bin_y = 512
|
|
|
|
|
args.target_density = 0.6
|
|
|
|
|
elif args.design_name in ["mgc_superblue12"]:
|
|
|
|
|
args.num_bin_x, args.num_bin_y = 1024, 1024
|
|
|
|
|
args.target_density = 0.65
|
|
|
|
|
elif args.design_name in ["mgc_superblue14"]:
|
|
|
|
|
args.num_bin_x, args.num_bin_y = 512, 512
|
|
|
|
|
args.target_density = 0.56
|
|
|
|
|
elif args.design_name in ["mgc_superblue19"]:
|
|
|
|
|
args.num_bin_x, args.num_bin_y = 512, 512
|
|
|
|
|
args.target_density = 0.53
|
2023-04-06 13:34:26 +08:00
|
|
|
elif args.design_name in ["mgc_des_perf_a"]:
|
|
|
|
|
args.num_bin_x, args.num_bin_y = 512, 512
|
|
|
|
|
args.target_density = 0.429
|
|
|
|
|
elif args.design_name in ["mgc_des_perf_b"]:
|
|
|
|
|
args.num_bin_x, args.num_bin_y = 512, 512
|
|
|
|
|
args.target_density = 0.497
|
|
|
|
|
elif args.design_name in ["mgc_edit_dist_a"]:
|
|
|
|
|
args.num_bin_x, args.num_bin_y = 512, 512
|
|
|
|
|
args.target_density = 0.455
|
|
|
|
|
elif args.design_name in ["mgc_matrix_mult_b"]:
|
|
|
|
|
args.num_bin_x, args.num_bin_y = 512, 512
|
|
|
|
|
args.target_density = 0.60
|
|
|
|
|
elif args.design_name in ["mgc_matrix_mult_c"]:
|
|
|
|
|
args.num_bin_x, args.num_bin_y = 512, 512
|
|
|
|
|
args.target_density = 0.60
|
|
|
|
|
elif args.design_name in ["mgc_pci_bridge32_a"]:
|
|
|
|
|
args.num_bin_x, args.num_bin_y = 512, 512
|
|
|
|
|
args.target_density = 0.384
|
|
|
|
|
elif args.design_name in ["mgc_pci_bridge32_b"]:
|
|
|
|
|
args.num_bin_x, args.num_bin_y = 512, 512
|
|
|
|
|
args.target_density = 0.143
|
|
|
|
|
elif args.design_name in ["mgc_superblue11_a"]:
|
|
|
|
|
args.num_bin_x, args.num_bin_y = 512, 512
|
|
|
|
|
args.target_density = 0.65
|
|
|
|
|
elif args.design_name in ["mgc_superblue16_a"]:
|
|
|
|
|
args.num_bin_x, args.num_bin_y = 512, 512
|
|
|
|
|
args.target_density = 0.55
|
2022-10-20 22:46:17 +08:00
|
|
|
return args
|