Back

Flexible Multiple-Objective Reinforcement Learning for Chip Placement 閱讀筆記

用於晶片擺置的靈活性多目標強化學習

link to paper

為了EDA Workshop看的。

本篇的亮點\貢獻:

  1. 提出彈性多目標的強化學習(flexible multiple-objective reinforcement learning, MORL)
  2. 提出選取STD CELL叢集尺寸的方法
  3. 改編policy gradient,使其能適用在MORL上

目前RL多半都只針對一個固定的目標進行訓練,但實際上工程師需要的是多樣的選擇,來應對設計時多變而不同的需求。而這篇論文便是希望做到這點,也就是產生出一群policy,形成一個Pareto frontier。

相關研究

基本上本篇的作法和google這篇類似,可以看一下。

問題定義

混和尺寸擺置

我們可以將現代VLSI擺置問題定義為擺放一群node到尺寸不一的平面,並最小化cost──例如線長、繞線壅擠、時序違反、耗能等等。 node可能包含不同尺寸的macro(可移動或不可)與標準邏輯元件/叢集。我們的問題只討論可移動的macro與標準邏輯元件/叢集。 流程是這樣的:

  1. 輸入檔案(LEF/DEF/RTL)
  2. 擺置
  3. EDA Tool算出QoRs

google團隊將這個問題轉化為RL的最佳化問題,透過policy逐個擺放macro,並使用估計的PPA當作獎勵。

多目標強化學習

先定義MDP為($\mathcal{S},\mathcal{A},p,r$)的tuple,接下來把他擴展成多目標的multi-objective MDP(MOMDP)。 定義multi-objective MDP(MOMDP) $\mathcal{M}$為具有state $\mathcal{S}$、action $\mathcal{A}$及固定轉場$p$的MDP,但他的獎勵是以$i$為索引的獎勵集合。第$i$個獎勵以$\textbf{r}=r^{(i)}$表示。
對於這樣的獎勵向量,我們可以用一個偏好參數: ${\omega}={(\omega_i)}^K_{i=1}$,
來使MOMDP$\mathcal{M}$ 塌縮為標準的MDP$\mathcal{M}^\omega$,也就是把獎勵復原為單一的值──定義凸組合:
$r_\omega=\text{R}(\textbf{r},\omega)=\sum_{i=1}^{K}r^{(i)}\omega_i$,$\omega\in(\Omega^K, \mu)$,也就是K維的單純型(simplex)與機率測度$\mu$。
MDP$\mathcal{M}^\omega$中的action與state則可以用$\omega$索引:$(s;\omega)$、$(a,\omega)$。

接下來討論MOMDP的解,解一個MOMDP相等於解每個獨立的MDP$\mathcal{M}^\omega$,亦即找出使初始狀態value,$J(\omega,\pi_\omega)=V_{\pi_\omega}(s_0;\omega)$,最大的一組策略$\pi_\omega$。
我們將這樣的策略組稱為:parametric policy family,定義為由$\theta$連續參數的一組策略集$\pi_{\omega,\theta}$。

在接下去之前,先介紹一個概念:Pareto optimality,這是一種每一項指標都最適化的情況,無法在不減少任何一個指標的前提下進一步優化。 如果我們針對多目標的最佳化,每一個在平面上滿足Pareto optimalty的點會組成一條邊界,我們稱為Pareto frontier。

方法

目標與估計

這篇聚焦的目標除了線長、擁擠度和時序之外,還加入使用者自訂的錨定區域距離限制。也就是使其能處理fence region或datapath。
HPWL: $l_{WL}=-\sum\limits_n(\max\limits_{pin_i,pin_j,\in n}\lvert x_i-x_j\rvert + \max\limits_{pin_i,pin_j\in n}\lvert y_i-y_j\rvert)$
Congestion: $l_C=-\frac{ACE(k)}{4},k\in 0.5,1,2,5$,$ACE(k)$會取k%的壅擠值
User Anchor: $l_A=-\sum\limits_ia_i\sqrt{(X_i-x_i)^2+(Y_i-y_i)^2}$,$(X_i,Y_i)$是使用者自定義的目標位置,$(x_i,y_i)$則是macro的中心位置,$a_i$是權重。
定義EDA目標: $l_{EDA}=\alpha l_{WL}+\beta l_C+\delta l_A$。

但fence可以用density mask擋掉、datapath=connectivity高?應該還是可以最佳化?
再來每個設計anchor一定不一樣,這樣會不會失一般性?
不過這個做法比較要EDA domain knowledge才想得出來

用policy gradient解MOMDP

TL;DR

我們的目標函數$\hat{J}(\theta) = \mathbb{E}_{\omega}[J(\theta;\omega)]$最佳化之後,便可以產生一個最佳的輪廓,但不能保證$\epsilon$最適性。
$\epsilon$最適性必須透過$\pi_{\theta, \omega}$的結構以及參數來確定。

實作與網路架構

基於google那篇,做兩點改動:

  1. 將$\omega$加入state表示,維度維持32。
  2. value函數複製K次,並允許獨立最佳化。

實驗

MOPPO訓練

資料

ICCAD2015 Superblue訓練,macro數量84-294不等、std cell則有770k-1930k,並聚焦於superblue10跟superblue18這兩組只有長方形的資料。(但其他的資料結果品質也相近。)

獎勵訓練

結果

Built with Hugo
Theme Stack designed by Jimmy