The Policy-gradient Placement and Generative Routing Neural Networks for Chip Design

The Policy-gradient Placement and Generative Routing Neural Networks for Chip Design
36th Conference on Neural Information Processing Systems (NeurIPS 2022)

一、Methodology

方法概述:
给定一个网表作为输入,放置的目标是将宏和标准单元格放置在芯片画布上,理想情况下将重叠区域最小化。 基于布局结果,通常执行布线以在不违反约束的情况下最小化总线缆。对于布局,我们的目标是通过RL方案灵活有效地处理混合大小的宏,同时优化网络的路由顺序。对于路由,我们提出了一个条件生成模型来一次获得路由,而不是像以前基于学习[6]和经典路由器[20,21]那样进行顺序的PIN连接。 堆叠RL布局网络和生成式路由网络可以通过梯度反向传播以端到端的方式学习,同时按照目前最先进的基于学习的布局和路由求解器[2,1]完成整个任务。 注意,与[2]相比,我们的工作是纯粹基于学习的,在整个管道中仍然涉及不可学习的经典路由器。 纯神经结构意味着我们的模型有潜力通过使用更大的模型进行进一步的改进来享受更高的容量。

1.1混合尺寸布局的强化学习算法

[2] A graph placement methodology for fast chip design
[22] Human-level control through deep rein-forcement learning
经典放置器解决混合大小放置问题的一个自然想法是采用基于分区的分层方法。 但是,由于每个子问题都是独立求解的,因此牺牲了求解质量。 同时,DeepPlace作为一种基于学习的Placer假设每个宏只占用网格图中的一个单元格,忽略了预先放置的宏,导致最终放置结果中存在严重的重叠问题。 这促使我们通过考虑宏的实际大小以及初始放置信息来扩展DeepPlace的公式。 我们仍然采用[22]作为CNN主干,GCN[23]作为GNN主干,它由三层组成,分别包含16、32和16个特征通道。 策略网络通过Plosal Policy Optimization(PPO)更新,符合[2]中采用的有效设置。 对混合尺寸布局的马尔可夫决策过程(MDPS)的修正元素定义为:

  • State s t s_t st: 由全局图像 I I I来描述布局,网表图 H H H包含被放置宏的详细信息,但是初始状态不再是零矩阵,而是预先处理,如果位置 ( x , y ) (x,y) (x,y)已经被占用,则 I x y = 1 I_{xy}=1 Ixy=1
  • Action a t a_t at: Agent的作用是寻找当前宏的中心,如果区域 R R R中的所有点 P P P都满足 I p = 0 I_p=0 Ip=0,则可以得到位置 ( x 0 , y 0 ) (x_0,y_0) (x0,y0),其中, R = ( x , y ) ∣ ∣ x − x 0 ∣ ≤ h 2 , ∣ y − y 0 ∣ ≤ w 2 R={(x,y) | |x-x_0|\le \frac{h}{2}, |y-y_0|\le \frac{w}{2}} R=(x,y)∣∣xx02h,yy02w,其中,h和w分别是当前宏的高和宽。
  • Rewar r t r_t rt:进一步控制布局,当结束时,奖励由布线长度,路由拥塞和重叠面积的负加权组成:
    R E = − L w l − λ 1 ⋅ L c g − λ 2 ⋅ L o l R_E = -L_{wl} -\lambda_1·L_{cg}-\lambda_2·L_{ol} RE=Lwlλ1Lcgλ2Lol,其中 λ \lambda λ是加权参数。

1.2 网络中PIN布线的条件生成学习

全局路由网格协议。
在全局路由中,物理芯片通常被划分为矩形区域,如图1左侧部分所示,每个区域称为全局路由单元(GCell),它对应于右侧网格图G(V,E)中的一个节点 V i ∈ V V_i∈V ViV。 而每条边 e i j ∈ E e_{ij}∈E eijE表示相邻Gcells v i v_i vi v j v_j vj之间的联合边界。 对于边 e e e,它的容量 c e c_e ce是允许的最大可以穿过 e e e的导线数,使用 u e u_e ue e e e已经被分配的实际导线数。 溢出 o e = m a x ( 0 , u e − c e ) o_e=max(0,u_e-c_e) oe=max(0uece)表示超出 c e c_e ce的导线量。 每条路线都符合直线Steiner树结构。
在这里插入图片描述
基于网格的条件生成路由。
整个路由任务由众多的网络组成,这些网络的路由可以相互独立。 单个网络由放置在网格图节点中的一系列引脚组成。 因此,本文主要研究一个网络中多个引脚的路由问题。 给定一个单网,我们将一网路由问题描述为从一网路由图像X到相应的路由布局图像Y的映射,其中X包含三个通道:
1)引脚的位置
2)水平网格边的可用性
3) 垂直网格边的可用性,Y有一个通道。
对于输出,y的每个像素的值表示该网格点是否有路由的可能性。因此,路由的合成也可以看作是y中像素的二元分类。 随后收集其可能性高于阈值的像素以形成路线。 在路径不连通的情况下,我们应用迷宫路由来细化结果。 在最初的模型设计中,我们没有采用随机噪声Z,这主要导致产生相当随机的输出,因为路由任务几乎不需要随机性。 我们的路由模型采用条件生成对抗框架,在图像生成中显示出了有效性。 该生成器由用于输入大小为64×64或以下的基本生成器(较小的填充到64×64)和用于输入大小大于64×64的扩展生成器组成。 鉴别器由两个子鉴别器组成,从有效性和真实性两个角度估计路线。 此外,我们还设计了一个增强损失的IMPR 。

1.2.1 布局输入尺寸自适应生成器

在路由过程中,物理芯片按照图中所示的不同宽度和高度被分解成GCells ,如图1所示,造成相应网格图的比例尺的多样性。 为了使它更易于处理,我们开发了一个输入大小自适应生成器来处理各种网格图。 首先,我们构造了一个基本的生成器 G b a s e G_{base} Gbase,在宏放置阶段将芯片划分为64×64块,用于求解不大于64×64的网格。 [26]提出的体系结构部分被采用为 G b a s e G_{base} Gbase的主干,该体系结构在生成性任务中已被证明是成功的。 我们的基本生成器包含四个组件:1)卷积前端,2)一系列残差块,3)转置卷积组件,4)生成输出的卷积层。
[26]

其次,为了处理更大的网格,我们建立了另一个生成器 G l a g e G_{lage} Glage,它由两个子网络组成: G i n n e r G_{inner} Ginner G o u t e r G_{outer} Gouter(为了简单起见,简称 G i G_i Gi G o G_o Go)。 G i G_i Gi G o G_o Go分别被称为引导网络和填充网络。 引导网络由 G b a s e G_{base} Gbase拥有的前三部分组成。 相反,填充网络的成分与 G b a s e G_{base} Gbase相似,相应地我们用 G o k ( k = 1 , 2 , 3 , 4 ) G^k _o(k=1,2,3,4) Gok(k=1,2,3,4来表示它们。 我们将输入网格馈送到 G o 1 G^1_o Go1以获得特征映射,并对输入网格下采样以馈送到 G i G_i Gi以获得另一个特征映射。 G o 2 G^2_o Go2将这两个特征映射的元素之和集成到 G 0 G_0 G0中,然后将混合特征映射转换为输出。 我们模型的结构在图得到了说明 2(左)。 我们可以在 G l a r g e G_large Glarge上进一步增量地堆叠额外的子网络,并且可以使用模型压缩技术来帮助保持内部网络的整洁。 在训练网络的同时,我们先分别对子网络进行预训练,然后我们联合训练它们来微调整个网络。

在这里插入图片描述
Remarks
基于CNN的生成器与路由一致:二维邻域结构、平移等价性和局部性。 在路由过程中,芯片被表示为网格,网格被进一步转换为图像。 路由还表现出平移相等性,因为用上下文不会更改路由结果。 此外,对于每个网格节点,卷积核从局部相邻顶点,特别是与之直接相连的顶点收集信息,形成局部路由特征。 然后产生整体路线。 训练良好的引导网络提供了相当于远程依赖的全局信息,而不是简单地堆叠层来处理远程依赖。

1.2.2 兼顾真实性和连通性的双鉴别器

路由问题有一个固有的约束,即所有引脚都应该连接。 因此,我们设计了一个鉴别器来评估输出的连通性。 为了有效地训练连通性鉴别器,我们开发了一个算法来准确地计算出每条假路由和真路由的连通性,并将结果作为标记。 单纯的连通性不足以评估输出的真实性,因此我们采用另一个鉴别器作为GAN中的原始鉴别器来估计输出的真实性。 总的来说,我们的模型的对抗性损失可以表示为 :
L a d v ( G , D ) = ∑ i = 1 , 2 λ i ( E x , y [ log ⁡ D i ( x , y ) ] + E x [ log ⁡ ( 1 − D i ( x , G ( x ) ) ) ] ) \mathcal{L}_{a d v}(G, D)=\sum_{i=1,2} \lambda_i\left(\mathbb{E}_{x, y}\left[\log D_i(x, y)\right]+\mathbb{E}_x\left[\log \left(1-D_i(x, G(x))\right)\right]\right) Ladv(G,D)=i=1,2λi(Ex,y[logDi(x,y)]+Ex[log(1Di(x,G(x)))])
其中 D 1 D_1 D1 D 2 D_2 D2分别表示连通性鉴别器和真实性鉴别器, λ 1 λ_1 λ1 λ 2 λ_2 λ2表示相应的权值s.t。 λ 1 λ_1 λ1+ λ 2 λ_2 λ2=1。 鉴别器共享卷积前端和L=3卷积和残差块的堆栈,然后它们从不同的角度进行评估,如图右部分所示 2.

1.2.3 增强模型损失

当CGAN目标与传统的损失(如L1和L2损失)混合时,训练效率很低,因为大多数网格点是容易产生的负值,不能产生有效的学习信号。 此外,大量琐碎的负面影响会损害训练并导致退化的模型,因此,输出倾向于收敛到一个空的路线。 为了弥合容易产生的负面效应和稀缺的正面效应之间的差距,我们应用焦损[27]并对其进行修改以适应我们的任务:
L F L ( G ) = − E x , y [ 1 N ∑ i = 1 N α [ y i ( 1 − g i ) γ log ⁡ g i + ( 1 − y i ) g i γ log ⁡ ( 1 − g i ) ] ] \mathcal{L}_{F L}(G)=-\mathbb{E}_{x, y}\left[\frac{1}{N} \sum_{i=1}^N \alpha\left[y_i\left(1-g_i\right)^\gamma \log g_i+\left(1-y_i\right) g_i^\gamma \log \left(1-g_i\right)\right]\right] LFL(G)=Ex,y[N1i=1Nα[yi(1gi)γloggi+(1yi)giγlog(1gi)]]

式中 i = 1 , . . . . N i=1,. ... N i=1....N表示网格点, y i y_i yi g i g_i gi分别表示相应网格点的实值和生成值。 我们还将L2损失纳入我们的目标,以接近真实路线。

在这里插入图片描述
连通性鉴别器的引入提高了结果的正确性,但同时可能会略微增加线形。 由于线形有一个精确的理论下界,即半周长线形(HPWL),我们将生成的路由长度与HPWL之间的差值作为正则化项来限制线形长度。 我们用 L r ( G ) = E x [ ∥ l ( G ( x ) ) − h ( x ) ∥ 1 ] \mathcal{L}_{r}(G)={\mathbb{E}}_{x}\left[\|l(G(x))-h(x)\|_{1}\right] Lr(G)=Ex[l(G(x))h(x)1]表示正则化项,其中 l ( G ( x ) ) l(G(x)) l(G(x))表示生成路由的长度, h ( x ) h(x) h(x)表示网络的HPWL。 我们模型的总体增强目标集合了上述损失:
min ⁡ G ( ( max ⁡ D L a d v ( G , D ) ) + μ F L L F L ( G ) + μ L 2 L L 2 ( G ) + μ r L r ( G ) ) \operatorname*{min}_{G}\left(\left(\operatorname*{max}_{D}{\mathcal{L}}_{a d v}(G,D)\right)+\mu_{F L}{\mathcal{L}}_{F L}(G)+\mu_{L2}{\mathcal{L}}_{L2}(G)+\mu_{r}{\mathcal{L}}_{r}(G)\right) minG((maxDLadv(G,D))+μFLLFL(G)+μL2LL2(G)+μrLr(G))

1.3 神经宏布局布线流水线

将基于RL的混合大小宏布局学习模型与一次生成式路由网络相结合,提出了一种用于宏布局和路由的纯神经网络架构。 图3显示了我们的混合尺寸宏放置器在粗略HPWL估计和来自神经路由器的线长度之间具有自适应奖励函数的流程。
在给定电路信息的情况下,我们的混合规模代理将宏顺序放置在芯片版图上,然后采用生成式路由模型连接网络顺序代理选择的网络,最后计算线形作为反馈。 受EM算法的启发,我们首先利用混合规模Agent的布局结果(类似于E步)更新生成路由器,然后在一个完整的强化学习框架中联合学习布局和网序Agent,以递归模式最小化由训练好的生成模型(对应于M步)计算的wirelength。

1.3.1 粗略HPWL计算与路由器WL的自适应奖励

HPWL是估计由路由决定的真实无线网络的常用度量。 然而,在我们的神经管道中,我们使用一次生成路由网络来直接路由所有的网络,这减少了奖励信号中的偏差。 然而,值得注意的是,未经训练的安置策略网络将从随机权重开始,因此安置结果质量很低。 因此,单网中的引脚分布会分散,这使得基于生成模型的路由器难以产生准确的路由布局图像。 为了解决这个问题,我们提出了一个自适应的方案来计算我们的布局代理的wirelength,同时结合HPWL和神经路由器的输出。 我们引入λ来缩放两个值,并定义平滑的wirelength W L s WL_s WLs
W L s = λ ⋅ W L n + ( 1 − λ ) ⋅ H P W L WL_s=\lambda\cdot WL_n+(1-\lambda)\cdot HPWL WLs=λWLn+(1λ)HPWL
其中 W L n 是 WL_n是 WLn神经路由器的反馈。 在每次迭代中,变量 λ λ λ由函数 1 − e − 0.01 ⋅ n i t e r 1-e^{-0.01·niter} 1e0.01niter更新。 最初, λ λ λ以0开始,以便由用作粗奖励信号的HPWL确定wirelength。 随着训练的进行,神经路由器的反馈逐渐成为一个突出的因素,为布局Agent提供更准确的目标。

1.3.2 学习网路由顺序

网络的路由顺序是影响路由质量的最关键因素之一[30]。 大多数经典的路由器通过启发式来确定网络顺序,例如,提前[31]路由较小的网络寻找自由路径的灵活性。 然而,对于“小网”有不同的定义,没有一个被证明是最优的。 更糟糕的是,实际路由过程的复杂性要求我们动态地改变网络顺序,这在这样一个复杂的系统中是很难实现的。 幸运的是,我们的神经路由器将路由任务分解成一系列单网路由问题,然后独立求解,方便学习网序。 通过开发一个RL代理,在神经路由器上建立网络顺序学习模块,确定下一个路由哪个网络。 受布局代理结构的启发,网序问题的状态由表示当前路由布局的路由图像R和表示网间连通性的图G组成。 R有三个通道:路由网的位置,水平和垂直网格边缘的能力。 图G是网表图H的边到顶点对偶,其顶点表示网(即H的超边),边表示网之间的公共单元(即H的节点)。 注意到布局任务和网络排序任务的状态非常相似,但都追求最小化总线形,我们采用相同的策略网络分别为两个任务生成特征嵌入,将它们组合成一个完整的RL框架。 不带启发式求解器的联合结构反映了布局和路由之间的强耦合关系,不同于[2]仅将路由作为黑箱来计算报酬。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值