[读论文] On Joint Learning for Solving Placement and Routing in Chip Design

news2024/12/24 10:57:39

0. Abstract

由于 GPU 在加速计算方面的优势和对人类专家的依赖较少,机器学习已成为解决布局和布线问题的新兴工具,这是现代芯片设计流程中的两个关键步骤。它仍处于早期阶段,存在一些基本问题:可扩展性、奖励设计和端到端学习范式等。为了实现端到端放置学习,我们首先提出了一种由 DeepPlace 命名的联合学习方法,通过将强化学习与基于梯度的优化方案相结合,用于宏和标准单元的放置。为了进一步将布局与随后的布线任务连接起来,我们还开发了一种通过强化学习来同时完成宏布局和布线的联合学习方法,称为 DeepPR。我们的强化学习范例中的一个关键设计涉及一个多视图嵌入模型,用于编码输入宏的全局图级和局部节点级信息。此外,设计了随机网络蒸馏来鼓励探索。在公共芯片设计基准上的实验表明,经过几小时的训练,我们的方法可以有效地从经验中学习,并为标准单元放置后提供中间放置。


1. Introduction

2. Related Work


3. Methodology

3.1 Problem Formulation

首先,针对宏布局问题,其目标是确定宏在芯片画布上的位置,并且没有重叠和使线路长度最小。我们的 RL 代理将这些宏依次映射到布局上的有效位置。

  1. 当所有的宏都被放置后,我们要么固定它们的位置,要么采用基于梯度的放置优化,得到一个完整的布局方案,并有相应的评估指标,如线长和拥塞,如图 2(a) 所示。
  2. 或者,我们采用经典布线器或另一种 RL 代理来布局线路,并将确切的总长度作为布局和布线任务的奖励,如图 2(b) 所示。

在这里插入图片描述
马尔可夫决策过程的关键要素定义如下:

  • State s t s_t st 状态表示由两部分组成,全局图 I I I 描绘了布局,网表图 H H H 包含了已放置的所有宏的详细位置。注意,布局问题类似于棋盘游戏,两者都需要确定棋子的位置。因此,我们将棋盘建模为二值图像 I I I,其中 1 表示已被占用的位置。此外,棋盘游戏的规则类似于网表图 H H H,与全局图像互补。
  • Action a t a_t at 动作空间包含时间 t t t n × n n × n n×n 画布上的可用位置,其中 n n n 表示网格的大小。一旦当前宏选择了一个备用位置 ( x , y ) (x, y) (x,y),我们设置 I x y = 1 I_{xy}=1 Ixy=1 并从可用列表中删除该位置。
  • Reward r t r_t rt 最后的奖励是最终解决方案的线长和布线拥塞的负加权和。权重是主布线目标长度与布线拥塞之间的权衡,反映了路由任务的可达性。与其他深度强化学习放置器将之前所有动作的奖励设置为 0 不同,我们采用随机网络蒸馏(RND)来计算每个时间步的内在奖励。

策略网络学习通过放置先前的芯片来最大化预期回报,并通过近端策略优化(PPO)来提高放置质量。

3.2 The Structure of Policy Network

由于解决布局问题和玩棋盘游戏本质上都是以顺序的方式确定宏的位置,因此我们将当前状态建模为大小为 n × n n × n n×n 的图像 I I I。当先前的宏放置在位置 ( x , y ) (x, y) (x,y) 时, I x y = 1 I_{xy}=1 Ixy=1。此图像表示给出了部分布局的概述,但丢失了一些详细信息。我们进一步从 CNN 中得到全局嵌入。此外,作为关键输入信息的网表图隐含了奖励计算规则,对动作预测具有详细的指导作用。在这种情况下,我们开发了一个 GNN 架构,该架构可以为当前考虑的宏生成详细的节点嵌入。图神经网络的作用是探索网表的物理意义,并将节点的连通性信息提取成低维向量表示,用于后续的计算。在获得 CNN 的全局嵌入和 GNN 的详细节点嵌入后,我们将它们拼接融合,并将结果传递给全连接层以生成动作的概率分布。我们认为多视图嵌入模型能够综合挖掘全局和节点级信息。策略网络的整体结构如图 3(a) 所示。

3.3 Reward Design

在这里插入图片描述

3.3.1 Extrinsic Reward Design

尽管芯片布局的确切目标是最小化功耗、性能和面积,但它需要行业标准 EDA 工具花费数小时进行评估,这对于需要数千个示例来学习的 RL 代理来说是无法承受的,因此找到与真实奖励正相关的近似奖励函数是很自然的想法。我们定义了具有线长和拥塞的成本函数,试图同时优化性能和可达性: 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)-\lambda\cdot Congestion(P,H) RE=Wirelength(P,H)λCongestion(P,H)
其中 P P P 表示布局方案, H H H 表示网表, λ λ λ 是一个超参数,根据给定芯片的设置对相对重要性进行加权。

  • Wirelength:使用经典的 HPWL 算法
  • Congestion:我们采用矩形均匀线密度(RUDY)来近似布线拥塞。我们在实验中将线路拥塞的阈值设置为 0.1,否则会导致拥塞检查失败。

3.3.2 Intrinsic Reward Design

由于在完整流程结束之前不能提供有用的奖励信号,这使得布局成为一个稀疏奖励任务。情景奖励往往容易使算法在训练过程中陷入困境,导致算法性能低下,样本复杂度低下。受随机网络蒸馏(RND)思想的启发,我们在每个时间步中给予内在奖励以鼓励探索,如图 3(b) 所示。RND 中涉及两个网络:一个固定的和随机初始化的目标网络和一个根据代理收集的全局图像训练的预测网络。给定当前观测值 o o o (也指全局图像),目标网络和预测网络生成嵌入 f ( o ) f(o) f(o) f ^ ( o ; θ ) \hat f(o;θ) f^(o;θ)。则内在奖励为: R T = ∣ ∣ f ^ ( o ; θ ) − f ( o ) ∣ ∣ 2 R_T=||\hat f(o;\theta)-f(o)||^2 RT=∣∣f^(o;θ)f(o)2之后,由 SGD 训练的预测器网络用以最小化一个 MSE,该 MSE 将随机初始化的网络蒸馏为训练好的网络。这种蒸馏误差可以看作是预测不确定性的量化。当一个新的状态被期望与预测器所训练的不同时,内在奖励也会变得更高,以鼓励访问新的状态。

3.4 Combination with Gradient-based Placement Optimization

考虑到对宏布局的评估指标的影响,数百万个标准单元的布局与宏的布局同样重要。为了确保训练时每次迭代的运行时间能够承受,我们应用最先进的基于梯度的优化放置器 DREAMPlace 来安排奖励计算步骤中的标准单元。一方面,宏作为固定实例的位置会影响基于梯度的优化放置的解质量,这可以通过训练随着时间的推移而改善。另一方面,更好的近似度量(如长度)可以更好地指导智能体的训练。因此,RL agent 与基于梯度的优化放置器的组合将相互促进。此外,最先进的工具 DREAMPlace 实现了分析放置中的关键内核,例如,深度学习工具包的长度和密度计算,充分挖掘了 GPU 加速的潜力,并把运行时间减少到了不到一分钟。

3.5 Joint Learning of Placement and Routing

可达性是布局过程中需要考虑的最关键因素之一,因此拥塞是大多数方法中奖励函数的必要组成部分。然而,拥塞作为隐式可达性模型是粗糙的,并不总是准确的。同时,HPWL 作为线长的代表也会对真实目标产生偏差。这促使我们共同学习布局和布线任务,两者都试图在实践中最小化线长。我们可以在 DeepPR 中采用任何布线方法,包括 RL 模型和经典布线器,将从布局任务得到的网表分解为引脚到引脚的布线问题后确定方向。然后将总线长作为情景奖励,分别用于优化布局和布线代理的两个任务。这种联合学习模式的优势是双重的。一方面,布局方案为布线代理提供了丰富的训练数据,而不是以往工作中使用的随机生成数据,缺乏对真实领域数据分布的建模;另一方面,路径为分配代理提供了一个直接的优化目标,从而减轻了对中间成本模型的需求,减少了奖励信号的偏差。

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

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

相关文章

数据结构 | 顺序表专题

数据结构 | 顺序表专题 文章目录 数据结构 | 顺序表专题课前准备1. 目标2. 需要的储备知识3. 数据结构相关概念 开始顺序表1、顺序表的概念及结构2、顺序表分类3、动态顺序表的实现初始化顺序表打印顺序表内存容量的检查顺序表的尾插顺序表的尾删顺序表的头插顺序表的头删在顺序…

Beyond Compare比较规则设置 Beyond Compare怎么对比表格

在对文件进行比较时,文件夹内的文件可能存在不同类型、不同后缀名、不同内容等差异,这些差异会影响具体的比较结果,因此需要我们对软件的比较规则进行一些设置。接下来就让我们一起来学习一下Beyond Compare比较规则设置,Beyond C…

C语言-递归和迭代

🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…

ZYNQ连载07-PIN设备

ZYNQ连载07-PIN设备 1. 简述 RT-Thread PIN设备 这里参看RT-Thread提供的PIN设备管理接口,简单封装了几个接口函数。 2. 实现 #include "include/drv_gpio.h" #define LOG_TAG "drv_gpio" static XGpioPs xgpiops;void rt_pin_mode(rt_…

消息中间件——RabbitMQ(一)Windows/Linux环境搭建(完整版)

前言 最近在学习消息中间件——RabbitMQ,打算把这个学习过程记录下来。此章主要介绍环境搭建。此次主要是单机搭建(条件有限),包括在Windows、Linux环境下的搭建,以及RabbitMQ的监控平台搭建。 环境准备 在搭建Rabb…

【AD9361 数字接口CMOS LVDSSPI】D 串行数据之SPI

【AD9361 数字接口CMOS &LVDS&SPI】D部分 接续 【AD9361 数字接口CMOS &LVDS&SPI】A 并行数据之CMOS 串行外设接口(SPI) SPI总线为AD9361的所有数字控制提供机制。每个SPI寄存器的宽度为8位,每个寄存器包含控制位、状态监视…

82 N皇后

N皇后 题解1 经典回溯 O(N! * N) 按照国际象棋的规则,皇后可以攻击与之处在 同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的…

vue源码分析(六)——vnode 和 createElement的使用和作用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Vnode是什么?二、create-element.ts文件1.createElement 方法2. _createElement 方法(1)createEmptyVNode 方法&#xf…

STM32F103的中断

文章目录 STM32F103的NVICSTM32F103 的中断优先级分组 STM32F103的NVIC CM3 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256级的可编程中断设置。 CM3中每个中断通道都具备自己的8位中断优先级控制字节, 但ST…

如何从Android手机上轻松恢复误删除的短信 ?

当您使用 Android 手机时,您可能会误删除一些 Android 短信。如果这些消息对您很重要,您可能想要恢复它们。在这种情况下,您可以尝试使用U1tData安卓数据恢复(奇客软件) 来完成这项工作。这篇文章将向您展示更多信息。…

dp算法训练(未完)

第一题 粉刷房子 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/JEj789/ class…

前段知识与基础应用

前端知识 什么是前端:所有和用户打交道的操作页面,我们都称之为前端 例如:pc页面,浏览器的主页面,手机页面等等,可以用肉眼看到的就是前端 什么是后端: 就是一堆代码,用户不能够直接…

游戏和内容创作者福音,Intel蝰蛇峡谷Nuc12SNKi7迷你主机:双十一降价来袭,从9999降至5999

引言 随着双十一购物节的到来,各大品牌纷纷推出了一系列优惠活动,其中备受关注的Intel蝰蛇峡谷Nuc12SNKi7迷你主机也迎来了降价。这款迷你主机以其独特的外观、卓越的性能以及灵活的应用场景,在市场上备受瞩目。此次双十一活动期间&#xff…

【网络协议】聊聊TCP如何做到可靠传输的

网络是不可靠的,所以在TCP协议中通过各种算法等机制保证数据传输的可靠性。生活中如何保证消息可靠传输的,那么就是采用一发一收的方式,但是这样其实效率并不高,所以通常采用的是累计确认或者累计应答。 如何实现一个靠谱的协议&…

✔ ★【备战实习(面经+项目+算法)】 10.29学习

✔ ★【备战实习(面经项目算法)】 坚持完成每天必做如何找到好工作1. 科学的学习方法(专注!效率!记忆!心流!)2. 每天认真完成必做项,踏实学习技术 认真完成每天必做&…

AD9371 官方例程HDL详解之JESD204B RX侧格式配置

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发 采样率和各个时钟之间的关系 : AD9371 官方例程HDL详解之JESD204B TX侧时钟生成 (三) 参考资料: UltraScale Architecture G…

前端Vue框架系列—— 学习笔记总结Day03

❤ 作者主页:欢迎来到我的技术博客😎 ❀ 个人介绍:大家好,本人热衷于Java后端开发,欢迎来交流学习哦!( ̄▽ ̄)~* 🍊 如果文章对您有帮助,记得关注、点赞、收藏、…

Leetcode—274.H指数【中等】

2023每日刷题&#xff08;十三&#xff09; Leetcode—274.H指数 算法思想 参考自灵茶山艾府 实现代码 int minValue(int a, int b) {return a < b ? a : b; }int hIndex(int* citations, int citationsSize){int cnt[5001] {0};int i;for(i 0; i < citationsSize; …

pandas笔记

read_csv读取之后&#xff0c;会返回DataFrame格式的文件读取去掉头的文件 import pandas as pd df pd.read_csv(file.csv, headerNone)按列名读取某一列 pd[列名]按索引读取n列 如读取前13列所有行的值 pd.iloc[:,:13]忽略掉第一行&#xff0c;读取剩下所有行 原表格的…