MIRALab-USTC / ChiPBench

ChiPBench:Benchmarking End-to-End Performance of AI-based Chip Placement Algorithms
BSD 3-Clause "New" or "Revised" License
22 stars 1 forks source link

Segmentation fault #6

Open ybj-catherine opened 4 days ago

ybj-catherine commented 4 days ago

Dear Authors, There is a "Segmentation fault" when using lefdef2bookshelf.py:

(DreamPlace) [user@head2 install]$ python lefdef2bookshelf.py test/openroad/ariane136.json

Processed file saved as benchmarks/openroad/ariane136/def/2_floorplan.def [INFO ] DREAMPlace - parameters = {'aux_input': '', 'lef_input': 'benchmarks/openroad/ariane136/lef/fakeram45_256x16.lef', 'def_input': 'benchmarks/openroad/ariane136/def/2_floorplan.def', 'verilog_input': 'benchmarks/openroad/ariane136/rtl/macros.v', 'gpu': 1, 'num_bins_x': 0, 'num_bins_y': 0, 'global_place_stages': [OrderedDict([('num_bins_x', 0), ('num_bins_y', 0), ('iteration', 1000), ('learning_rate', 0.01), ('wirelength', 'weighted_average'), ('optimizer', 'nesterov'), ('Llambda_density_weight_iteration', 1), ('Lsub_iteration', 1)])], 'target_density': 0.8, 'density_weight': 8e-05, 'random_seed': 1000, 'result_dir': 'results', 'scale_factor': 0.0, 'shift_factor': [0.0, 0.0], 'ignore_net_degree': 100, 'gp_noise_ratio': 0.025, 'enable_fillers': 1, 'global_place_flag': 1, 'legalize_flag': 1, 'abacus_legalize_flag': 1, 'detailed_place_flag': 0, 'stop_overflow': 0.1, 'dtype': 'float32', 'detailed_place_engine': '', 'detailed_place_command': '-nolegal -nodetail', 'plot_flag': 0, 'RePlAce_ref_hpwl': 350000, 'RePlAce_LOWER_PCOF': 0.95, 'RePlAce_UPPER_PCOF': 1.05, 'gamma': 4.0, 'RePlAce_skip_energy_flag': 0, 'random_center_init_flag': 1, 'sort_nets_by_degree': 0, 'num_threads': 8, 'dump_global_place_solution_flag': 0, 'dump_legalize_solution_flag': 0, 'routability_opt_flag': 0, 'route_num_bins_x': 512, 'route_num_bins_y': 512, 'node_area_adjust_overflow': 0.15, 'max_num_area_adjust': 3, 'adjust_nctugr_area_flag': 0, 'adjust_rudy_area_flag': 1, 'adjust_pin_area_flag': 1, 'area_adjust_stop_ratio': 0.01, 'route_area_adjust_stop_ratio': 0.01, 'pin_area_adjust_stop_ratio': 0.05, 'unit_horizontal_capacity': 1.5625, 'unit_vertical_capacity': 1.45, 'unit_pin_capacity': 0.058, 'max_route_opt_adjust_rate': 2.0, 'route_opt_adjust_exponent': 2.0, 'pin_stretch_ratio': 1.414213562, 'max_pin_opt_adjust_rate': 1.5, 'deterministic_flag': 0, 'timing_opt_flag': 0, 'early_lib_input': '', 'late_lib_input': '', 'lib_input': 'benchmarks/openroad/ariane136/lib/fakeram45_256x16.lib', 'sdc_input': '', 'wire_resistance_per_micron': 0, 'wire_capacitance_per_micron': 0, 'net_weighting_scheme': 'lilith', 'momentum_decay_factor': 0.5, 'enable_net_weighting': 1, 'max_net_weight': 'inf', 'use_bb': 0, 'macro_place_flag': 0, 'two_stage_density_scaler': 1000, 'macro_halo_x': 0, 'macro_halo_y': 0, 'design_name': 'ariane136'} [INFO ] lef_input = benchmarks/openroad/ariane136/lef/fakeram45_256x16.lef [INFO ] def_input = benchmarks/openroad/ariane136/def/2_floorplan.def [INFO ] verilog_input = benchmarks/openroad/ariane136/rtl/macros.v [INFO ] bookshelf_aux_input = [INFO ] bookshelf_pl_input = [INFO ] def_size_input = [INFO ] def_output = 2_floorplan-out.def [INFO ] rpt_output = [INFO ] target_util = 0 [INFO ] max_displace = 0 [INFO ] bin size = (10, 10) #rows [INFO ] sbin size = (5, 5) #rows [INFO ] bin_space_threshold = 0.2 [INFO ] abu = 2,10 5,5 10,2 20,1 [INFO ] def_ignore_cells = [INFO ] macro_obs_aware_layers = [INFO ] enable_place = true [INFO ] enable_legalize = true [INFO ] evaluate_overlap = false [INFO ] move_multi_row_cell = true [INFO ] align_power_line = true [INFO ] cluster_cell = false [INFO ] sort_nets_by_degree = false [INFO ] file_format = DEF [INFO ] max_iters = 6 [INFO ] reading benchmarks/openroad/ariane136/lef/fakeram45_256x16.lef [INFO ] reading benchmarks/openroad/ariane136/def/2_floorplan.def [INFO ] detect 5496 rows, 159606 components, 495 IO pins, 175303 nets, 0 blockages Segmentation fault

and my ariane136.json is:

{ "lef_input" : "benchmarks/openroad/ariane136/lef/fakeram45_256x16.lef", "def_input" : "benchmarks/openroad/ariane136/def/2_floorplan.def", "verilog_input" : "benchmarks/openroad/ariane136/rtl/macros.v", "lib_input": "benchmarks/openroad/ariane136/lib/fakeram45_256x16.lib" }

I've used the latest version of DREAMPlace, and it seems like the error comes from when reading "benchmarks/openroad/ariane136/def/2_floorplan.def".

Is there any clues to solve this problem? Thank you!

ZhaojieTu commented 4 days ago

Dear Authors, There is a "Segmentation fault" when using lefdef2bookshelf.py:

(DreamPlace) [user@head2 install]$ python lefdef2bookshelf.py test/openroad/ariane136.json

Processed file saved as benchmarks/openroad/ariane136/def/2_floorplan.def [INFO ] DREAMPlace - parameters = {'aux_input': '', 'lef_input': 'benchmarks/openroad/ariane136/lef/fakeram45_256x16.lef', 'def_input': 'benchmarks/openroad/ariane136/def/2_floorplan.def', 'verilog_input': 'benchmarks/openroad/ariane136/rtl/macros.v', 'gpu': 1, 'num_bins_x': 0, 'num_bins_y': 0, 'global_place_stages': [OrderedDict([('num_bins_x', 0), ('num_bins_y', 0), ('iteration', 1000), ('learning_rate', 0.01), ('wirelength', 'weighted_average'), ('optimizer', 'nesterov'), ('Llambda_density_weight_iteration', 1), ('Lsub_iteration', 1)])], 'target_density': 0.8, 'density_weight': 8e-05, 'random_seed': 1000, 'result_dir': 'results', 'scale_factor': 0.0, 'shift_factor': [0.0, 0.0], 'ignore_net_degree': 100, 'gp_noise_ratio': 0.025, 'enable_fillers': 1, 'global_place_flag': 1, 'legalize_flag': 1, 'abacus_legalize_flag': 1, 'detailed_place_flag': 0, 'stop_overflow': 0.1, 'dtype': 'float32', 'detailed_place_engine': '', 'detailed_place_command': '-nolegal -nodetail', 'plot_flag': 0, 'RePlAce_ref_hpwl': 350000, 'RePlAce_LOWER_PCOF': 0.95, 'RePlAce_UPPER_PCOF': 1.05, 'gamma': 4.0, 'RePlAce_skip_energy_flag': 0, 'random_center_init_flag': 1, 'sort_nets_by_degree': 0, 'num_threads': 8, 'dump_global_place_solution_flag': 0, 'dump_legalize_solution_flag': 0, 'routability_opt_flag': 0, 'route_num_bins_x': 512, 'route_num_bins_y': 512, 'node_area_adjust_overflow': 0.15, 'max_num_area_adjust': 3, 'adjust_nctugr_area_flag': 0, 'adjust_rudy_area_flag': 1, 'adjust_pin_area_flag': 1, 'area_adjust_stop_ratio': 0.01, 'route_area_adjust_stop_ratio': 0.01, 'pin_area_adjust_stop_ratio': 0.05, 'unit_horizontal_capacity': 1.5625, 'unit_vertical_capacity': 1.45, 'unit_pin_capacity': 0.058, 'max_route_opt_adjust_rate': 2.0, 'route_opt_adjust_exponent': 2.0, 'pin_stretch_ratio': 1.414213562, 'max_pin_opt_adjust_rate': 1.5, 'deterministic_flag': 0, 'timing_opt_flag': 0, 'early_lib_input': '', 'late_lib_input': '', 'lib_input': 'benchmarks/openroad/ariane136/lib/fakeram45_256x16.lib', 'sdc_input': '', 'wire_resistance_per_micron': 0, 'wire_capacitance_per_micron': 0, 'net_weighting_scheme': 'lilith', 'momentum_decay_factor': 0.5, 'enable_net_weighting': 1, 'max_net_weight': 'inf', 'use_bb': 0, 'macro_place_flag': 0, 'two_stage_density_scaler': 1000, 'macro_halo_x': 0, 'macro_halo_y': 0, 'design_name': 'ariane136'} [INFO ] lef_input = benchmarks/openroad/ariane136/lef/fakeram45_256x16.lef [INFO ] def_input = benchmarks/openroad/ariane136/def/2_floorplan.def [INFO ] verilog_input = benchmarks/openroad/ariane136/rtl/macros.v [INFO ] bookshelf_aux_input = [INFO ] bookshelf_pl_input = [INFO ] def_size_input = [INFO ] def_output = 2_floorplan-out.def [INFO ] rpt_output = [INFO ] target_util = 0 [INFO ] max_displace = 0 [INFO ] bin size = (10, 10) #rows [INFO ] sbin size = (5, 5) #rows [INFO ] bin_space_threshold = 0.2 [INFO ] abu = 2,10 5,5 10,2 20,1 [INFO ] def_ignore_cells = [INFO ] macro_obs_aware_layers = [INFO ] enable_place = true [INFO ] enable_legalize = true [INFO ] evaluate_overlap = false [INFO ] move_multi_row_cell = true [INFO ] align_power_line = true [INFO ] cluster_cell = false [INFO ] sort_nets_by_degree = false [INFO ] file_format = DEF [INFO ] max_iters = 6 [INFO ] reading benchmarks/openroad/ariane136/lef/fakeram45_256x16.lef [INFO ] reading benchmarks/openroad/ariane136/def/2_floorplan.def [INFO ] detect 5496 rows, 159606 components, 495 IO pins, 175303 nets, 0 blockages Segmentation fault

and my ariane136.json is:

{ "lef_input" : "benchmarks/openroad/ariane136/lef/fakeram45_256x16.lef", "def_input" : "benchmarks/openroad/ariane136/def/2_floorplan.def", "verilog_input" : "benchmarks/openroad/ariane136/rtl/macros.v", "lib_input": "benchmarks/openroad/ariane136/lib/fakeram45_256x16.lib" }

I've used the latest version of DREAMPlace, and it seems like the error comes from when reading "benchmarks/openroad/ariane136/def/2_floorplan.def".

Is there any clues to solve this problem? Thank you!

Hello,

Thank you for raising the issue. The problem you're encountering is due to missing complete LEF and LIB file entries in the JSON file.

The correct lef_input in the JSON should be:

["lef/NangateOpenCellLibrary.tech.lef", "lef/NangateOpenCellLibrary.macro.lef", "lef/fakeram45_256x16.lef"]

Similarly, the lib_input should be:

["NangateOpenCellLibrary_typical.lib", "fakeram45_256x16.lib"]

Please note that the files fakeram45_256x16.lef and fakeram45_256x16.lib are specific to this particular case. Additionally, you still need the global LEF and LIB files for the setup.

I hope this helps resolve your issue. Let me know if you have any further questions!

ybj-catherine commented 3 days ago

thanks for your reply! I successfully generated the bookshelf format