Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Placer class #2813

Open
wants to merge 27 commits into
base: master
Choose a base branch
from
Open

Placer class #2813

wants to merge 27 commits into from

Conversation

soheilshahrouz
Copy link
Contributor

Add Placer class that encapsulates all objects and variable that are placement instance specific. Shared objects like delay model are still constructed outside this class and shared across all Placer instances.

Don't look at the code yet; it's a mess! :)

@github-actions github-actions bot added VPR VPR FPGA Placement & Routing Tool libarchfpga Library for handling FPGA Architecture descriptions lang-cpp C/C++ code external_libs labels Nov 18, 2024
/* Allocated here because it goes into timing critical code where each memory allocation is expensive */
IntraLbPbPinLookup pb_gpin_lookup(device_ctx.logical_block_types);
//Enables fast look-up of atom pins connect to CLB pins
ClusteredPinAtomPinsLookup netlist_pin_lookup(cluster_ctx.clb_nlist, atom_ctx.nlist, pb_gpin_lookup);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vaughnbetz
pb_gpin_lookup and netlist_pin_lookup are initialized after the placement timer starts in line 215. Is their initialization times intentionally included in the total placement time?

@soheilshahrouz
Copy link
Contributor Author

titan_quick_qor

Metric master.txt feature.txt
vtr_flow_elapsed_time 1 0.9991044425
num_LAB 1 1
num_DSP 1 1
num_M9K 1 1
num_M144K 1 1
max_vpr_mem 1 1.000029452
num_pre_packed_blocks 1 1
num_post_packed_blocks 1 1
device_grid_tiles 1 1
pack_time 1 0.9947880721
placed_wirelength_est 1 1
place_time 1 1.000120706
placed_CPD_est 1 1
routed_wirelength 1 1
critical_path_delay 1 1
geomean_nonvirtual_intradomain_critical_path_delay 1 1
crit_path_route_time 1 0.9949575309

@soheilshahrouz soheilshahrouz changed the title [WIP] Placer class Placer class Nov 22, 2024
Copy link
Contributor

@AlexandreSinger AlexandreSinger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @soheilshahrouz these changes look great to me! I left some minor comments. I am excited to see this PR merged!

vpr/src/place/place.cpp Outdated Show resolved Hide resolved
vpr/src/place/place.cpp Outdated Show resolved Hide resolved
vpr/src/place/place.cpp Outdated Show resolved Hide resolved
vpr/src/place/place_log_util.cpp Show resolved Hide resolved
costs.cost, costs.bb_cost, costs.timing_cost, placer_opts.place_chan_width);

// Draw the initial placement
update_screen(ScreenUpdatePriority::MAJOR, msg_.data(), PLACEMENT, timing_info);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is drawing code in the logging utility? Was this intentional? Or is this just printing the initial placement stats to the screen? If it is the latter, I recommend updating the comment above this line.

vpr/src/place/placer.h Outdated Show resolved Hide resolved
vpr/src/place/placer.h Outdated Show resolved Hide resolved
vpr/src/place/placer.cpp Show resolved Hide resolved
vpr/src/place/placer.cpp Outdated Show resolved Hide resolved
vpr/src/place/placer.cpp Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
external_libs lang-cpp C/C++ code libarchfpga Library for handling FPGA Architecture descriptions libvtrutil VPR VPR FPGA Placement & Routing Tool
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants