ePlace: ¡Electrosta-cs ¡Based ¡Placement ¡ Using ¡Nesterov’s ¡Method ¡ ¡ 1 Jingwei ¡Lu, ¡ 2 Pengwen ¡Chen, ¡ 3 Chin-‑Chih ¡Chang, ¡ 3 Lu ¡Sha, ¡ ¡ 3 Dennis ¡J.-‑H. ¡Huang, ¡ 3 Chin-‑Chi ¡Teng, ¡ 1 Chung-‑Kuan ¡Cheng ¡ 1 ¡
Outline ¡ • Introduc-on ¡ core ¡contribu)ons ¡ • Density ¡Func-on ¡– ¡ electrosta)c ¡system ¡model ¡ • Numerical ¡Solu-on ¡– ¡ spectral ¡methods ¡ • Nonlinear ¡Op-miza-on ¡– ¡ Nesterov’s ¡method ¡ • ePlace ¡Integra-on ¡– ¡ a ¡flat ¡nonlinear ¡algorithm ¡ • Experimental ¡Results ¡ • Conclusion ¡ 2 ¡
Placement ¡– ¡An ¡NP-‑Hard ¡Problem ¡ shortest ¡ ¡ connect ¡ from ¡[Kahng10] ¡ even ¡ density ¡ 3 ¡
Density ¡Func-on ¡ Placement ¡Instance ¡ Electrosta)c ¡System ¡ Cell ¡Instance ¡ Electric Particles + Cell ¡Coor ¡& ¡Dim. ¡ Charge ¡Coor ¡& ¡Dim. ¡ Cell ¡Area ¡(A i ) ¡ Charge ¡Quan)ty ¡(q i ) ¡ Even ¡Density ¡Distr. ¡ Min. ¡Poten)al ¡Energy ¡ N( v ) ¡= ¡Σq i ψ i ¡ ¡ f( v ) ¡= ¡W( v )+λN( v ) ¡ 4 ¡
ISPD05 ¡adaptec1, ¡ 128x128 ¡grid ¡ cell ¡& ¡macro ¡distr. ¡ charge ¡density ¡distr. ¡ electric ¡poten)al ¡distr. ¡ electric ¡field ¡distr. ¡ 5 ¡
Poisson’s ¡Equa-on ¡ Neumann ¡boundary ¡condi)on ¡ ρ(x,y): ¡density ¡distr. ¡ ψ(x,y): ¡poten)al ¡distr. ¡ ˆ : ¡the ¡outer ¡norm ¡vector ¡ n ⎧ ( ) ( ) ( ) x , y x , y x , y R ∇ ⋅ ∇ ψ = − ρ ∈ ⎪ ⎪ ˆ ( ) ( ) n x , y 0 x , y R ⋅ ∇ ψ = ∈ ∂ ⎨ ⎪ ( ) ( ) ( ) x , y x , y 0 x , y R ρ = ψ = ∈ ∫∫ ∫∫ ⎪ ⎩ sum ¡of ¡charge ¡=> ¡zero ¡ even ¡density ¡distr. ¡ sum ¡of ¡poten)al ¡=> ¡zero ¡ unique ¡solu)on ¡ 6 ¡
Numerical ¡Solu-on ¡ 1 n 1 n 1 − − Density ¡Coefs ¡ ( ) ( ) ( ) a x , y cos w x cos w y ∑ ∑ = ρ u , v u v 2 n u n v n = − = − n 1 n 1 − − Density ¡Expr ¡ ( ) ( ) ( ) x , y a cos w x cos w y ∑ ∑ ρ = u , v u v u n v n = − = − a n 1 n 1 Electric ¡ − − u , v ( ) ( ) ( ) x , y cos w x cos w y ∑∑ ψ = u v 2 2 Poten)al ¡ w w + u n v n u v = − = − a w ⎧ u , v u ( ) ( ) E sin w x cos w y ∑∑ = ⎪ x u v 2 2 w w + ⎪ u v u v Electric ¡Field ¡ ⎨ a w ⎪ u , v v ( ) ( ) E cos w x sin w y ∑∑ = y u v 2 2 ⎪ w w + ⎩ u v u v 7 ¡
Density ¡Func-on ¡Analysis ¡ • Global ¡smoothness ¡ – Shortest ¡path: ¡no ¡fixed-‑block ¡detours ¡ • Generalized ¡solu-on ¡ – Same ¡treatment ¡for ¡std-‑cells, ¡macros ¡& ¡blockages ¡ ¡ – No ¡special ¡smoothing ¡or ¡physical ¡perturba-on ¡ • Determinis-c ¡ – Simula-on ¡of ¡electrosta-c ¡system: ¡guaranteed ¡ convergence ¡ • Complexity: ¡O(nlogn) ¡ – FFT ¡property: ¡n ¡is ¡total ¡# ¡movable ¡objects ¡ 8 ¡
Nesterov’s ¡Method ¡ [Nesterov83] ¡ Lipschitz ¡con)nuous ¡ convex ¡func)on ¡f(v) ¡ gradient ¡ ∇ f(v) ¡ steplength ¡ 1 ⎧ ⎫ 2 ( ) max f f v f f α ∇ − − α ∇ ≥ α ∇ ⎨ ⎬ requirement ¡ k k k k k k k 2 ⎩ ⎭ u v f = − α ∇ k k k k solu)on ¡& ¡ ) 2 ( 2 a 1 4 a 1 / = + + param ¡update ¡ ¡ k 1 k + ( )( ) v u a 1 u u 1 / a = + − − k k k k k k 1 − + O(1/k 2 ) ¡convergence ¡rate, ¡k: ¡# ¡itera)ons ¡ 9 ¡
Lipschitz ¡Constant ¡Predic-on ¡ ∃ L > 0, ∀ u & v ∈ E , defini)on ¡ ( ) − ∇ f v ( ) ≤ L ⋅ u − v ∇ f u ~ predic)on ¡ f ( ) ( ) L f v f v 1 / v v = ∇ − ∇ − k k k k k 1 − − v v 1 − steplength ¡ k k 1 − α = = ~ k f ( ) ( ) f v f v L ∇ − ∇ k k 1 − k v k , v k − 1 line ¡search? ¡ are ¡known ¡ ¡ ( ) , ∇ f v k − 1 ( ) ∇ f v k zero ¡run)me ¡overhead ¡ 3.3x ¡speedup ¡ 10 ¡
Steplength ¡Backtracking ¡ ˆ ( ) ( ) v v 1 / f v f v temp. ¡steplength ¡ α = − ∇ − ∇ k k k k k 1 − − ˆ ˆ ( ) v v f v temp. ¡solu)on ¡ = − α ⋅ ∇ if ˆ ( α k > ˆ ! ) k 1 k k k α k + ˆ α k = ˆ ! α k ref. ¡steplength ¡ ˆ ˆ ˆ ( ) ( ) v v / f v f v ʹ″ α = − ∇ − ∇ k k 1 k k 1 k + + o.w. ( ) v v f v final ¡solu)on ¡ α k = ˆ ! = − α ⋅ ∇ α k k 1 k k k + steplength ¡overes)mate ¡? ¡ average ¡# ¡backtracks: ¡1.04 ¡ 11 ¡
Std-‑Cell ¡Placement: ¡ADAPTEC1 ¡of ¡ISPD05 ¡ fixed ¡macros ¡ std-‑cells ¡ fillers ¡ 12 ¡
Extension: ¡Mixed-‑Size ¡Placement ¡ Initial Placement (mIP) Detail Placement (cDP) x cDP inst. x mIP x cGP Macro Legalization Std-Cell Global Mixed-Size Global Placement (mGP) (mLG) Placemnet (cGP) Gradient no Converge? Remove Filler, Std-Cell & Filler x mGP Computation ( τ < 10%) Fix Std-Cells Co-Placement x m W’, D’ x lo opt. x fill Hessian Pre- Nesterov’s Anneal Macro Filler-Only conditioning Optimizer Legalization Placement pass else x mLG x fill W’ pre , D’ pre α Lipschitz Steplength Random Filler Fix Macros x mLG Prediction Backtracking Insertion 13 ¡
Nonlinear ¡Precondi-oning ¡ 2 2 2 2 f f f f ⎛ ⎞ ∂ ∂ ∂ ⎛ ∂ ⎞ ... 0 ... 0 ⎜ ⎟ ⎜ ⎟ 2 2 x x x x x x ∂ ∂ ∂ ∂ ∂ ∂ ⎜ ⎟ ⎜ ⎟ 1 1 2 1 n 1 2 2 2 2 ⎜ ⎟ ⎜ ⎟ f f f f ∂ ∂ ∂ ∂ … 0 … 0 ⎜ ⎟ ⎜ ⎟ H = ≈ 2 2 x x x x x x ∂ ∂ ∂ ∂ ∂ ∂ f ⎜ ⎟ ⎜ ⎟ 2 1 2 2 n 2 � � � � � � � � ⎜ ⎟ ⎜ ⎟ 2 2 2 2 f f f f ⎜ ⎟ ⎜ ⎟ ∂ ∂ ∂ ∂ … 0 0 … ⎜ ⎟ ⎜ ⎟ 2 2 x x x x x x ∂ ∂ ∂ ∂ ∂ ∂ ⎝ ⎠ ⎝ ⎠ n 1 n 2 n n 2 2 f / x E q ∂ ∂ ≈ + λ 2 2 2 f W N ∂ ∂ ∂ i i i = + λ 2 2 2 x x x T ( ) ∂ ∂ ∂ − 1 H E q , … , E q − i i i ≈ + λ + λ f 1 1 n n 2 W 2 W ⎧ ∂ ∂ eigenvector ¡clustering ¡ j E ∑ = ≈ ⎪ i 2 2 x x ∂ ∂ ⎪ j E i i ∈ i ⎨ zero ¡run)me ¡overhead ¡ 2 2 N ∂ ∂ ψ ⎪ q i q = ≈ i i ⎪ 2 2 x x ∂ ∂ ⎩ ~20% ¡shorter ¡HPWL ¡ i i 14 ¡
Mixed-‑Size ¡Placement: ¡ADAPTEC1 ¡of ¡MMS ¡ movable ¡macros ¡ std-‑cells ¡ fillers ¡ 15 ¡
Experiment ¡Setup ¡ • Intel ¡i7 ¡920 ¡2.67GHz ¡CPU ¡& ¡12GB ¡RAM. ¡ • ISPD ¡2005 ¡ [Nam05] ¡ & ¡2006 ¡[Nam06] , ¡MMS ¡ [Yan09] ¡ benchmarks ¡ – Up ¡to ¡2.5M ¡std-‑cells ¡& ¡3.7K ¡macros, ¡different ¡target ¡densi-es ¡ quadratic min-‑cut nonlinear FastPlace3.0 ¡ ComPLx ¡ [Kim12b] Aplace3 ¡ [Kahng05] [Viswanathan07b] std-‑cell ¡ Capo10.5 ¡ RQL ¡ [Viswanathan07a] MAPLE ¡ [Kim12a] NTUplace3 ¡ [Hsu12] placers [Roy06] BonnPlace ¡ mPL6 ¡ [Chan06] POLAR ¡ [Lin13] [Struzyna13] FFTPL ¡ [Lu13] constructive one-‑stage Capo10.5 ¡ FastPlace3.0 ¡ mPL6 ¡ [Chan06] mixed-‑size ¡ [Roy06] [Viswanathan07b] placers ComPLx ¡ [Kim12] NTUplace3-‑NR ¡[Hsu12] FLOP ¡ [Yan09] POLAR ¡ [Lin13] NTUplace3 ¡ [Hsu12] 16 ¡
* ¡cited ¡ ¡ ISPD ¡2005 ¡Results ¡ results ¡ 21.14% Wirelength ¡(%) 20% 14.28% 12.05% 10.01% 8.33% 10% 5.40% 4.50% 3.21% 3.08% 2.83% 0.00% 0% 8.94 CPU ¡(x) 9.14 10.00 3.78 3.40 3.05 5.00 1.40 1.00 0.91 0.53 0.52 0.52 0.00 17 ¡
* ¡cited ¡ ¡ ISPD ¡2006 ¡Results ¡ results ¡ 60.00% Wirelength ¡(%) 43.73% 40.00% 18.38% 16.25% 7.99% 4.59% 4.86% 7.16% 20.00% 7.74% 10.11% 0.00% 0.00% 20.00 CPU ¡(x) 13.08 8.48 10.00 4.59 2.08 1.00 0.74 0.69 0.69 N/A N/A 0.00 18 ¡
* ¡cited ¡ ¡ MMS ¡Results ¡ results ¡ 80% 64.42% Wirelength ¡(%) 60% 30.69% 40% 18.92% 14.31% 18.43% 11.03% 16.13% 7.40% 7.13% 0.00% 20% 0% 20 CPU ¡(x) 14.69 15 10 6.34 5 2.14 2.02 1.15 1.05 1.00 0.70 0.81 0.37 0 19 ¡
Recommend
More recommend