『机器之心』6 小时完成芯片布局,谷歌用强化学习助力芯片设计


机器之心报道
机器之心编辑部
在芯片设计过程中 , 芯片布局(chipplacement)可以说是其中最复杂和耗时的步骤了 。 芯片设计周期的缩短有助于硬件设备适应机器学习领域的快速发展 , 那么 , 机器学习能否助力芯片设计呢?最近 , 谷歌提出了一种基于强化学习的芯片布局方法 。
与已有方法不同 , 该方法能够基于之前的经验进行学习 , 并随着时间不断改进 。 具体而言 , 在大量芯片block上执行训练时 , 该方法能够更迅速地为新的芯片block进行优化布局 。
那么 , 这一结果是如何实现的呢?
研究者将芯片布局看作一个强化学习问题 , 然后训练智能体将芯片网表(netlist)的节点放置在芯片画布(canvas)上 。 为了使强化学习策略泛化至新的芯片block , 研究者将表征学习置于预测芯片布局质量的监督任务中 。 通过设计能够在大量网表及其布局上准确预测奖励的神经架构 , 该研究生成输入网表的丰富特征嵌入 。 然后利用该架构作为策略和价值网络的编码器 , 实现迁移学习 。
该研究旨在最小化芯片设计的PPA(功耗、性能和面积) 。 研究者称 , 该方法能够在6小时内完成芯片布局设计 , 布局质量超过或匹配人类设计 , 而现有的基线方法需要人类专家参与 , 且往往需要数周时间才能完成 。 此外 , 谷歌还表示 , 该方法可以为谷歌加速器芯片(TPU)生成更优化的芯片放置方案 , 还适用于任意类型的芯片(ASIC) 。
博客链接:http://ai.googleblog.com/2020/04/chip-design-with-deep-reinforcement.html
论文链接:https://arxiv.org/abs/2004.10746
芯片布局规划问题
计算机芯片通常分为数十个模块 , 每个模块都是一个单独的模组 , 例如内存的子系统、计算单元以及控制逻辑的系统 。 这些模块可以通过网表以及宏(内存组件)和标准单元(逻辑门 , 例如NAND、NOR和XOR)等电路组件图来描述 , 而所有这些组件均通过网格连接 。
确定芯片如何布局(通常称为芯片的布局规划过程)是芯片设计过程中最复杂、最耗时的阶段之一 , 它涉及到将网表放置在芯片的画布(2D网格)上 , 尽可能使得功率、性能和面积(PPA)降至最低 , 同时还要注意密度和布线拥塞方面的限制 。
尽管对此方向进行了数十年的研究 , 但是行业内专家仍然需要迭代数周的时间才能完成一个满足多方面设计标准的解决方案 。 简单来说 , 其复杂性来自于几个主要层面:网表图的大小(数百万至数十亿个节点)、网表图放置的网格粒度 , 以及计算真实目标所产生的过高成本 , 如果使用行业标准的电子设计自动化工具这个计算过程可能要花费数小时(有时甚至超过一天) 。
谷歌提出用强化学习来解决芯片布局问题
谷歌模型的输入包括芯片网表(节点类型和图邻接信息)、即将放置的当前节点ID , 以及导线总数、宏和标准单元集群等网表元数据 。 研究者使用谷歌去年提出的基于边的图神经网络传输网表图和当前节点 , 以编码输入状态 , 从而为部分放置的图和候选节点生成嵌入 。
研究者提出利用一种新型神经架构来为芯片布局训练域适应策略 。 首先重点学习每个状态空间的丰富表征 , 并进而提出一个能够预测新网表上奖励的神经网络架构 , 最终目标则是使用这一架构作为策略网络的编码层 。
训练这种监督模型需要一个包含芯片布局和相应奖励标签的大型数据集 。 因此 , 研究者创建了一个包含10000个芯片布局的数据集 , 其中输入为与给定布局相关的状态 , 标签是对该布局位置的奖励(导线长度和拥塞) 。 在创建数据集时 , 研究者首先选择了5个不同的加速器网表 , 然后为每个网表生成2000个不同的布局 。
此外 , 为了训练能够准确预测导线长度和拥塞标签并泛化至未见过数据的监督模型 , 研究者创建了一个嵌入网表信息的新型图神经网络架构 。 为了将该架构集成至策略网络 , 研究者去除了预测层 , 然后使用它作为策略网络的编码器组件 , 具体如下图所示: