DfX-NYUAD / Corblivar

Corblivar is a simulated-annealing-based floorplanning suite for 3D ICs
GNU General Public License v3.0
26 stars 12 forks source link

Where is the run9.sh ? #3

Closed wyclike closed 5 months ago

wyclike commented 5 months ago

In the readme.md ,you mention many times about the run9.sh, but i can't find that in /exp

jknechtel commented 5 months ago

You can try any other run*.sh script. The index just refers to different cases/settings.

wyclike commented 5 months ago

Thank you for the information. I would like to inquire about the role of HotSpot in the Corblivar methodology. Is it correct to assume that every time Corblivar generates a floorplan, it invokes HotSpot once to analyze thermal profiles? And what is the relationship between the hotSpot and your Octave?

jknechtel commented 5 months ago

Sure, no problem :)

First, HotSpot is used for various things, depending on which binary version of Corblivar you're calling; see also the README (search for HotSpot).

Second, for the default use case of 2D/3D floorplaning with Corblivar, Hotspot is not invoked every time a new floorplan is generate as that would be computationally too expansive. Instead, Corblivar employs internally a method for fast computation/estimation of thermal maps, called "power blurring". See the README and the TCAD paper for more details on that method.

Now, again for the default case of 2D/3D floorplanning, HotSpot is still used for two things: 1) for parameter tuning for power blurring, and 2) for final verification of the thermal profiles. Note that both things are optional; especially if you're not interested in thermal considerations, you wouldn't need HotSpot at all. Few more details on these two things are as follows. 1) For that, the Octave code is used. Basically, few simple floorplans are obtained as reference points, HotSpot is run, and then a search algorithm tries to obtain a best match for power-blurring results and the HotSpot results through tuning of the power-blurring paramater.s Please see the README for details on that, around the paragraph of "The Octave scripts work roughly like this" as well as the PDF in the doc/ folder. 2) This can be done once Corblivar is done, via exp/HotSpot.sh

Hope this helps!

jknechtel commented 5 months ago

To add further to the point 1): it suffices to do this parameter tuning via the Octave code once for any given benchmark and technology configuration (like, how many 3D layers, heatsink parameters, power densities, etc.) You could then explore different floorplan solutions, by re-running Corblivar many times (while possibly tuning the SA parameters) and would still make valid use of the obtained parameters. This is because Octave writes the obtained parameters into the conf file. It's a one-time effort basically. (Of course, that search algorithm isn't perfect either; if you're not happy with the match b/w power blurring and HotSpot, you could still re-run Octave as well.)

Naturally, this implies that you want to use and keep separate config files for separate benchmarks and tech settings. See exp/config/* for such files for various benchmarks and scenarios.