当前位置: 首页 > news >正文

利用深度强化学习进行芯片布局

摘要
本文提出了一种基于学习的芯片布局方法,这是芯片设计过程中最复杂、最耗时的阶段之一。与以往方法不同,我们的方法能够从过往经验中学习,并随着时间的推移不断改进。具体而言,随着我们对更多芯片模块进行训练,我们的方法能够更快速地为之前未见过的芯片模块生成优化的布局。
为了实现这些结果,我们将布局问题视为一个强化学习 (RL) 问题,并训练一个代理将芯片网表的节点布局到芯片画布上。为了使我们的 RL 策略能够推广到未见过的模块,我们将表示学习应用于预测布局质量的监督任务。通过设计一个能够准确预测各种网表及其布局奖励的神经架构,我们能够为输入网表生成丰富的特征嵌入。然后,我们将该架构用作策略和价值网络的编码器,以实现迁移学习。我们的目标是最小化 PPA(功耗、性能和面积),并且我们证明了,在不到 6 小时内,我们的方法就可以生成超越人类或在现代加速器网表上可比拟的布局,而现有的基准方法则需要人类专家参与,并且需要数周时间。

1. 引言
人工智能的快速发展得益于计算机系统和硬件的显著进步,但随着摩尔定律和登纳德缩放定律的终结,世界正转向专用硬件,以满足人工智能指数级增长的计算需求。然而,如今的芯片设计需要数年时间,我们面临的挑战是如何针对2-5年后的机器学习 (ML) 模型对其进行优化。大幅缩短芯片设计周期将使硬件能够更好地适应快速发展的人工智能领域。我们相信,人工智能本身将提供缩短芯片设计周期的方法,在硬件和人工智能之间建立一种共生关系,彼此促进彼此的进步。在本文中,我们提出了一种基于学习的芯片布局方法,这是芯片设计过程中最复杂、最耗时的阶段之一。目标是将宏(例如 SRAM)和标准单元(逻辑门,例如 NAND、NOR 和 XOR)的网表图布局到芯片画布上,以优化功耗、性能和面积 (PPA),同时满足布局密度和布线拥塞的限制(详见第 3.3.6 节和第 3.3.5 节)。尽管该问题已研究数十年,但人类专家仍然需要使用现有的布局工具进行数周的迭代,才能得出满足多方面设计标准的解决方案。该问题的复杂性源于网表图的大小(数百万到数十亿个节点)、必须放置这些图的网格的粒度,以及计算真实目标指标的高昂成本(行业标准的电子设计自动化 (EDA) 工具评估单个设计需要花费数小时甚至有时超过一天的时间)。即使将问题分解为更易于管理的子问题(例如,将节点分组为几千个簇,并降低网格的粒度),状态空间仍然比近期基于学习的方法已取得成功的问题大几个数量级。
为了应对这一挑战,我们将芯片布局视为一个强化学习 (RL) 问题,训练一个代理(例如,RL 策略网络)来优化布局。在每次训练迭代中,RL 代理会按顺序布局芯片块的所有宏,然后通过力导向方法布局标准单元。训练由代理每次芯片布局的快速但近似的奖励信号引导。
据我们所知,所提出的方法是第一个具有泛化能力的布局方法,这意味着它可以利用从布局先前网表中学到的知识来为新的未知网表生成布局。具体而言,我们表明,随着我们的智能体接触到的芯片数量和种类越来越多,它在为新芯片模块生成优化布局方面会变得更快、更出色,这将使我们更接近一个未来:芯片设计师将由拥有丰富芯片布局经验的人工智能体辅助。我们相信,我们的方法能够从经验中学习并随着时间的推移不断改进,这将为芯片设计师开启新的可能性。我们证明,与最先进的基准方法相比,我们可以在真实的AI加速器芯片(Google TPU)上实现更优异的PPA。此外,我们的方法可以在6小时内生成优于或媲美人类专家芯片设计师的布局,而性能最高的替代方案则需要人类专家的参与,并且现代芯片中数十个模块中的每一个都需要数周时间。虽然我们主要在AI加速器芯片上进行评估,但我们提出的方法广泛应用于任何芯片布局优化。

2. 相关工作
全局布局是芯片设计中一个长期存在的挑战,需要对日益复杂的电路进行多目标优化。
自20世纪60年代以来,
已提出了许多方法,迄今为止可分为三大类:1)基于分区的方法,2)
随机/爬山方法,以及3)解析求解器。
从20世纪60年代开始,工业界和学术实验室开始采用基于分区的方法解决全局布局问题,并提出了基于分区的方法(Breuer,1977;Kernighan,1985;Fiduccia 和 Mattheyses,1982),以及基于电阻网络的方法(Chung-Kuan Cheng 和 Kuh,1984;Ren-Song Tsay 等人,1988)。这些方法的特点是
采用分而治之的方法;网表和芯片画布会被递归划分,直到出现足够小的子问题,此时,使用最优求解器将子网表放置到子区域上。此类方法执行速度非常快,其层次结构特性使其能够扩展到任意大的网表。然而,通过单独优化每个子问题,基于划分的方法会牺牲整体解决方案的质量,尤其是布线拥塞。此外,早期划分不当可能会导致最终布局无法挽救。

20 世纪 80 年代,解析方法应运而生,但很快被随机/爬山算法所取代,尤其是模拟退火 (Kirkpatrick 等人,1983;Sechen & Sangiovanni-Vincentelli,1986;Sarrafzadeh 等人,2003)。模拟退火 (SA) 因其类似于冶金学而得名,在冶金学中,首先将金属加热,然后逐渐冷却,以诱导或退火能量最优的晶体表面。SA 对给定的位置施加随机扰动(例如,宏的移动、交换或旋转),然后测量它们对目标函数(例如,第 3.3.1 节中描述的半周线长)的影响。如果扰动有所改进,则应用该扰动;如果不是,它仍然会以一定的概率应用,
称为温度。温度被初始化为一个特定值,然后逐渐退火至一个较低的值。虽然SA可以生成高质量的解,但它
非常慢且难以并行化,因此无法
扩展到20世纪90年代及以后日益庞大和复杂的电路。
20 世纪 90 年代至 21 世纪初,多层次划分方法(Agnihotri 等,2005;Roy 等,2007)以及分析技术的复兴成为其特征,例如力导向方法(Tao Luo & Pan,2008;Bo Hu & Marek-Sadowska,2005;Obermeier 等,2005;Spindler 等,2008;Viswanathan 等,2007b;a)和非线性优化器(Kahng 等,2005;Chen 等,2006)。二次方法的再次成功部分归功于算法的进步,但也归因于现代电路的庞大规模(1000万到1亿个节点),这使得布局问题可以近似为零面积节点的布局问题。然而,尽管二次方法计算效率高,但它们通常可靠性较低,并且产生的解质量低于非线性方法。
非线性优化使用平滑的数学函数来近似成本,例如用于线长的对数和指数模型(William et al., 2001)和加权平均模型(Hsu et al., 2011),以及用于密度的高斯模型(Chen et al., 2008)和亥姆霍兹模型。然后,使用拉格朗日惩罚或松弛法将这些函数组合成一个目标函数。由于这些模型的复杂性较高,因此有必要采用分层方法,即放置簇而不是单个节点,这种近似方法会降低放置质量。
过去十年见证了现代分析技术的兴起,包括更先进的二次方法(Kim et al., 2010; 2012b; Kim & Markov, 2012; Brenner et al.,
2008; Lin et al., 2013),以及最近出现的基于静电学的方法,例如 ePlace(Lu et al., 2015)和 RePlAce(Cheng et al., 2019)。 ePlace (Lu et al., 2015) 将网表布局建模为一个静电系统,提出了一种新的密度惩罚公式,其中网表中的每个节点(宏单元或标准单元)类似于一个带正电的粒子,其面积与其电荷相对应。在这种情况下,节点之间以与其电荷(面积)成比例的力相互排斥,密度函数和梯度对应于系统的势能。这种基于静电学的方法的变体已被提出,用于解决标准单元布局(Lu et al., 2015)和混合尺寸布局(Lu et al., 2015; Lu et al., 2016)。 RePlAce (Cheng et al., 2019) 是一种近期最先进的混合尺寸布局技术,它通过引入局部密度函数进一步优化了 ePlace 的密度函数,该函数可以根据每个单独的 bin 大小调整惩罚因子。第五部分将最先进的 RePlAce 算法与我们的方法的性能进行了比较。
最近的研究 (Huangetal., 2019) 提出训练一个模型来预测给定宏布局中设计规则检查 (DRC) 违规的数量。DRC 是确保布局和布线后的网表符合流片要求的规则。为了生成 DRC 数量更少的宏布局,(Huang et al., 2019) 将该训练模型的预测结果用作模拟退火中的评估函数。虽然这项工作代表了一个有趣的方向,但它报告的结果是基于不超过6个宏的网表,远少于任何现代模块,而且该方法未在布局和布线步骤中进行任何优化。由于优化,布局和布线可能会发生巨大变化,实际的DRC也会随之变化,从而使模型预测失效。此外,虽然遵守DRC标准是必要条件,但宏布局的主要目标是优化线长、时序(例如最差负裕量 (WNS) 和总负裕量 (TNS))、功耗和面积,而这项工作甚至没有考虑这些指标。为了解决这个经典问题,我们提出了一种新的方法:基于端到端学习的方法。

这类方法与解析求解器(尤其是非线性求解器)最为密切相关,因为所有这些方法都通过梯度更新来优化目标函数。然而,我们的方法与以往方法的不同之处在于,它能够从过去的经验中学习,从而在新芯片上生成更高质量的布局。与现有的为每个新芯片从头开始优化布局的方法不同,我们的工作利用了从先前芯片布局中获得的知识,从而随着时间的推移不断改进。此外,我们的方法能够直接优化目标指标,例如线长、密度和拥塞度,而无需像其他方法(Cheng 等人,2019;Lu 等人,2015)那样定义这些函数的凸近似值。
我们的公式不仅方便在新的成本函数可用时进行整合,还能让我们根据给定芯片模块的需求(例如,时序关键或功耗受限)来加权它们的相对重要性。
领域自适应是指训练策略的问题,这些策略能够跨多种经验进行学习,并将获得的知识迁移到新的未知示例上,从而获得更好的性能。在芯片布局的背景下,领域自适应涉及在一组芯片网表上训练策略,并将训练好的策略应用于新的未知网表。近年来,组合优化的领域自适应已成为一种趋势(Zhou 等人,2019 年;Paliwal 等人,2019 年;Addanki 等人,2019 年)。虽然先前的研究重点是利用从先前优化问题示例中学到的领域知识来加速新问题的策略训练,但我们提出了一种方法,首次能够通过利用过去的经验来生成更高质量的结果。我们新颖的领域自适应方法不仅产生了更好的结果,而且与从头开始训练策略相比,还将训练时间缩短了8倍。

3. 方法
3.1. 问题陈述
本研究针对芯片布局优化问题,其目标是将网表(描述芯片的图形)的节点映射到芯片画布(有界的二维空间)上,从而优化最终的功耗、性能和面积 (PPA)。本节将概述如何将该问题表述为强化学习 (RL) 问题,并详细描述奖励函数、动作和状态表示、策略架构以及策略更新。

3.2. 我们的方法概述
我们采用深度强化学习方法解决布局问题,其中强化学习代理(策略网络)按顺序放置宏;所有宏都放置完成后,使用力导向方法对标准单元进行粗略布局,如图 1 所示。强化学习问题可以表述为马尔可夫决策过程 (MDP),包含四个关键要素:
状态:世界可能状态的集合(例如,在我们的案例中,是将网表部分布局到芯片画布上的所有可能状态)。
动作:代理可以采取的动作集合(例如,给定当前要放置的宏,可用的动作是离散画布空间(网格单元)中所有位置的集合,这些位置可以在不违反任何密度或阻塞的硬约束的情况下放置该宏)。
状态转换:给定一个状态和一个动作,这是下一个状态的概率分布。
奖励:在某个状态下采取行动的奖励。(例如,
在我们的例子中,除了最后一个行动之外,所有行动的奖励均为 0。最后一个行动的奖励是代理线长度和拥塞的负加权和,并受 3.3 节中所述的密度约束的影响)。
在我们的设置中,在初始状态 s0 下,我们有一个空的芯片画布和一个未布局的网络表。最终状态 T 对应于一个完全布局的网络表。在每个步骤中,都会放置一个宏。因此,T 等于网络表中的宏总数。在每个时间步 t,代理从状态 (st) 开始,采取行动 (at),到达新状态 (st+1),并从环境获得奖励 (rt)(当 t < T 时为 0,且负代理成本为 t = T)。
我们将 定义为表示时刻 t 状态的特征的串联结构,包括网表的图嵌入(包含已放置和未放置的节点)、当前待放置宏的节点嵌入、网表的元数据(第 4 节)以及表示将当前节点放置到网格每个单元可行性的掩码(第 3.3.6 节)。
动作空间是第 t 个宏的所有有效放置位置,它是第 3.3.6 节中描述的密度掩码的函数。动作 t 是 RL 策略网络选择的第 t 个宏的单元放置位置。
st+1 是下一个状态,它包含一个更新后的表示,其中包含有关新放置宏的信息、更新后的密度掩码以及下一个待放置节点的嵌入。
在我们的公式中,除了最终的 rT 之外,每个时间步的 rt 均为 0。rT 是近似线路长度和拥塞的加权和,如第 3.3 节所述。
通过重复的回合(状态、动作和奖励序列),策略网络学习采取能够最大化累积奖励的行动。我们使用近端策略优化 (PPO) (Schulman et al., 2017) 来更新策略网络的参数,并给定每个位置的累积奖励。
在本节中,我们定义了奖励、状态、动作、策略网络架构,并由 参数化,
最后定义了我们用来训练这些参数的优化方法。

3.3. 奖励
我们在本研究中的目标是在布线拥塞和密度约束下,最小化功耗、性能和面积。我们真正的奖励是商用 EDA 工具的输出,包括线长、布线拥塞、密度、功耗、时序和面积。然而,强化学习策略需要数十万个示例才能有效学习,因此奖励函数的快速评估至关重要,理想情况下运行时间仅为几毫秒。为了有效,这些近似的奖励函数也必须与真实奖励呈正相关。因此,我们成本的一部分是线长,因为它不仅评估成本更低,而且与功耗和性能(时序)相关。我们分别针对线路长度和拥塞程度定义了近似成本函数,如第 3.3.1 节和第 3.3.5 节所述。
为了将多个目标组合成一个奖励函数,我们取代理线路长度和拥塞程度的加权和,其中权重可用于探索两个指标之间的权衡。
虽然我们将拥塞程度视为软约束(即较低的拥塞程度会改善奖励函数),但我们将密度视为硬约束,屏蔽掉密度超过目标密度的操作(放置节点的网格单元),如第 3.3.6 节进一步所述。
为了保持每次迭代的运行时间较小,我们在奖励函数的计算中采用了几种近似方法:
1. 我们使用 hMETIS (Karypis & Kumar,
1998)(一种基于正则化最小割目标的划分技术)将数百万个标准单元分组为几千个簇。所有宏都放置完毕后,我们将使用力导向方法来放置标准单元簇,如第 3.3.4 节所述。这样做使我们能够实现近似但快速的标准单元放置,从而促进策略网络优化。
2. 我们将网格离散化为几千个网格单元,并将宏和标准单元簇的中心放置在网格单元的中心。
3. 在计算线长时,我们做了一个简化的假设,即所有离开标准单元簇的线都源自簇的中心。
4. 为了计算路由拥塞成本,我们仅考虑拥塞程度排名前 10% 的网格单元的平均拥塞程度,如第 3.3.5 节所述。

3.3.1. 线长
根据文献 (Shahookar & Mazumder, 1991),
我们采用半周长线长 (HPWL),这是最常用的线长近似值。HPWL 定义为网表中所有节点边界框的半周长。给定网络(边)i 的 HPWL 如下式所示:

其中 xb 和 yb 分别表示网络 i 端点的 x 和 y 坐标。然后,通过对所有半周边界框进行归一化求和来计算整体 HPWL 成本,如公式 2 所示。q(i) 是一个归一化因子,它通过随着节点数量的增加而增加线长成本来提高估算的准确性,其中 Nnetlist 是网络数量。

直观地讲,给定布局的 HPWL 大致等于其 Steiner 树的长度(Gilbert & Pollak,1968),这是布线成本的下限。
线长还具有与其他重要指标(例如功耗和时序)关联的优势。虽然我们没有直接针对这些其他指标进行优化,但我们观察到功耗和时序方面的高性能(如表 2 所示)。

3.3.2. 网格行列的选择
鉴于芯片画布的尺寸,将二维画布离散化为网格单元有多种选择。此决策会影响优化的难度和最终布局的质量。我们将行列的最大数量限制为 128。我们将选择最佳行列数视为装箱问题,并根据不同的行列组合所浪费的空间大小对其进行排序。在第 5 节描述的实验中,我们平均使用 30 行和 30 列。
3.3.3. 宏顺序的选择
为了选择宏的放置顺序,我们按大小降序对宏进行排序,并使用拓扑排序来打破平局。通过优先放置较大的宏,我们可以降低后续宏无法找到可行位置的可能性。拓扑排序可以帮助策略网络学习将连接的节点彼此靠近放置。另一种潜在的方法是学习联合优化宏的排序及其布局,从而选择将哪个节点放置在动作空间的下一个部分。然而,扩大的动作空间会显著增加问题的复杂性,我们发现这种启发式方法在实践中是有效的。
3.3.4. 标准单元布局
为了布局标准单元簇,我们使用了一种类似于经典力导向方法(Shahookar & Mazumder, 1991)的方法。我们将网表表示为一个弹簧系统,弹簧根据权重距离公式向每个节点施加力,使紧密连接的节点相互吸引。我们还在重叠节点之间引入了排斥力,以降低布局密度。施加所有力后,我们沿力矢量方向移动节点。为了减少振荡,我们为每次移动设置了最大距离。
3.3.5.路由拥塞
我们也遵循了计算代理拥塞的惯例 (Kim et al., 2012a),即使用一种基于网络驱动程序位置和负载的简单确定性路由。路由网络在其经过的每个网格单元中占用一定量的可用路由资源(由底层半导体制造技术决定)。我们分别跟踪每个网格单元中的垂直和水平分配情况。为了平滑拥塞估计,我们在垂直和水平方向上分别运行 5×1 个卷积滤波器。所有网络都路由完成后,我们取前 10% 拥塞值的平均值,这借鉴了 MAPLE (Kim et al., 2012a) 中 ABA10 指标的启发。公式 4 中的拥塞成本是通过此过程计算出的前 10% 平均拥塞值。

3.3.6. 密度
我们将密度视为硬约束,禁止策略网络将宏放置在会导致密度超过目标(最大密度)或导致不可行的宏重叠的位置。这种方法有两个好处:(1) 减少了策略网络生成的无效放置数量;(2) 减少了优化问题的搜索空间,使其更易于计算处理。可行的标准单元簇放置应满足以下标准:每个网格单元中放置的元素密度不应超过给定的目标密度阈值(最大密度)。我们在实验中将此阈值设置为 0.6。为了满足此约束,在每个强化学习步骤中,我们都会计算当前密度掩码,这是一个二进制 mn 矩阵,表示我们可以在不违反密度阈值的情况下将当前节点的中心放置在哪些网格单元上。在从策略网络输出中选择操作之前,我们首先对掩码和策略网络输出进行点积运算,然后对可行位置进行 argmax 运算。这种方法可以防止策略网络生成宏重叠或标准单元区域密集的布局。
我们还通过将阻塞区域的密度函数设置为 1 来实现阻塞感知布局(例如时钟带)。
3.3.7. 后处理
为了准备使用商业 EDA 工具进行评估的布局,我们执行了一个贪婪合法化步骤,将宏捕捉到最近的合法位置,同时遵守最小间距约束。然后,我们修复宏布局,并使用 EDA 工具放置标准单元并评估布局。

3.4. 动作表示
为了进行策略优化,我们将画布转换为一个 mn 网格。因此,对于任何给定状态,动作空间(或策略网络的输出)是当前宏在 mn 网格上的布局概率分布。动作是该概率分布的 argmax。
3.5. 状态表示
我们的状态包含以下信息:网表图(邻接矩阵)、其节点特征(宽度、高度、类型等)、边特征(连接数)、当前待布局节点(宏),以及网表和底层技术的元数据(例如,布线分配、线路总数、宏和标准单元簇等)。在下一节中,我们将讨论如何处理这些特征以学习芯片布局问题的有效表示。

4. 领域迁移:从经验中学习更优的芯片布局
我们的目标是开发能够随着芯片布局经验的积累而生成更高质量结果的强化学习智能体。我们可以正式定义布局目标函数如下:

其中,J(G)是成本函数。智能体的参数化公式为。大小为K的网表图数据集记为G,数据集中每个单独的网表记为g。Rpg是从应用于网表g的策略网络中提取的布局p的事件奖励。

S t 密度(pg) 最大密度
公式4显示了我们用于策略网络优化的奖励,它是线长和拥塞度的负加权平均值,受密度约束。奖励机制在第 3.3 节中有详细解释。在我们的实验中,拥塞权重设置为 0.01,最大密度阈值设置为 0.6。

4.1. 一种支持迁移学习的监督方法
我们提出了一种新颖的神经架构,使我们能够
训练领域自适应的芯片布局策略。训练这样的策略网络是一项具有挑战性的任务,因为包含所有可能芯片布局的状态空间非常巨大。此外,不同的网表
和网格大小可能具有非常不同的属性,包括
不同的节点数量、宏大小、图拓扑结构以及画布宽度和高度。为了应对这一挑战,
我们首先专注于学习状态空间的丰富表示。我们的直觉是,一个能够跨芯片迁移布局优化的策略网络架构,也应该能够在推理时将与新的未见过的芯片相关的状态编码为有意义的信号。
因此,我们提出训练一个能够预测新网表奖励的神经网络架构,最终目标是将该架构用作我们策略网络的编码器层。
为了训练这个监督模型,我们需要一个包含芯片布局及其相应奖励标签的大型数据集。因此,我们创建了一个包含 10,000 个芯片布局的数据集,其中输入是与给定布局相关的状态,标签是该布局的奖励(线长和拥塞)。我们首先选取 5 个不同的加速器网表,然后为每个网表生成 2,000 个布局,从而构建了这个数据集。为了为每个网表创建不同的布局,我们使用不同的拥塞权重(范围从 0 到 1)和随机种子训练了原始策略网络,并在策略训练过程中收集了每个布局的快照。未经训练的策略网络一开始采用随机权重,生成的布局质量较低,但随着策略网络的训练,生成的布局质量不断提高,使我们能够收集包含不同质量布局的多样化数据集。为了训练一个能够准确预测线长和拥塞标签并推广到未见数据的监督模型,我们开发了一种新颖的图神经网络架构,可以嵌入有关网表的信息。图神经网络的作用是将大型图中节点的类型和连通性信息提炼为可用于下游任务的低维向量表示。此类下游任务的一些示例包括节点分类 (Nazi et al., 2019)、设备布局 (Zhou et al., 2019)、链路预测 (Zhang & Chen, 2018) 以及设计规则违规 (DRC) 预测 (Zhiyao Xie, Duke University, 2018)。
我们通过连接节点特征来创建每个节点的向量表示。节点特征包括节点类型、宽度、高度以及 x 和 y 坐标。我们还将节点相邻信息作为输入传递给我们的算法。然后,我们反复执行以下更新:
1) 每条边通过将全连通网络应用于中间节点嵌入的聚合表示来更新其表示;2) 每个节点通过取相邻边嵌入的平均值来更新其表示。节点和边的更新如公式 5 所示。

当1<=i<=N时,节点嵌入用vis表示,
其中N是宏簇和标准单元簇的总数。连接节点vi和vj的矢量化边用ij表示。边(eij)和节点(vi)嵌入都是随机初始化的,并且是32维的。fc0是一个32维的前馈网络,fc1是一个65维的前馈网络,we
ijs
是可学习的1x1权重,对应于边。N(vi)
表示vi的邻居。该算法的输出是节点和边的嵌入。
我们的监督模型包括:(1) 上述图神经网络,用于嵌入节点类型和网表邻接矩阵的信息。(2) 一个全连接前馈网络,用于嵌入元数据,包括底层半导体技术(水平和垂直布线容量)、网络(边)、宏和标准单元簇的总数、画布大小以及网格中的行数和列数。(3) 一个全连接前馈网络(预测层),其输入是网表图和元数据嵌入的串联,输出是奖励预测。网表图嵌入是通过在边嵌入上应用均值函数来创建的。监督模型通过回归训练,以最小化线长和拥塞的均方损失的加权和。
这项监督任务使我们能够找到在网表之间推广奖励预测所需的特征和架构。为了将此架构整合到我们的策略网络中,我们删除了预测层,然后将其用作策略网络的编码器组件,如图 2 所示。
为了处理与不同行列选择对应的不同网格大小,我们将网格大小设置为 128 x 128,并对小于 128 行和列的网格大小屏蔽未使用的 L 形部分。
为了在推理时放置新的测试网表,我们加载策略网络的预训练权重并将其应用于新的网表。我们将未经微调的预训练策略网络生成的布局称为零样本布局。这种布局可以在不到一秒的时间内生成,因为它只需要预训练策略网络的一次推理步骤。我们可以通过微调策略网络进一步优化布局质量。这样做使我们能够灵活地使用预先训练的权重(已经学习了输入状态的丰富表示),或者进一步微调这些权重以优化特定芯片网表的属性。

4.2. 策略网络架构
图 2 概述了我们为芯片布局开发的策略网络(由公式 3 建模)和价值网络架构。这些网络的输入包括网表图(图邻接矩阵和节点特征)、当前待布局节点的 ID,以及网表和半导体技术的元数据。网表图将通过我们之前提出的图神经网络架构进行传输。该图神经网络生成 (1) 部分布局的图和 (2) 当前节点的嵌入。我们使用一个简单的前馈网络来嵌入 (3) 元数据。然后将这三个嵌入向量连接起来,形成状态嵌入,并将其传递给前馈神经网络。前馈网络的输出随后被馈送到策略网络(由5个反卷积层和1个批归一化层组成),以生成动作的概率分布,并传递到价值网络(由前馈网络组成),以预测输入状态的值。
4.3. 策略网络更新:训练参数
在公式3中,目标是训练一个策略网络,使奖励(Rpg)的预期值(E)在策略网络的放置分布上最大化。为了优化策略网络的参数,我们使用了近端策略优化 (PPO) (Schulman et al., 2017),其裁剪目标如下所示:

其中,Et 表示时间步 t 的预期值,rt 是新策略与旧策略的比率,At 是时间步 t 的估计优势。

内部 TPU 块。训练数据由各种块组成,包括内存子系统、计算单元和控制逻辑。随着我们将训练集从 2 个块增加到 5 个块,最终增加到 20 个块,策略网络在零样本和经过相同小时数的微调后都能生成更好的布局。图 5(右)显示了策略网络在(预)训练过程中在测试数据上的布局成本。我们可以看到,对于较小的训练数据集,策略网络很快就会过拟合训练数据,并且在测试数据上的性能会下降;而策略网络在最大的数据集上过拟合所需的时间更长,而在这个更大的数据集上预训练的策略网络在测试数据上会获得更好的结果。该图表明,随着我们将策略网络暴露于更多种类的不同块,虽然策略网络预训练可能需要更长的时间,但策略网络会变得不那么容易过拟合,并且能够更好地为新的未知块找到优化的布局。

5.3. 可视化洞察
图 6 展示了 Ariane RISC
V CPU 的布局结果。左侧展示了零样本策略网络的布局,右侧展示了经过微调的策略网络的布局。零样本布局是在推理时基于之前未见过的芯片生成的。
零样本策略网络将标准单元放置在画布的中心,周围环绕着宏,这已经非常接近最佳布局。经过微调后,宏的布局变得更加规则化,中心的标准单元区域也变得更加不拥挤。
图 7 展示了可视化的布局:左侧展示了手动布局的结果,右侧展示了我们的方法的结果。白色区域展示了宏的布局,绿色区域展示了标准单元的布局。我们的方法创建了环绕标准单元的甜甜圈形状的宏布局,从而减少了总线长。

5.4. 与基准方法的比较
在本节中,我们将我们的方法与三种基准方法进行比较:模拟退火、RePlAce 和人类专家基准。对于我们的方法,我们使用在最大数据集(20 个 TPU 块)上预先训练的策略,然后在 5 个目标未见块(标记为块 1 至 5)上对其进行微调。
我们的数据集包含各种块,包括内存子系统、计算单元和控制逻辑。由于保密性,我们不能透露这些块的细节,但为了大致了解其规模,每个块最多包含数百个宏和数百万个标准单元。
与模拟退火的比较:模拟退火 (SA) 是一种已知强大但缓慢的优化方法。然而,与强化学习 (RL) 一样,模拟退火能够优化任意不可微的成本函数。为了展示强化学习的相对样本效率,我们进行了实验,将其替换为基于模拟退火的优化器。在这些实验中,我们使用与之前相同的输入和成本函数,但在每个回合中,模拟退火优化器会放置所有宏,然后通过FD步骤放置标准单元簇。每个宏的放置都根据使用指数衰减退火方案的SA更新规则进行接受(Kirkpatrick等人,1983)。SA需要18个小时才能收敛,而我们的方法不超过6个小时。为了使比较公平,我们进行了多个SA实验,扫描了不同的超参数,包括最小和最大温度、种子和最大SA回合,以使SA和强化学习在模拟中花费相同的CPU小时数并搜索相似数量的状态。表 1 报告了最低成本实验的结果。如表所示,即使增加了时间,SA 与我们的方法相比,仍然难以生成高质量的布局,并且生成的布局线长平均高出 144%,拥塞率平均高出 241%。
与 RePlAce (Cheng et al., 2019) 和手动基线的比较:表 2 将我们的结果与最先进的方法 RePlAce (Cheng et al., 2019) 和手动基线进行了比较。手动基线由生产芯片设计团队生成,并涉及多次布局优化迭代,并在数周内以商用 EDA 工具的反馈为指导。
0.88 次迭代,使用该工具的默认设置。然后,我们报告了总线长、时序(最差 (WNS) 和总 (TNS) 负裕量)、面积和功耗指标。如表 2 所示,我们的方法在生成满足设计要求的布局方面优于 RePLAce。考虑到底层半导体技术的限制,如果 WNS 显著高于 100 ps,或者水平或垂直拥塞超过 1%,这些模块的布局将无法在设计流程的后期满足时序约束,从而导致某些 RePlAce 布局(模块 1、2、3)无法使用。这些结果表明,我们的拥塞感知方法能够有效地生成符合设计标准的高质量布局。
与 RePlAce 相比,我们拥有相同的优化目标,即优化芯片设计中的全局布局,
但我们使用不同的目标函数。因此,我们不会比较不同成本函数的结果,而是将商用 EDA 工具的输出视为基本事实。为了进行此比较,我们修复了我们的方法和 RePlAce 生成的宏布局,并允许使用商业 EDA 工具进一步优化标准单元布局。RePlAce 比我们的方法更快,因为它在 1 到 3.5 小时内收敛,而我们的结果在 3 到 6 小时内实现。然而,我们方法的一些基本优势包括:1)我们的方法可以轻松优化各种不可微分的成本函数,而无需构建这些成本函数的闭式或可微分等效函数。例如,虽然将线长建模为凸函数很简单,但对于布线拥塞或时序而言并非如此。2)随着策略应用于更多芯片块,我们的方法能够随着时间的推移而改进;3)我们的方法能够遵循各种设计约束,例如不同形状的阻塞。

5.5. 讨论
进一步优化我们方法的机会:我们的方法有多个方面可以进一步提升质量。例如,标准单元划分、行列选择以及宏的放置顺序都可以进一步优化。此外,我们也将从更优化的标准单元放置方法中受益。目前,我们使用力导向方法来放置标准单元,因为它运行速度更快。然而,我们相信,更先进的标准单元放置技术,例如 RePlAce (Cheng et al., 2019) 和 DREAMPlace (Lin et al., 2019),可以产生更精确的标准单元放置,以指导策略网络训练。这很有帮助,因为如果策略网络能够更清晰地了解其宏布局如何影响标准单元布局和最终指标,它就能学习做出更优化的宏布局决策。
对更广泛问题类别的影响:这项工作只是领域自适应优化策略的一个示例,可以扩展到芯片设计流程的其他阶段,例如架构和逻辑设计、综合和设计验证,目标是训练机器学习模型,使其在遇到更多问题实例时能够不断改进。基于学习的方法还可以进一步探索设计空间,并在构成芯片设计流程的级联任务中进行协同优化。

5.6 结论

       在本研究中,我们针对芯片布局这一复杂且影响深远的问题。我们提出了一种基于强化学习 (RL) 的方法,该方法支持迁移学习,这意味着强化学习代理在芯片布局方面会随着在更多芯片网表上积累经验而变得更快、更出色。我们证明,我们的方法优于最先进的基线方法,并且能够生成优于或媲美现代加速器上人类专家的布局结果。我们的方法是端到端的,可以在 6 小时内生成布局结果,而最强大的基线方法需要人类专家参与,并且需要数周时间。

http://www.dtcms.com/a/337547.html

相关文章:

  • 【1:1复刻R版】python版火山图函数一键出图
  • iOS 正式包签名指南
  • 【LeetCode】15. 三数之和
  • 从财务整合到患者管理:德国医疗集团 Asklepios完成 SAP S/4HANA 全链条升级路径
  • 贪心算法(Greedy Algorithm)详解
  • 【机器学习】Macro-F1(宏平均 F1)是什么?
  • SWMM排水管网水力、水质建模及在海绵与水环境中的应用技术-模拟降雨和污染物质经过地面、排水管网、蓄水和处理
  • Jenkins启动端口修改失败查找日志
  • 音频算法工程师技能1
  • Vue2篇——第五章 Vue.js 自定义指令与插槽核心
  • 【序列晋升】:9 Service Mesh微服务通信的基础设施革命
  • 电子元器件-电容终篇:基本原理、参数解读、电路作用、分类及区别、应用场景、选型、降频及实战案例
  • Linux 系统~存储高级技术
  • C++ 中的 delete 与 default 关键字详解
  • diffusion model(1.4) 相关论文阅读清单
  • 遥感数字图像处理教程——第三章课后习题
  • flutter项目适配鸿蒙
  • 人工智能 | 基于大数据的皮肤病症状数据可视化分析系统(matlab源码)
  • Java设计模式-桥接模式
  • Alibaba Cloud Linux 3 在 Apple M 芯片 Mac 的 VMware Fusion 上部署的完整密码重置教程(二)
  • API 接口在电商中的重要应用​||关于API接口接入
  • 构建者设计模式 Builder
  • python学习DAY45打卡
  • 【运维实战】系统全链路监测方案~架构到实践
  • 【HTML】document api
  • 【每天学点‘音视频’】前向纠错 和 漏包重传
  • 图像分类精度评价的方法——误差矩阵、总体精度、用户精度、生产者精度、Kappa 系数
  • 在 PyCharm Notebook 中安装 YOLO
  • Google 的 Opal:重新定义自动化的 AI 平台
  • 【项目】分布式Json-RPC框架 - 项目介绍与前置知识准备