Commit bc28de08 by sakundu

Added human macro placement results for MemPool Group and BlackParrot Quad-Core

Signed-off-by: sakundu <sakundu@ucsd.edu>
parent e85637d2
......@@ -4037,7 +4037,7 @@ In the following table we report the Kendall rank correlation coefficient for pr
**Circuit Training Baseline Result on “Our MemPool_Group-NanGate45_68”.**
We have trained CT to generate a macro placement for the [MemPool Group design](../../Flows/NanGate45/mempool_group/). For this experiment we use the NanGate45 enablement; the initial canvas size is generated by setting utilization to 68%. We use the default hyperparameters used for Ariane to train CT for bp_quad design. The number of hard macros in MemPool Group is 324, so we update [max_sequence_length](https://github.com/google-research/circuit_training/blob/6a76e327a70b5f0c9e3291b57c085688386da04e/circuit_training/learning/ppo_collect.py#L53) to 325 in [ppo_collect.py](https://github.com/google-research/circuit_training/blob/6a76e327a70b5f0c9e3291b57c085688386da04e/circuit_training/learning/ppo_collect.py#L53) and [sequence_length](https://github.com/google-research/circuit_training/blob/6a76e327a70b5f0c9e3291b57c085688386da04e/circuit_training/learning/train_ppo.py#L57) to 325 in [train_ppo.py](https://github.com/google-research/circuit_training/blob/6a76e327a70b5f0c9e3291b57c085688386da04e/circuit_training/learning/train_ppo.py#L57).
<a id="MemPoolGroup_NG45_68_CT"></a>
<table>
<thead>
<tr>
......@@ -4125,6 +4125,7 @@ We have trained CT to generate a macro placement for the [MemPool Group design](
<img width="300" src="./images/image51.png" alg="MemPool_Group_CT_Route">
</p>
<a id="MemPoolGroup_NG45_68_CMP"></a>
<table>
<thead>
<tr>
......@@ -4678,6 +4679,85 @@ We have run CT to generate macro placement for Ariane133, BlackParrot and MemPoo
<img width="300" src="./images/MemPool_Group_GF12_CT_Route.png" alg="MemPool_Group_GF12_CT_Route">
</p>
<a id="MemPool_Group_GF12_Human"></a>
- (Updated on December 21) The following macro placement is generated by [Sayak Kundu](mailto:sakundu@ucsd.edu) based on the tile configuration received from [Matheus Cavalcante](https://scholar.google.com/citations?user=AjcEhm8AAAAJ&hl=en), ETH Zürich and [Jiantao Liu](mailto:jil313@ucsd.edu).
<table>
<thead>
<tr>
<th colspan="10">MemPool Group-GF12-68% human macro placement</th>
</tr>
</thead>
<tbody>
<tr>
<td>Physical Design Stage</td>
<td>Core Area</td>
<td>Standard Cell Area</td>
<td>Macro Area</td>
<td>Total Power</td>
<td>Wirelength</td>
<td>WS</td>
<td>TNS</td>
<td>Congestion (H)</td>
<td>Congestion (V)</td>
</tr>
<tr>
<td>preCTS</td>
<td>1</td>
<td>0.418</td>
<td>0.308</td>
<td>1.033</td>
<td>1.084</td>
<td>-0.157</td>
<td>-12888.500</td>
<td>0.73</td>
<td>1.09</td>
</tr>
<tr>
<td>postCTS</td>
<td>1</td>
<td>0.409</td>
<td>0.308</td>
<td>1.105</td>
<td>1.093</td>
<td>-0.142</td>
<td>-2663.800</td>
<td>0.80</td>
<td>1.30</td>
</tr>
<tr>
<td>postRoute</td>
<td>1</td>
<td>0.409</td>
<td>0.308</td>
<td>1.103</td>
<td>1.136</td>
<td>-0.200</td>
<td>-4989.700</td>
<td></td>
<td></td>
</tr>
<tr>
<td>postRouteOpt</td>
<td>1</td>
<td>0.406</td>
<td>0.308</td>
<td>1.091</td>
<td>1.138</td>
<td>-0.149</td>
<td>-1766.450</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p align="center">
<img width="300" src="./images/MemPool_Group_GF12_Human_Place.png" alg="MemPool_Group_GF12_Human_Place">
<img width="300" src="./images/MemPool_Group_GF12_Human_Route.png" alg="MemPool_Group_GF12_Human_Route">
</p>
**An Observation regarding "Pure Commercial Flow".**
<a id="PureCommercialFlow"></a>
The [Evaluation Flow document](https://docs.google.com/document/d/1xDGFSYxIE0AKsGAI3ccLz1EX3bLHOvDtwl3983G5kYk/edit?usp=sharing) also sheds light on the relative
......@@ -5289,6 +5369,167 @@ Details of our SA implementation, which we denote as SA-UCSD, are [here](../../C
<img width="300" src="./images/bp_quad_NG45_SA_Route.png" alg="bp_quad_NG45_SA_Route">
</p>
<a id="Question13"></a>
**<span style="color:blue">Question 13.</span>** How does human macro placement perform?
We observe human macro placement can achieve smaller wirelength than CT result with similar timing and power numbers. The details of human macro placement generated for BlackParrot (Quad-Core) and MemPool Group on NG45 enablement are as follows:
- **BalckParrot-NG45-68%-1.3ns**: We thank Dr. Jinwook Jung of IBM Research for providing his human macro placement of BlackParrot Quad-Core design as an alternative baseline. The following table and screenshots provide details of BlackParrot (Quad-Core)-NG45-68%-1.3ns human macro placement. (Link to script)
- Dr. Jung informed us that he spent about 0.5 hours learning about the design, 2.5 hours coming up with initial floorplan scripts and an additional 2.5 hours refining the initial version. Dr. Jung also informed us that the design includes 4 identical tiles, each with certain components, and he placed them in a specific arrangement to create more free space.
<table>
<thead>
<tr>
<th colspan="10">BlackParrot Quad-Core-NG45-68%-1.3ns Human macro placement (not a gridded placement)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Physical Design Stage</td>
<td>Core Area (um^2)</td>
<td>Standard Cell Area (um^2)</td>
<td>Macro Area (um^2)</td>
<td>Total Power (mW)</td>
<td>Wirelength (um)</td>
<td>WS (ns)</td>
<td>TNS (ns)</td>
<td>Congestion (H)</td>
<td>Congestion (V)</td>
</tr>
<tr>
<td>preCTS</td>
<td>8449457</td>
<td>1907164</td>
<td>3917822</td>
<td>4107.931</td>
<td>24814112</td>
<td>-0.195</td>
<td>-530.552</td>
<td>0.08%</td>
<td>0.12%</td>
</tr>
<tr>
<td>postCTS</td>
<td>8449457</td>
<td>1918983</td>
<td>3917822</td>
<td>4475.523</td>
<td>24944903</td>
<td>-0.097</td>
<td>-209.587</td>
<td>0.09%</td>
<td>0.13%</td>
</tr>
<tr>
<td>postRoute</td>
<td>8449457</td>
<td>1918983</td>
<td>3917822</td>
<td>4468.904</td>
<td>25888999</td>
<td>-0.120</td>
<td>-454.561</td>
<td></td>
<td></td>
</tr>
<tr>
<td>postRouteOpt</td>
<td>8449457</td>
<td>1919928</td>
<td>3917822</td>
<td>4469.552</td>
<td>25915520</td>
<td>-0.097</td>
<td>-321.918</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p align="center">
<img width="300" src="./images/bp_quad_NG45_Human_Place.png" alg="bp_quad_NG45_Human_Place">
<img width="300" src="./images/bp_quad_NG45_Human_Route.png" alg="bp_quad_NG45_Human_Route">
</p>
- **MemPool Group-NG45-68%-4ns**: The following macro placement is generated by [Sayak Kundu](mailto:sakundu@ucsd.edu) based on the tile configuration received from [Matheus Cavalcante](https://scholar.google.com/citations?user=AjcEhm8AAAAJ&hl=en), ETH Zürich and [Jiantao Liu](mailto:jil313@ucsd.edu). [Link](../../Flows/util/place_mempool_macros.tcl) to the MemPool Group macro placement script. The following table and screenshots provide details of MemPool Group-NG45-68%-1.3ns human macro placement.
<table>
<thead>
<tr>
<th colspan="10">MemPool Group-NG45-68%-4ns human macro placement (not a gridded placement) (<a href="#MemPoolGroup_NG45_68_CT">Link</a> to CT result) (<a href="#MemPoolGroup_NG45_68_CMP">Link</a> to CMP result)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Physical Design Stage</td>
<td>Core Area (um^2)</td>
<td>Standard Cell Area (um^2)</td>
<td>Macro Area (um^2)</td>
<td>Total Power (mW)</td>
<td>Wirelength (um)</td>
<td>WS (ns)</td>
<td>TNS (ns)</td>
<td>Congestion (H)</td>
<td>Congestion (V)</td>
</tr>
<tr>
<td>preCTS</td>
<td>11371934</td>
<td>4930345</td>
<td>3078071</td>
<td>2459.392</td>
<td>101645170</td>
<td>-0.021</td>
<td>-141.801</td>
<td>0.39%</td>
<td>0.86%</td>
</tr>
<tr>
<td>postCTS</td>
<td>11371934</td>
<td>4883741</td>
<td>3078071</td>
<td>2640.242</td>
<td>102110339</td>
<td>-0.003</td>
<td>-0.055</td>
<td>0.58%</td>
<td>0.96%</td>
</tr>
<tr>
<td>postRoute</td>
<td>11371934</td>
<td>4883741</td>
<td>3078071</td>
<td>2642.017</td>
<td>107463344</td>
<td>-0.246</td>
<td>-2941.400</td>
<td></td>
<td></td>
</tr>
<tr>
<td>postRouteOpt</td>
<td>11371934</td>
<td>4873872</td>
<td>3078071</td>
<td>2639.916</td>
<td>107597894</td>
<td>-0.049</td>
<td>-11.897</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p align="center">
<img width="300" src="./images/MemPool_Group_NG45_Human_Place.png" alg="MemPool_Group_NG45_Human_Place">
<img width="300" src="./images/MemPool_Group_NG45_Human_Route.png" alg="MemPool_Group_NG45_Human_Route">
</p>
We have also added
- **Ariane133-NG45-68%-1.3ns**: [Link](../../Flows/NanGate45/ariane133#macro-placement-generated-by-an-industry-engineer-not-a-gridded-placement) to the human macro placement details of Ariane on NG45 enablement.
- **MemPool Group-GF12-68%**: [Link](#MemPool_Group_GF12_Human) to the human macro placement details of MemPool Group on GF12 enablement.
## **Pinned (to bottom) question list:**
......@@ -5303,4 +5544,5 @@ Details of our SA implementation, which we denote as SA-UCSD, are [here](../../C
**<span style="color:blue">[Question 9](#Question9).</span>** Are CT results stable? If not, how much does the outcome vary?
**<span style="color:blue">[Question 10](#Question10).</span>** What is the correlation between proxy cost and the postRouteOpt Table 1 metrics?
**<span style="color:blue">[Question 11](#Question11).</span>** How does the initial placement generated by different physical synthesis tools affect the CT solution?
**<span style="color:blue">[Question 12](#Question12).</span>** How does Simulated Annealing (SA) perform in terms of optimizing the proxy cost?
**<span style="color:blue">[Question 12](#Question12).</span>** How well does Simulated Annealing (SA) optimize the proxy cost?
**<span style="color:blue">[Question 13](#Question13).</span>** How does human macro placement perform?
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment