On Joint Learning for Solving Placement and Routing in Chip Design
目录
- On Joint Learning for Solving Placement and Routing in Chip Design
- 一、整体思路和创新点
- 二、相关工作
- 2.1 partitioning-based methods(基于分区的方法)
- 2.2 stochastic/hill-climbing methods (随机的方法)
- 2.3 analytic solvers(分析求解的方法)
- 2.4 Learning-based methods(基于学习的方法)
- 2.5 Classical & Learning-based methods (路由方法)
- 三、Methodology
- 3.1 Problem Formulation
- 3.2 The Structure of Policy Network
- 3.3 Reward Design
- 3.3.1 Extrinsic Reward Design
- 3.3.2 Intrinsic Reward Design
- 3.3.3 Combination with Gradient-based Placement Optimization
- 3.3.4 Joint Learning of Placement and Routing
- 四、Experiment
- 个人总结与思考
一、整体思路和创新点
在这篇NeurIPS21论文中,首先提出了一种端到端学习的布局求解方法DeepPlace,主要分为两个阶段:首先,基于深度强化学习的智能体按照一定顺序依次决定当前宏元件在芯片板上对应的有效位置;随后通过基于梯度优化的布局求解器来决定上百万标准元件的位置。此外,通过强化学习提出了一种联合求解布局与布线任务的学习算法DeepPR。
和所有布局布线任务一样,要完成的任务有有两个,即布局和布线,如图1所示。
一种联合学习方法DeepPR(即深度放置和路由),用于布局和后续的路由任务。
1)将宏单元和标准单元联合求解。
对于基于学习的布局,我们提出了一种端到端的宏单元和标准单元的布局方法DeepPlace,通过强化学习和神经网络形成梯度优化分别对两种单元进行顺序排列。 据我们所知,这是第一种用于宏单元和标准单元联合布局求解的学习方法。 在以往的工作中,这两个任务无论是对宏还是对标准单元单元都是独立解决的。
2)引入强化学习。
我们还提出了DeepPR通过强化学习来联合解决布局和路由问题,这在文献中是没有尝试过的。
3)结合GNN和CNN。
为了更有效地将强化学习应用到我们的管道中,我们设计了一个新颖的策略网络,它同时引入了CNN和GNN来为布局输入提供两个视图,而不是以前单独使用CNN或GNN来获得嵌入。 为了能够综合利用全局嵌入和节点级嵌入信息,进一步采用随机网络蒸馏来鼓励强化学习的探索。
4)实验效果好。
对联合宏/标准单元布局和联合布局布线进行了实验评价。 结果表明,该方法明显优于单独放置和布线流水线。
二、相关工作
2.1 partitioning-based methods(基于分区的方法)
分层解决,将问题划分为多个子问题的思想。
在早期,基于划分的方法采用分而治之的思想:将网表和芯片布局递归地划分,直到子列表可以由最优求解器求解。 这种分层结构使得它们执行速度快,扩展到更大的网表也很自然,同时由于每个子问题都是独立解决的,因此降低了解决方案的质量。 随后发展了一些多级划分方法。
2.2 stochastic/hill-climbing methods (随机的方法)
随机的方法,遗传算法居多。
随机和爬山,主要基于退火方法,其灵感来自冶金退火,包括加热和控制冷却,以获得最佳的结晶表面。 在实际应用中,模拟退火(SA)通过宏的移动、交换和旋转等随机扰动来优化给定的布局解。 尽管SA具有很好的灵活性和全局寻优能力,但它在处理不断增大的电路规模时却费时费力。
2.3 analytic solvers(分析求解的方法)
没有用到gpu。
通常采用力定向方法和非线性优化方法。 相比较而言,二次优化方法计算效率较高,但表现出相对较低的性能,而非线性优化方法在代价较高的情况下更平滑地逼近代价函数。 【然而,最近,现代分析工具如Eplace和Replace引入了基于静电学的全局光滑密度代价函数和Nesterov方法的非线性优化器,在公共基准上取得了优越的性能。 他们把网表的每一个节点表述为带正电的粒子。 节点通过排斥力进行调节,密度函数与系统势能相对应。 这些分析方法在基于梯度的优化方案中更新单元的位置,通常可以在多线程CPU上并行处理数百万个标准单元,通过分区来减少运行时间。】
然而,对于大规模的优化问题,上述方法都是在CPU上进行大量的数值计算,缺乏对GPU机会的挖掘。
2.4 Learning-based methods(基于学习的方法)
杂糅2和3。
近年来,人们提出了基于学习的布局方法,特别是强化学习(RL)来获得泛化能力。 Google提出了第一种用于宏布局的端到端学习方法,该方法将芯片布局建模为一个顺序决策问题。 在每一个步骤中,RL代理放置一个宏,并使用目标度量作为奖励,直到最后一个操作。 值网络采用GNN对网表信息进行编码,策略网络中的反卷积层输出当前宏位置的掩码。
另一条线是用RL和启发式相结合的方法解决布局问题。 在RL和SA之间提出了一个循环框架,其中RL模块调整电路组件之间的相对空间序列,SA则基于RL初始化进一步探索解空间。
相比之下,前者是一种基于学习的方法,目标函数与解析解相同,而后者本质上是一种退火解。
2.5 Classical & Learning-based methods (路由方法)
全局路由通常从将一个多引脚网络问题分解为一组两引脚连接问题开始[17,18,19]。 然后,每个PIN到PIN的路由问题都用经典的启发式路由器解决,如Rip-up和Reroute[20]、Force-Directed路由[21]和Region-Wise路由。
最近,机器学习技术被应用于路由信息预测,包括路由拥塞[22]、给定位置的可路由性[23]和电路性能[24]。 同时,还提出了RL方法来处理路由问题。 [25]使用DQN模型来决定路由方向的动作,即在每一步向北、向南等。 [26]提出了一种基于注意力的增强算法来选择路由顺序,并在确定路由顺序后使用模式路由器生成实际路由。 而[27]则应用遗传算法来创建初始路由候选,并使用RL增量地修复设计规则违反。 不同于目前的基于学习的Placer,如[1]将标准单元分成几千个聚类,并使用力定向的方法进行粗布局求解,我们的工作将强化学习与基于梯度的优化方案结合起来,通过端到端的学习方案获得完整的布局求解。 虽然[15]将局部密度函数作为惩罚因子来满足可布线性的要求,但就我们所知,所提出的方法是首次尝试通过强化学习来联合解决布局和布线问题。
三、Methodology
3.1 Problem Formulation
首先,我们针对宏布局问题,其目标是确定芯片画布上宏的位置,使其没有重叠,并且线缆最小化。 我们的RL代理顺序地将宏映射到布局上的有效位置。
一旦所有宏都被放置:
- 要么确定它们的位置,然后采用基于梯度的布局优化来获得一个完整的布局解决方案,并具有相应的评估指标,如图所示的wirelength和拥塞 2(a).
- 或者,我们采用经典路由器或另一个RL代理对布局方案进行路由,并将精确的总线缆作为布局和路由任务的奖励,如图所示 2(b).
马尔可夫决策过程的关键要素定义如下:
- State s t s_t st:状态表示由两部分组成,全局图像 I I I描绘了布局,网表图H包含所有已放置宏的详细位置。 注意,放置问题类似于棋盘游戏(即国际象棋或围棋),两者都需要确定棋子(宏)的位置。 因此,我们将国际象棋棋盘(Chip Canvas)建模为二值图像 I I I,其中1表示被占据的位置。 此外,棋盘游戏的规则类似于网表图 H H H,与全局图像互补。
- Action a t a_t at:action空间包含时间t时N×N画布中的可用位置,其中N表示网格的大小。 一旦当前宏选择了一个备用位置(x,y),我们将 I x y I_{xy} Ixy设置为1并从可用列表中删除该位置。
- Reward r t r_t rt:事件结束时的奖励是来自最终解决方案的有线网络和路由拥塞的负加权和。 权重是主目标无线通信和路由拥塞之间的权衡,它反映了路由任务的可路由性。 不同于其他深度RL将以前所有行为的奖励设置为0,我们采用受(https://arxiv.org/abs/1810.12894)启发的随机网络蒸馏(RND)来计算每个时间步长的内在奖励。
- 策略网络学习最大限度地从放置先前的筹码中获得期望的回报,并在事件中提高放置质量,这是由近端策略优化 (PPO) 更新的。
3.2 The Structure of Policy Network
策略网络的结构由于解决布局问题和玩围棋等棋盘游戏本质上都是以顺序的方式确定宏(块)的位置,我们将当前状态建模为大小为n×n的图像I。 在实验中,我们从{32,64}中选择n。 当上一个宏放在位置(X,Y)时,
I
x
y
I_{xy}
Ixy=1。 该图像表示给出了部分放置的概述,丢失了一些详细信息。 我们进一步从卷积神经网络(CNN)中获得了全局嵌入,并在围棋比赛中表现出了显著的性能[29]。
此外,作为关键输入信息的网表图隐含了报酬计算规则,为行为预测提供了详细的指导。 在这种情况下,我们开发了一个图神经网络(GNN)体系结构,考虑到当前宏产生详细的节点嵌入。 图神经网络的作用是探索网络表的物理意义,并将节点连通性信息提取为低维向量表示,用于后续计算。 在从CNN得到全局嵌入和从GNN得到详细节点嵌入后,通过级联将两者融合,并将结果传递给一个完全连通的层,生成动作的概率分布。 我们认为,多视图嵌入模型能够综合考虑全局和节点两个层次的信息。 政策网络的整体结构以图为例 3(a)。
3.3 Reward Design
3.3.1 Extrinsic Reward Design
我们定义了包含wirelength和拥塞的代价函数,试图同时优化性能和路由性:
R
E
=
−
W
i
r
e
l
e
n
g
t
h
(
P
,
H
)
−
λ
⋅
C
o
n
g
e
s
t
i
o
n
(
P
,
H
)
R_E = −Wirelength(P,H) − λ · Congestion(P,H)
RE=−Wirelength(P,H)−λ⋅Congestion(P,H)
其中
P
P
P表示布局解决方案,
H
H
H表示网表,λ是根据给定芯片的设置对相对重要性进行加权的超参数。
- Wirelength: 所有路由网络形成的半周长(也就是布线的长度)
- Congestion: 拥塞的概念来源于每个路由网络都会占用一定数量的可用路由资源。 本文采用矩形均匀布线密度(RUDY)来近似路由拥塞,因为HPWL是计算过程中的中间结果,而RUDY的精度相对较高。 在实验中,我们将路由拥塞的阈值设置为0.1,否则会导致拥塞检查失败。
3.3.2 Intrinsic Reward Design
受网络蒸馏的启发,在每个时间步长中设置了一个内在的奖励方法,以鼓励探索。
如图所示 3(b). RND包括两个网络:一个固定的随机初始化的目标网络和一个基于Agent收集的全局图像训练的预测网络。 给定当前观测
o
o
o(也指全局图像),目标网络和预测网络分别生成嵌入
f
(
o
)
f(o)
f(o)和
f
^
(
o
;
θ
)
\hat{f}(\mathrm{o} ; \theta)
f^(o;θ)。 内在的回报是:
R
T
=
∥
f
^
(
o
;
θ
)
−
f
(
o
)
∥
2
R_T=\|\hat{f}(\mathrm{o} ; \theta)-f(\mathrm{o})\|^2
RT=∥f^(o;θ)−f(o)∥2
然后,用SGD训练预测器网络,使期望的MSE最小化,将随机初始化的网络提取为训练的网络。 这种精馏误差可以看作是预测不确定性的量化。 由于一个新的状态被期望与预测器已经被训练的不同,内在的奖励也变得更高,以鼓励访问新的状态。
3.3.3 Combination with Gradient-based Placement Optimization
考虑到对宏放置的评价指标的影响,数百万标准单元的放置与宏的放置同样重要。 为了保证每次迭代的运行时间能够满足训练的需要,我们在奖励计算步骤中应用了基于梯度的优化Placer DreamPlace[2]来安排标准单元。 一方面,大型宏作为固定实例的位置会影响梯度优化求解质量,而梯度优化求解质量可以通过训练来提高。 另一方面,对wirelength等度量的更好的逼近会为训练agent提供更好的指导。 结果表明,RL Agent与梯度优化砂矿的结合将会相互促进。 此外,最先进的工具DreamPlace用深度学习工具包实现了分析布局中的关键内核,如wirelength和密度计算,充分挖掘了GPU加速的潜力,在不到一分钟的时间内减少了运行时间。
3.3.4 Joint Learning of Placement and Routing
路由性是布局过程中最重要的考虑因素之一,因此路由拥塞是以往大多数方法中目标(奖赏)函数中必不可少的组成部分。 然而,拥塞作为一个隐式可路由性模型是粗糙的,并不总是准确的。 同时,HPWL作为Wirelength的代理也引入了对真实目标的偏差。 这促使我们共同学习布局和路由任务,这两种任务都试图在实践中最小化无线网络。 DeepPR中的任何一种路由方法,包括RL模型和经典路由器,都可以通过将布局任务得到的网表分解为pin-to-pin路由问题来确定路由方向。 然后,整个wirelength被用作放置和路由代理分别优化两个任务的偶发奖励。 这种联合学习范式的优点是双重的。
一方面,布局解决方案为路由代理提供了丰富的训练数据,而不是以往工作中使用的随机生成数据,缺乏对实际领域数据分布的建模。 另一方面,路由为布局代理提供了一个直接的优化目标,从而减轻了中间代价模型的需要,减少了奖励信号中的偏差。
四、Experiment
略
除了更好的实验结果的数据,主要为迭代次数、预训练设置与实验结果的关系,同时消融实验也探讨了RND模块和GNN模块对实验结果的影响。
个人总结与思考
在这个工作中,作者提出了一种基于布局和路由的端到端学习模式。对于宏的布局,采用了强化学习的方法;对于比较繁琐的标准单元布局,采用了基于梯度的优化技术。同时将布线(路由)也纳入强化学习对布局布线进行联合求解,这是区别于之前先布局再布线的的方法。主要的创新点有:1.提出了基于双视图(布局图和布线图)来融合和嵌入全局和局部的信息;2.设计了基于蒸馏方法的奖励策略,提高了搜索的效率。
这是我看到的第一篇将图神经网络引入布局布线工作的文章,这也是我之前没有过的思路,我也突然发现这个任务是可以转化成和图有关的任务的,同时,将布局布线过程中的多个优化目标融合成一个奖励机制也是一种思路,也就是将多目标任务,在强化学习中设计成可以在每一步有反馈的奖励机制,可以提高模型探索更优解的效率。