-
Notifications
You must be signed in to change notification settings - Fork 430
Adding routing struggle metric #3339
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
base: master
Are you sure you want to change the base?
Conversation
|
@vaughnbetz: I’ve included the results for various architectures and benchmarks. For most circuits, the routing struggle is zero, likely because, unlike in the paper, the utilization isn’t as high and there are ample routing resources available. Therefore, for the benchmarks included, this metric might not be particularly informative. However, I did test it on some architectures and circuits where the router struggled with congestion, and in those cases, the routing struggle metric was above 20% (as mentioned in the paper). I don’t have a strong preference about whether to include this metric or not; I just thought it might be interesting to have a metric that allows us to compare how difficult routing was across different architectures and circuits. |
AlexandreSinger
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some minor comments.
| // This is defined as an iteration that has more heap operations than the maximum of the previous three iterations. | ||
| int num_high_heap_ops_iters = 0; | ||
| if (per_iter_heap_ops_count.size() > 4) { | ||
| for (int i = 3; i < static_cast<int>(per_iter_heap_ops_count.size()); i++) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor comment for readability: Instead of casting the size into an int, why not make "i" and "j" both size_t type?
| // Calculates the number of iterations with high heap ops. | ||
| // This is defined as an iteration that has more heap operations than the maximum of the previous three iterations. | ||
| int num_high_heap_ops_iters = 0; | ||
| if (per_iter_heap_ops_count.size() > 4) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this if statement needed? Is there a problem when the size is equal to 4? The below for loop will not execute if the size is 3 or less anyways due to the upper-bound condition.
| // This ratio is defined as the number of iterations with high heap ops | ||
| // (i.e., iterations having more heap operations than the maximum of the previous three iterations | ||
| // divided by the total number of iterations. | ||
| // For more details, see TODO: routing struggle paper is not published yet. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Has the paper not been published yet?
WIP