读论文9——On Joint Learning for Solving Placement and Routing in Chip Design

abstract

在现在的芯片设计流程中,布局和布线是两个很关键的步骤。而机器学习的引入,在GPU加速和减少对人类专家的依赖方面,有很大的优势。当然,现在还有一些基础的问题亟待解决:可扩展性、奖励设计、端到端学习范式。为了实现端到端的布局学习,作者将强化学习和基于梯度的优化方案结合,提出了基于联合学习的宏和标准单元格布局的方法。为了连接布局和随后的布线工作,作者还提出了一种通过强化学习的联合学习方法。该方法包括一个重要的设计:多视图嵌入模型。用它来为全局图级和局部图级信息编码。为了鼓励探索,还设计了随机网络蒸馏。结果表示该方法设计有效。

问题:什么叫宏和标准单元格?macro and standard cells
多视图嵌入模型? multi-view embedding model
随机网络蒸馏? random network distillation

Introduction

好的布局应该是可以引导好的芯片面积使用,性能表现和好的可布线性。在布局完成后,布线就是指定导线去连接各个组件。其实,在布局完成之后,我们就能粗略地估计线的总长和拥塞。布局的目的就是在不破坏布局密度、路由拥塞这些约束的前提下,去最小化PPA指标(功率,性能,面积)。布线的目的是最小化总线长。
作者为布局问题提供了一种管道:将一张网表表示为一个超图H=(V,E).这里V表示一系列的节点(元器件),E表示一系列的边(也就是网线)。布局任务分为两个步骤:先放宏,后放置大量的元器件。
在论文中,作者首先为布局问题的两个步骤提出了一种端到端学习方法DeepPlace:先使用深度强化学习代理放置宏,然后利用基于梯度的优化策略来放置数百万的标准元器件。另外,作者开发了一种联合学习方法DeepPR,这是为了布局和随后的布线任务。论文的主要贡献是:

  1. 针对基于学习的布局,提出了DeepPlace,这样通过强化学习去放置宏,通过神经网络形成的梯度优化策略去放置元器件。
  2. 提出来DeepPR,联合地通过强化学习解决了布局和布线问题。
  3. 为了使得强化学习在管道中更有效率,设计了一种新的策略网络(同时使用了CNN和GNN——图神经网络),这提供了两种视角。希望能够综合利用全局嵌入式信息和节点层次的嵌入式信息。随后作者使用了随机网络蒸馏来鼓励强化学习去探索。
  4. 针对联合学习的布局布线做了实验评估,确实比分开式要好。

问题:
(1)网表? netlist
一个网表大概长这样:
网表

(2)什么是路由拥塞?(routing congestion)
(3)什么是管道?(pipeline)是指上面的那种对网表的表示方法吗?

Related work

经典的布局方法

经典布局方法一般是分为三大类:基于划分的方法、随机/爬山法、分析解决法。
基于分析法以前是应用了分而治之的方法:网表和芯片的布局是分开的。直到后来,子表能够被优化器给解决了——这是一种分层结构。但是由于每个子问题都是独立解决的,所以解决方案的质量受到影响。后来,一些多层的划分方法被提出了。值得一看
至于随机和爬山的方法,是从模拟退火算法中来的。在实践中,SA利用一个随机扰动来优化布局方法。这也是模拟退火算法的一个核心思想——随机的扰动有助于全局搜索最优而不至于陷入局部最优。但是,SA很耗时,难以解决不断增长的电路规模(时间复杂度简直是指数级别增长)。
分析解决法,使用了指定的方法或者非线性优化器。非线性优化更能光滑地靠近损失函数,但是复杂度很高。现代的分析法布局比如ePlaceRePlAce有着很好的效果。值得一看
以上所有方法都没有在GPU上尝试过,而在CPU上训练又很慢。其实,分析布局问题是类似于神经网络的训练的。基于这样的思想,DREAMPlace出现了,它使用了Pytorch进行深度学习,速度大大加快。

问题:
为什么分析布局问题类似于训练神经网络(analytical placement problem)?
因为它们都包括优化参数、最小化一个代价函数

基于学习的布局方法

基于学习的布局方法(尤其是强化学习)出现了,可以获得更强的泛化能力。谷歌提出了第一个端到端学习方法来进行宏的布局(没有说元器件布局),该方法将芯片布局问题建模成了一个连续决策问题。每一步,强化学习代理放置一个宏,然后得到一个奖励值,进行下一步。他们在RL和SA之间提出了一个循环框架,RL用来调节元器件的相对空间顺序,SA在RL初始化的基础上进一步探索解决空间。

问题:
谷歌怎么将芯片布局问题建模成连续决策问题的?

经典的/基于学习的布线方法

全局布线是根据将多管脚连接问题拆分成双管脚连接问题而发展出来的。在那之后,每一个管脚到管脚的布线问题可以被经典的启发式布线方法解决。这里有rip-up,reroute,force-directed routing, region-wise routing。最近,ML和RL都被广泛应用进来了,有很多相关的成果。

Methodology

问题公式化

先考虑宏布局。宏布局的目标是决定宏在芯片上的位置——不能重叠,且线长应该最小。步骤是用一个RL代理有序地放好宏,当所有宏被放好后,有两种选择:一是固定他们的位置然后使用基于梯度的布局优化来获得完整的布局策略(这里说完整,应该是考虑放上所有元器件),然后获得奖励,这是一个步骤;另一个是直接在宏上面布线,获得一个近似的线长;用这个线长来当奖励。这两个方式如图:
在这里插入图片描述马尔可夫决策过程的一些关键元素:
状态 s t s_t st: 由一个全局图 I I I和网表图H组成。H是包含了各个宏的位置细节信息。而I的话更像是粗糙的大致位置信息。
动作 a t a_t at: 凡事空的位置都可以放置宏。如果某次动作在位置(x,y)处放置了一个宏,那么设置 I x y = 1 I_{xy}=1 Ixy=1
奖励 r t r_t rt: 是负的权重和(线长和布线拥塞,这里它们二者需要一个trade-off)。不同于其他的深度强化学习策略去设置所有过去的动作的奖励为0,这里作者使用了随机网络蒸馏(RND)来计算每一步的奖励,这实际上是一个对以往所有动作进行一个加权求和,这样就可以避免由于情景奖励而导致的低劣表现。

策略网络的结构

I是给出了整个布局的大致信息。然后输入I,通过一个CNN,就能得到全局嵌入信息。网表图应该也是重要的输入信息,是可以指导动作预测的。所以作者应用GNN去产生细节的节点嵌入信息。GNN能够探索网表的物理意义并将节点的连通性信息提取为低维向量表示。综合利用这两个网络得到的向量,输入全连接层,产生一个针对所有动作可能性分布——这样就能指导下一个动作了。作者是认为这种多视角的嵌入式模型能够综合探索全局和节点层次的信息。网络结构图:
在这里插入图片描述

奖励设计

外在奖励设计:

我们当然不可能去准确获得每一个实验模型的最终功率、性能和面积,这样用时太多。但是,我们可以估算一个奖励函数使得它和真正的奖励近似。代价函数是结合了总线长和布线拥塞而设计的,我们的强化学习过程寄就是优化这个函数:
在这里插入图片描述
P表示一次的布局策略。H表示网表, λ \lambda λ是象征二者权重的超参数。对于总线长函数的表示,这里用了一个近似的方法,用半周长来近似。近似公式:
在这里插入图片描述拥塞就用矩形均匀线的密度来表示。

内在奖励设计:

由于一个布局过程只有在结束时才会提供信息,所以学习过程就成了一个episodic task。意思是说每个动作只能影响有限的奖励设置。episodic reward容易使得训练过程卡住,降低网络内部性能和样本复杂度。所以要给每一个时间步骤一个intrinsic bonus也就是内部奖励来鼓励RL代理去探索空间。使用了两个网络。一个是固定的目标网络,一个是被训练的预测网络。对于给定的输入(observation),两个网络分别产生一个嵌入向量 f ( o ) f(o) f(o) f ( o ; θ ) f(o;\theta) f(o;θ).对应的内部奖励函数写成:
在这里插入图片描述
网络结构如图:
在这里插入图片描述最终的目的是训练预测网络使得R尽量小。

结合基于梯度的布局优化

对数百万个标准元器件的布局,就和宏布局一样重要。这里作者使用了最新的DREAMPlace布局系统去给元器件布局。一方面,大量宏作为固定实例的位置会影响基于提督优化的placer的求解质量,而大量的训练又能提高质量;另一方面,更好的靠近现实指标对于训练agent有着指导意义。所以,RL和基于梯度布局优化的结合是相互促进的。

布局和布线的联合学习

可布线性是我们在布局时需要考虑的一个重要因素。所以作者考虑联合学习布局和布线,这两者都要尝试最小化总的线长。这里有两个RL代理,一个负责布局,一个负责布线,对应两个不同的策略网络。优点是:一方面布局操作为布线提供了大量的数据,而不是像以往随机生成数据。另一方面布线为布局代理提供了优化的直接目标,降低了奖励信号中的偏差。

实验

基准和设置

讲了一些数据的准备和实验实施环境。
问题:ISPD2005是一个什么学术基准套件?

迁移学习

预训练:如果随机初始化参数来训练整个网络,那么可能会用很长的时间才能达到收敛,而且最终性能也差。所以作者使用了迁移学习。这里作者产生了一个重要的直觉——能够最小化总线长的RL代理应该能提供一个中间的布局。所以作者就先训练这样的一个策略网络:仅仅包括宏连接(没有元器件的连接)。然后再把元器件加上去,这其实也是一个从易到难的网络训练过程。

切除学习

这里就是将最终的网络和没有RND/GNN的网络对比,发现RND和GNN这两个操作都很重要,使得平均情景回报迅速增加并且收敛。如图:
在这里插入图片描述

宏与元器件联合布局的结果

值得注意点是最小化宏之间的总线长不会直接使得整个布局的总线长减小,所以在预训练RL代理时还需要特别注意。这里,作者在数据集上比较了不同迭代次数的预训练和完全不预训练的结果。发现预训练300次能够得到最快收敛、最优的情景回报。为什么500次的时候效果有所下降呢?可能是因为训练次数过多伤害了探索并且容易过拟合。如图:
在这里插入图片描述然后在下表中分析了各种方法对应的总线长。发现前人的方法直接拥塞了。而联合学习DeepPlace的方法最好。而且在加上了RND后提供了内部奖励,它训练起来速度很快。

布局和布线联合的结果

在这里插入图片描述从表中可以看到,DeepPR相比分开布局和布线,实际上缩短了总线长。联合布局布线提供了无偏差的奖励信号,这比之前用半周长去估计总线长要准确。这点也可能提升现有的一些布局网络的性能。
RL代理倾向于将宏放置在两个相邻的网络中,如果重叠就搜索最近的网络,所以我们可以从下图中看到,最终形成的布局是偏菱形的。
在这里插入图片描述

总结与展望

布局和布线是芯片设计最耗时和具有挑战性的两个内容,作者针对它们提出了一种端到端的学习模式。
对于宏布局,采取了强化学习。对于元器件布局,采取了基于梯度的布局优化策略,并将其纳入了端到端管道。进一步开发了联合布局和布线的强化学习,这是之前没有的研究。特别是提出了一种端到端的嵌入式模型,设计了蒸馏方法提高探测效率。
后面,作者准备探索宏和标准元器件的放置、端到端范例中宏和标准单元之间的路由,这两个问题在芯片设计中是强耦合的。然而现在是没有这方面的研究能实现这个目标。
当前的限制:只能放置适量的宏。未来应该考虑改变宏的大小、形状,进一步减少大的宏之间的重叠。以及应该将人类的启发和规则结合到学习范式中。
潜在的负面社会影响:可能导致很多EDA设计人员失业。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值