最后更新:2020-04-25 10:09:54 手机定位技术交流文章
机器心脏报告
机器编辑部之心
在芯片设计的过程中,芯片放置可以说是最复杂和耗时的步骤。芯片设计周期的缩短有助于硬件设备适应机器学习领域的快速发展。那么,机器学习能帮助芯片设计吗?最近,谷歌提出了一种基于强化学习的芯片布局方法。
不同于现有的方法,这种方法可以根据以前的经验学习,并随着时间的推移不断改进。具体地,当在大量芯片块上执行训练时,该方法可以更快地优化新芯片块的布局。
那么,这个结果是如何产生的呢?
研究人员将芯片布局视为强化学习问题,然后训练代理将网表的节点放在芯片画布上。为了将强化学习策略推广到新的芯片块,研究者将令牌学习引入到预测芯片布局质量的监控任务中。通过设计一个能够准确预测大量网表及其布局回报的神经框架,本研究生成了丰富的输入网表特征嵌入。然后将该体系结构作为策略和价值网络的编码器,实现迁移学习。
本研究的目的是最小化芯片设计的PPA(功耗、性能和面积)。研究人员表示,该方法可以在6小时内完成芯片布局设计,布局质量超过或匹配人类设计。然而,现有的基线方法需要人类专家的参与,通常需要几个星期才能完成。此外,谷歌还表示,该方法可以为谷歌加速器芯片(TPU)生成更优化的芯片布局方案,也适用于任何类型的芯片(专用集成电路)。
博客链接:谷歌blog.com/2020/04/chip-design-with-deep-reinforcement.html
论文链接:https://arxiv.org/abs/2004.10746
芯片布局规划
计算机芯片通常分为几十个模块,每个模块是一个独立的模块,如存储子系统、计算单元和控制逻辑系统。这些模块可以通过宏(存储器组件)和标准单元(逻辑门,如与非门、或非门和异或)的网表和电路组件图来描述,所有这些都通过网格连接。
确定如何布局芯片(通常称为芯片布局规划过程)是芯片设计过程中最复杂和最耗时的阶段之一。它包括在芯片的画布(2D网格)上放置一个网表,以尽可能减少功耗、性能和面积(PPA),同时注意密度和布线拥塞的限制。
尽管在这个方向上进行了几十年的研究,该行业的专家仍然需要迭代几个星期来完成一个满足各种设计标准的解决方案。简而言之,它的复杂性来自几个主要层面:网表映射的大小(数百万到数十亿个节点)、网表映射所放置的网格的粒度以及计算实际目标的过高成本。如果使用行业标准的电子设计自动化工具,计算过程可能需要几个小时(有时甚至超过一天)。
谷歌提出强化学习解决芯片布局问题
谷歌模型的输入包括芯片网表(节点类型和图形邻接信息)、要放置的当前节点标识和网表元数据,如线路总数、宏和标准单元簇。研究人员使用谷歌去年提出的基于边缘的图神经网络传输网表图和当前节点来编码输入状态,从而为部分放置的图和候选节点生成嵌入。
研究人员提议使用一种新的神经架构来训练芯片布局的域适应策略。首先,我们专注于学习每个状态空之间的丰富表示,然后提出一个可以预测新网表回报的神经网络架构。最终目标是将该体系结构用作策略网络的编码层。
训练这种监控模型需要包含芯片布局和相应奖励标签的大数据集。因此,研究人员创建了一个包含10,000个芯片布局的数据集,其中输入是与给定布局相关的状态,标签是对布局位置(线路长度和拥塞)的奖励。在创建数据集的过程中,研究人员首先选择了5个不同的加速器网表,然后为每个网表生成了2000个不同的布局。
此外,为了训练能够准确预测线路长度和拥塞标签并将其推广到不可见数据的监控模型,研究人员创建了一种嵌入了网表信息的新图形神经网络架构。为了将架构集成到策略网络中,研究人员移除了预测层,然后将其用作策略网络的编码器组件,如下图所示:

图神经网络生成嵌入,它与网表元数据嵌入一起成为策略和价值网络的输入。上面显示了策略和价值网络的整体架构,其中嵌入层对网表邻接信息、节点特征和要放置的当前宏的信息进行编码。然后,策略和价值网络分别输出可用布局位置的概率分布和对当前布局的预期回报的估计。
接下来,边缘、宏和网表元数据嵌入被组合以形成单状态嵌入,该单状态嵌入被转移到前馈神经网络。前馈网络输出一个学习的表示。这种特征抓住了有用的特征,并成为战略和价值网络的输入。然后,策略网络为当前节点可以放置的所有可能的网格单元生成概率分布。
研究人员使用强化学习方法来解决芯片布局问题,在芯片布局问题中,RL代理(即战略网络)依次放置宏。宏布局完成后,密歇根大学研究人员在论文“超大规模集成电路单元布局技术”中提出的力导向方法用于完成标准单元的艰难布局,如下图所示:

谷歌使用RL代理放置宏和标准单元流程图。放置完成后,计算近似导线长度和拥塞的线性组合,并将其传递给代理,以优化下一次训练迭代的参数。
谷歌的新方法有多有效?
谷歌在今天发布的博客中表示,这是第一种具有泛化能力的芯片布局方法,这意味着它可以在布局前利用从网表中学习到的知识,为新的网表生成一个更好的布局,这是以前从未见过的。研究人员表示,随着预训练芯片网表数量的增加(即该方法在布局优化方面更有经验),其策略可以更好地推广到新的网表。
例如,预训练策略有机地确定了布局:宏被放置在芯片边缘附近,而标准单元被放置在芯片中心的凸块空之间。这将导致宏单元和标准单元之间的线路长度缩短,并且不会导致过度的布线拥塞。相比之下,从零开始训练的策略从随机布局开始,这需要更长的时间才能收敛到高质量的解决方案,事后发现需要在芯片画布的中心留出一个位置。参见以下动态图:

阿丽亚娜是一个开源的RISC-V处理器,它的宏布局随着训练过程而改变。左图中的策略是从零开始训练的,而右图中的策略使用预训练策略来微调芯片。每个矩形代表一个单独的宏布局。请注意,从一开始就被策略发现的空洞从一开始就存在于预训练策略的布局中。
研究人员观察到,预先训练提高了样本效率和布局质量。本研究比较预训练策略产生的芯片布局质量与从头训练策略获得的布局质量。
为了生成以前看不到的芯片块的芯片布局,研究人员使用了零触发方法,即仅使用预训练策略(没有微调)来放置新的块,并且在不到一秒钟的时间内完成了布局。然而,微调后的结果仍需进一步改善。
从头训练策略所需的收敛时间较长,即使在24小时后,芯片布局质量仍不如12小时后微调策略的结果好。

阿丽亚娜芯片块上两种策略的收敛轨迹,一种是从零开始的策略训练,另一种是基于预训练策略的策略微调。
谷歌提出的方法在更大的数据集上取得了更好的性能。据介绍,随着训练集从2个块上升到5个块,再上升到20个块,RL策略产生了更好的芯片布局,上述两种策略在相同的训练时钟时间下达到了这一效果。

微调后的训练数据规模与性能。
谷歌还将自己的方法分别与模拟退火法、当前SOTA法和人工基线法进行了比较。结果如下:

与模拟退火算法相比,谷歌算法的收敛时间不到6小时,而模拟退火算法需要18小时。此外,在生成高质量布局时,模拟退火方法需要更大的布线长度和更高的布线拥塞。

谷歌方法与当前SOTA方法的比较结果取代人工基线方法。
在这项研究工作中,研究团队始终面向芯片布局的核心点。这一次,提出了基于强化学习的方法,该方法也支持迁移学习。这表明强化学习的智能体验从越来越多的芯片网表中获得学习经验,从而在处理芯片布局时变得越来越快、越来越好。新方法已被证明优于SOTA标准。同时,该方法是端到端的,可以在6小时内生成布局位置。
本文由 在线网速测试 整理编辑,转载请注明出处。