docs: Extract and expand Design Space Exploration guide - #11092
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces a new comprehensive guide on Design Space Exploration (DSE) and automated tuning in OpenROAD, linking to it from the Developer Guide. It also optimizes the handling of unusable sites in the global placer (src/gpl/src/placerBase.cpp) by merging vertically adjacent blocked sites into larger 2D dummy instances, which significantly reduces the total number of dummy instances created during placement. Test outputs have been updated to reflect this optimization. There are no review comments, and I have no feedback to provide.
Extracts DSE optimization function theory, early-stopping strategies, rung management (ladder of estimates), custom signal misconceptions, and framework inversion concepts into a dedicated DesignSpaceExploration.md guide. Also includes a Literature & Prior Art section connecting these EDA DSE methods to Multi-Fidelity Optimization (MFO) and Hyperparameter Optimization (ASHA/Hyperband). DeveloperGuide.md now correctly focuses strictly on the core flow futility policy for developers, with a link out to the new comprehensive guide. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
2e5cc39 to
6571b30
Compare
|
@maliberty This background will make it easier to understand the motivation for the various single concern PRs I have in flight and I think it is good framing for autotuner. It also manages expecations for what the autotuner, OpenROAD+ORFS can do and what the user must do for DSE(design space exploration). Today global placement is stuck indefinitely in O(n^big) on linked lists, I have patches to take that down to 11 hours and further down to << 2 hours. This is done in a way that doesn't compromise the tapeout use-case and mnimizes the cognitive load for users and is congruent with POLA. |
|
@maliberty Yes: this was written by AI based on my input, but I think it reads reasonably well. Not too flowery or a wall of text and it vendors in context that I think is necessary. I shall take any insult to this written text as an insult to my inferior to AI writing skills here, I can't do better myself. 🤠 |
|
The prose is fine but my concern is about presenting one approach/opinion as global fact.
I would be happier with this being prefaced with you stating it is your experience rather than the global recommendation of OpenROAD. |
Address PR comments by clarifying the text is about an advanced use-case and descriptive in nature, rather than an overarching rule to be strictly followed by all OpenROAD users. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
|
@maliberty That is very fair feedback. I definitely don't want to tell others how to best do what is best for them—they know their own requirements best, and the standard flow with standard metrics like fmax is clearly the right path for many. If we tell people what to do or think, they will naturally resist, which is the opposite of my goal here. My aim is to provide descriptive background material for a specific, advanced use-case (large-scale autotuning). Having this context documented means that when I submit future PRs (like addressing the O(n^big) bottlenecks in global placement), everybody can agree on the context. It saves us from having to re-litigate why these changes are valuable and congruent with OpenROAD's broader goals. I want to avoid adding a disclaimer that this is "just my experience," as that signals the document can be safely ignored as a personal anecdote rather than a valid, documented use-case. Instead, I have pushed an update that shifts the tone from prescriptive (telling people what they must do) to descriptive (explaining how advanced DSE frameworks operate). I've softened the absolute statements you highlighted, removed words like "must" and "encouraged," and added a preface clarifying that the standard flow and metrics are perfectly fine for general use. |
|
@MrAMS Since you've done DSE studies and are familiar with this domain, I thought you might be interested in this. Additionally, if you are interested in calculating the floorplan based on synthesis results—rather than trying to drive those guesses purely via DSE input parameters—that is possible too. In my experience, I've found that core utilization can drop because the RTL doesn't grow linearly. Because of this, I prefer to start on a rung with a more generous area until I converge on an input domain that is somewhat close to the target, and only then try to tighten the floorplan on the next rung. |
0ce9ae9 to
650b7a3
Compare
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
650b7a3 to
e4387f4
Compare
Extracts DSE architectural patterns and theories into a dedicated
DesignSpaceExploration.mdfile to keepDeveloperGuide.mdfocused on core futility policies.