GAN-Place: Advancing Open Source Placers to Commercial-quality Using Generative Adversarial Networks and Transfer Learning
Abstract
1 Introduction
2 Related Works and Motivations
3 GAN-Place Overview
3.1 Commercial Database Construction
ICC2 parameters | type (values) | description |
---|---|---|
set_qor_strategy | enum (3) | set optimization priority |
low_power_effort | enum (4) | effort in low power optimization |
congestion_effort | enum (3) | effort in congestion optimization |
is_timing_driven | bool (2) | is timing-driven placement |
is_power_driven | bool (2) | is power-driven placement |
buffer_aware | bool (2) | buffering of high-fanout nets |
coarse_density | float ([0.7,0.9]) | density of global placement |
target_route_density | float ([0.7,0.9]) | density of early global routing |
4 GAN-Place Algorithms
4.1 VLSI Netlist Encoding Using GNNs
4.2 GNN-based Discriminator
4.3 Soft-Bin: Differentiable Two-dimensional Bin-Density Map Transformation
4.4 CNN-based Discriminator
4.5 End-to-End GAN-Place Training
4.6 Full-Flow Integration
5 Experimental Results
5.1 Single-design Optimization Results on DREAMPlace [11]
Design Name | # Nets | # FFs | # Cells | # macros |
---|---|---|---|---|
AES | 90,905 | 10,688 | 113,168 | 0 |
CPU-1 | 206,224 | 22,366 | 202,791 | 21 |
CPU-2 | 542,391 | 47,522 | 537,085 | 29 |
CPU-3 | 194657 | 33,085 | 121,682 | 16 |
DMA | 10,898 | 2,062 | 10,215 | 0 |
LDPC | 42,018 | 2,048 | 39,377 | 0 |
ECG | 85,058 | 14,018 | 84,127 | 0 |
VGA | 56,279 | 17,054 | 56,194 | 0 |
design (# cells) | PD stage | vanilla DREAMPlace [11] | GAN-Place enhanced (ours) | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
wns (ns) | TNS (ns) | # vios | total WL (um) | total power (mW) | wns (ns) | TNS (ns) | # vios | total WL (um) | total power (mW) | ||
CPU-1 (202K) | global place | \(-\)2.05 | \(-\)13498 | 19558 | 374130 | 200.1 | \(-\)1.42 | \(-\)10175 | 18038 | 3532961 | 190.8 |
place opt | \(-\)1.74 | \(-\)6197 | 13018 | 4034908 | 194.7 | \(-\)1.45 | \(-\)5975 | 12605 | 3765982 | 175.3 | |
clock opt | \(-\)0.30 | \(-\)45.89 | 681 | 4163129 | 144.4 | \(-\)0.26 | \(-\)33.42 | 489 | 3920346 | 136.5 | |
route opt | \(-\)0.26 | \(-\)22.4 | 464 | 4166459 | 144.3 | \(-\)0.17 | \(-\)19.03 | 412 | 4035806 (\(-\)3.0%) | 139.3 (\(-\)3.5%) | |
CPU-2 (537K) | global place | \(-\)432.97 | \(-\)5634543 | 48869 | 12382802 | 25142.4 | \(-\)428.41 | \(-\)5216911 | 44382 | 11067230 | 24647.2 |
place opt | \(-\)608.91 | \(-\)7218793 | 40780 | 12654907 | 13244.1 | \(-\)606.4 | \(-\)6867935 | 39059 | 11318429 | 11820.07 | |
clock opt | \(-\)0.20 | \(-\)61.48 | 1726 | 17769476 | 488.1 | \(-\)0.18 | \(-\)45.12 | 1477 | 16317518 | 452.3 | |
route opt | \(-\)0.17 | \(-\)45.83 | 1405 | 17765081 | 490.5 | \(-\)0.13 | \(-\)29.07 | 906 | 16150284 (\(-\)10.2%) | 441.5 (\(-\)10.0%) | |
CPU-3 (121K) | global place | \(-\)2.13 | \(-\)8437.48 | 11730 | 1711937 | 149.2 | \(-\)1.88 | \(-\)7763.08 | 10963 | 1637906 | 140.6 |
place opt | \(-\)0.54 | \(-\)164.78 | 2466 | 1439469 | 155.8 | \(-\)0.48 | \(-\)135.48 | 1948 | 1387534 | 150.9 | |
clock opt | \(-\)0.51 | \(-\)37.68 | 414 | 1588135 | 141.9 | \(-\)0.54 | \(-\)33.45 | 350 | 1462754 | 138.0 | |
route opt | \(-\)0.49 | \(-\)41.21 | 1207 | 1582822 | 143.0 | \(-\)0.33 | \(-\)36.56 | 972 | 1540096 (\(-\)2.7%) | 139.1 (\(-\)2.7%) | |
LDPC (46K) | global place | \(-\)1.14 | \(-\)1411.74 | 2184 | 1289738 | 225.8 | \(-\)1.06 | \(-\)1322.54 | 2076 | 1182512 | 216.3 |
place opt | \(-\)0.25 | \(-\)292.49 | 2192 | 1454863 | 255.5 | \(-\)0.20 | \(-\)221.88 | 1911 | 1416226 | 251.3 | |
clock opt | \(-\)0.20 | \(-\)156.62 | 1897 | 1857624 | 255.4 | \(-\)0.14 | \(-\)92.70 | 1693 | 1713233 | 249.5 | |
route opt | \(-\)0.24 | \(-\)198.72 | 1976 | 1878969 | 261.8 | \(-\)0.15 | \(-\)112.06 | 1783 | 1819348 (\(-\)3.2%) | 256.9 (\(-\)1.9%) |
5.2 Transfer Learning on Unseen Designs Using DREAMPlace [11] and Xplace [13]
design | global place | vanilla | DREAMPlace+GAN | vanilla | Xplace+GAN | ICC2 default |
---|---|---|---|---|---|---|
(# cells) | metrics | DREAMPlace | (ours) | Xplace [13] | (ours) | placer |
AES (111K) | WL (um) | 1946366 | 1755417 (\(-\)9.8%) | 1410691 | 1315794 (\(-\)6.7%) | 1393520 |
WNS (ns) | \(-\)0.32 | \(-\)0.31 | \(-\)0.17 | \(-\)0.14 | \(-\)0.05 | |
TNS (ns) | \(-\)139.36 | \(-\)125.01 | \(-\)39.06 | \(-\)33.95 | \(-\)10.38 | |
# vios | 3012 | 2830 | 1736 | 1649 | 928 | |
power (mW) | 605.4 | 597.8 | 571.8 | 565.9 | 558.8 | |
runtime (min) | < 1 | 8 | < 1 | 8 | 26 | |
DMA (11K) | WL (um) | 196988 | 189688 (\(-\)3.7%) | 188629 | 176664 (\(-\)12.5%) | 165069 |
WNS (ns) | \(-\)0.19 | \(-\)0.17 | \(-\)0.18 | \(-\)0.16 | \(-\)0.12 | |
TNS (ns) | \(-\)35.06 | \(-\)29.61 | \(-\)15.91 | \(-\)13.34 | \(-\)6.48 | |
# vios | 488 | 442 | 268 | 242 | 192 | |
power (mW) | 31.1 | 30.9 | 31.0 | 30.8 | 30.9 | |
runtime (min) | < 1 | 5 | < 1 | 5 | 19 | |
ECG (85K) | WL (um) | 1527118 | 1423859 (\(-\)6.8%) | 1031059 | 965658 (\(-\)6.3%) | 883419 |
WNS (ns) | \(-\)2.24 | \(-\)1.86 | \(-\)1.18 | \(-\)0.95 | \(-\)1.03 | |
TNS (ns) | \(-\)6783.55 | \(-\)6309.96 | \(-\)1402.53 | \(-\)1264.36 | \(-\)728.90 | |
# vios | 10862 | 9854 | 5678 | 5131 | 3801 | |
power (mW) | 195.7 | 193.9 | 173.5 | 171.6 | 169.9 | |
runtime (min) | < 1 | 8 | < 1 | 8 | 32 | |
VGA (56K) | WL (um) | 2202288 | 2043376 (\(-\)7.2%) | 2023368 | 1895024 (\(-\)6.4%) | 1756611 |
WNS (ns) | \(-\)1.61 | \(-\)1.33 | \(-\)1.32 | \(-\)1.29 | \(-\)1.28 | |
TNS (ns) | \(-\)10001.56 | \(-\)9803.32 | \(-\)8092.88 | \(-\)7295.62 | \(-\)5165.15 | |
# vios | 16251 | 15973 | 15981 | 15942 | 15970 | |
power (mW) | 257 | 255 | 256 | 253 | 249 | |
runtime (min) | < 1 | 6 | < 1 | 6 | 25 |
5.3 Discussion of Optimization Results
5.4 Why Use Generative Adversarial Learning to Advance VLSI Placement?
6 Conclusion
References
Index Terms
- GAN-Place: Advancing Open Source Placers to Commercial-quality Using Generative Adversarial Networks and Transfer Learning
Recommendations
DREAM-GAN: Advancing DREAMPlace towards Commercial-Quality using Generative Adversarial Learning
ISPD '23: Proceedings of the 2023 International Symposium on Physical DesignDREAMPlace is a renowned open-source placer that provides GPU-acceleratable infrastructure for placements of Very-Large-Scale-Integration (VLSI) circuits. However, due to its limited focus on wirelength and density, existing placement solutions of ...
Placement Optimization via PPA-Directed Graph Clustering
MLCAD '22: Proceedings of the 2022 ACM/IEEE Workshop on Machine Learning for CADIn this paper, we present the first Power, Performance, and Area (PPA)-directed, end-to-end placement optimization framework that provides cell clustering constraints as placement guidance to advance commercial placers. Specifically, we formulate PPA ...
Placement Optimization with Deep Reinforcement Learning
ISPD '20: Proceedings of the 2020 International Symposium on Physical DesignPlacement Optimization is an important problem in systems and chip design, which consists of mapping the nodes of a graph onto a limited set of resources to optimize for an objective, subject to constraints. In this paper, we start by motivating ...
Comments
Information & Contributors
Information
Published In
Publisher
Association for Computing Machinery
New York, NY, United States
Journal Family
Publication History
Check for updates
Author Tags
Qualifiers
- Research-article
Contributors
Other Metrics
Bibliometrics & Citations
Bibliometrics
Article Metrics
- 0Total Citations
- 1,748Total Downloads
- Downloads (Last 12 months)1,690
- Downloads (Last 6 weeks)148
Other Metrics
Citations
View Options
Login options
Check if you have access through your login credentials or your institution to get full access on this article.
Sign in