On Joint Learning for Solving Placement and Routing in Chip Design

news2024/11/26 2:28:11

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.设计了基于蒸馏方法的奖励策略,提高了搜索的效率。
这是我看到的第一篇将图神经网络引入布局布线工作的文章,这也是我之前没有过的思路,我也突然发现这个任务是可以转化成和图有关的任务的,同时,将布局布线过程中的多个优化目标融合成一个奖励机制也是一种思路,也就是将多目标任务,在强化学习中设计成可以在每一步有反馈的奖励机制,可以提高模型探索更优解的效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/333221.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Part 4 描述性统计分析(占比 10%)——中

文章目录【后续会持续更新CDA Level I&II备考相关内容,敬请期待】【考试大纲】【考试内容】【备考资料】【扩展知识——大数定律和中心极限定理】3、统计分布3.1、离散型随机变量的三种重要分布3.1.1、两点分布3.1.2、伯努利试验及二项分布3.1.2.1、伯努利试验3…

算法训练营 day39 贪心算法 无重叠区间 划分字母区间 合并区间

算法训练营 day39 贪心算法 无重叠区间 划分字母区间 合并区间 无重叠区间 435. 无重叠区间 - 力扣(LeetCode) 给定一个区间的集合 intervals ,其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互…

Early Stopping中基于测试集(而非验证集)上的表现选取模型的讨论

论文中一般都是用在验证集上效果最好的模型去预测测试集,多次预测的结果取平均计算准确率或者mAP值,而不是单纯的取一次验证集最好的结果作为论文的结果。如果你在写论文的过程中,把测试集当做验证集去验证的话,这其实是作假的&am…

shiro、springboot、vue、elementUI CDN模式前后端分离的权限管理demo 附源码

shiro、springboot、vue、elementUI CDN模式前后端分离的权限管理demo 附源码 源码下载地址 https://github.com/Aizhuxueliang/springboot_shiro.git 前提你电脑的安装好这些工具:jdk8、idea、maven、git、mysql; shiro的主要概念 Shiro是一个强大…

麻省理工出版 | 2023年最新深度学习综述手册

UCL Simon Prince的新书:《Understanding Deep Learning》 ,在2023年2月6日由MIT Press出版。他之前写过很受欢迎的《Computer Vision: Models, Learning, and Inference》。 关于这本最新的深度学习手册,作者这样介绍它: 正如书…

数据结构与算法基础-学习-09-线性表之栈的理解、初始化顺序栈、判断顺序栈空、获取顺序栈长度的实现

一、个人理解栈是线性表的一种衍生,和之前的顺序表和链表在插入和删除元素上有较大差异,其他基本相同,栈是数据只能插入表的尾部(栈顶),删除数据时只能删除表的尾部(栈顶)数据&#…

2022Q4手机银行新版本聚焦提升客群专属、财富开放平台、智能化能力,活跃用户规模6.91亿人

易观:2022年第4季度,手机银行APP迭代升级加快,手机银行作为零售银行服务及经营的主阵地,与零售银行业务发展的联系日益紧密。迭代升级一方面可以顺应零售银行发展战略及方向,对手机银行业务布局进行针对性调整优化&…

前端面经详解

目录 css 盒子充满屏幕 A.给div设置定位 B.设置html,body的宽高 C.相对当前屏幕高度(强烈推荐) 三列布局:左右固定,中间自适应 flex布局(强烈推荐) grid布局 magin负值法 自身浮动 绝对定位 圣…

基于PHP的招聘网站

摘要在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括在线招聘的网络应用,在外国在线招聘已经是很普遍的方式,不过国内的在线招聘可能还处于起步阶段。招聘网站具有招聘信息功能的双向选择,…

UMI入门(创建react项目)

1、umI的环境要求确保 node 版本是 10.13 或以上React 16.8.0 及以上的 React2、什么时候不用 umi需要支持 IE 8 或更低版本的浏览器需要支持 React 16.8.0 以下的 React需要跑在 Node 10 以下的环境中有很强的 webpack 自定义需求和主观意愿需要选择不同的路由方案3、与其他框…

领域搜索算法之经典The Lin-Kernighan algorithm

领域搜索算法之经典The Lin-Kernighan algorithmThe Lin-Kernighan algorithm关于算法性能提升的约束参考文献领域搜索算法是TSP问题中的三大经典搜索算法之一,另外两种分别是回路构造算法和组合算法。 而这篇文章要介绍的The Lin-Kernighan algorithm属于领域搜索算…

精华文稿|迈向统一的点云三维物体检测框架

分享嘉宾 | 杨泽同 文稿整理 | William 嘉宾介绍 Introduction 3D检测是在三维世界中去定位和分类不同的物体,与传统2D检测的区别在于它有一个深度信息。目前,大部分的工作是倾向于用点云去做三维检测,点云实际上是通过传感器去扫描出来的一…

Redis 的安装 + SpringBoot 集成 Redis

1.安装 Redis此处的 Redis 安装是针对 Linux 版本的安装, 因为 Redis 官方没有提供 Windows 版本, 只提供了 Linux 版本. 但是我们可以通过Windows 去远程连接 Redis.1.1 使用 yum 安装 Redis使用如下命令, 将 Redis 安装到 Linux 服务器:yum -y install redis1.2 启动 Redis使…

科技云报道:开源真的香,风险知多少?

科技云报道原创。 过去几年,开源界一片火热,开源软件技术已全面进军操作系统、云原生、人工智能、大数据、半导体、物联网等行业领域。 数据显示,我国超九成企业在使用或正计划使用开源技术。 与此同时,全球各大开源组织相继兴…

苹果手机专用蓝牙耳机有哪些?与iphone兼容性好的蓝牙耳机

蓝牙耳机摆脱了线缆的束缚,在地以各种方式轻松通话。自从蓝牙耳机问世以来,一直是行动商务族提升效率的好工具,苹果产品一直都是受欢迎的数码产品,下面推荐几款与iphone兼容性好的蓝牙耳机。 第一款:南卡小音舱蓝牙耳…

Springboot部署阿里云短信服务

一、阿里云短信模板配置(获取SignName[签名名称]、TemplateCode[模板CODE]) 1. 进入阿里云首页直接搜索短信服务,并点击国内消息进入国内文本短信管理页面 2. 选择签名管理点击添加签名 填写签名信息并提交 注:下面的签名来源如…

全栈自动化测试技术笔记(一):前期调研怎么做

昨天下午在家整理书架,把很多看完的书清理打包好,预约了公益捐赠机构上门回收。 整理的过程中无意翻出了几年前的工作记事本,里面记录了很多我刚开始做自动化和性能测试时的笔记。 虽然站在现在的角度来看,那个时候无论是技术细…

【Java 面试合集】描述下Objec类中常用的方法(未完待续中...)

描述下Objec类中常用的方法 1. 概述 首先我们要知道Object 类是所有的对象的基类,也就是所有的方法都是可以被重写的。 那么到底哪些方法是我们常用的方法呢??? cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringw…

你知道 GO 中什么情况会变量逃逸吗?

你知道 GO 中什么情况会变量逃逸吗?首先我们先来看看什么是变量逃逸 Go 语言将这个以前我们写 C/C 时候需要做的内存规划和分配,全部整合到了 GO 的编译器中,GO 中将这个称为 变量逃逸 GO 通过编译器分析代码的特征和代码的生命周期&#x…

在RT-Thread STM32F407平台下配置SPI flash为U盘

记录下SPI Flash U盘实现过程中踩过的坑,与您分享。前提条件是,需要先将SPI Flash 配置到elm fal文件系统,并挂载成功。如下图然后开始配置USB1,在CubeMX,选择SUB_OTG_FS2 选择USB Device3,确认USB时钟为48…