谷歌研究院《Nature》:用于快速芯片设计的图形布局方法
芯片平面规划,是设计计算机芯片物理布局的工程任务。尽管经过了50年的研究,芯片平面规划仍未能实现自动化,物理设计工程师需要数月的高强度工作,才能生产出可制造的布局。
在此,来自谷歌研究院的Azalia Mirhoseini&斯坦福大学的Anna Goldie等研究者,提出了一个深度强化学习方法用于芯片平面规划。相关论文以题为“A graph placement methodology for fast chip design”发表在Nature上。
论文链接:
https://www.nature.com/articles/s41586-021-03544-w#auth-Azalia-Mirhoseini
在这项工作中,研究者提出了一种新的基于强化学习(RL)的图布局方法,并展示了芯片平面规划的最新成果。这是一个具有挑战性的问题,尽管已有50年的研究,但长期以来一直难以实现自动化。在这里,研究者的方法在6小时内生成了可用于制造的芯片平面图,相比之下,最强的基线需要人类专家几个月的高强度努力。
通常,芯片平面规划,包括在芯片画布上放置网表(二维网格),从而优化性能指标(例如,功耗、时间、面积和线长等),同时坚持对密度和路径拥挤的硬约束。自20世纪60年代以来,人们提出了许多芯片平面规划的方法,主要分为三大类:基于分区的方法、随机/爬坡方法和解析求解方法。这些先前方法都有各自的局限性。
例如,基于分区的方法牺牲了全局解决方案的质量,以便扩展到更大的网络列表,而早期糟糕的分区可能导致无法挽回的最终结果。爬坡方法收敛速度较低,无法扩展到拥有数百万或数十亿节点的现代芯片网络列表。在此工作之前,分析求解器是先进的方法,但他们只能优化可微分的损失函数,这意味着他们不能有效地优化关键指标,如路由拥塞或时间违规。
在这里,研究者的方法可以扩展到拥有数百万个节点的网络列表,并直接针对可微或不可微成本函数的任何混合进行优化。此外,研究者的方法在速度和结果质量上都有所改进,因为它暴露了更多的芯片放置问题的实例。
由于这些先前方法的局限性,人类设计师必须用商业电子设计自动化(EDA)工具迭代数月,将芯片网表的寄存器传输级别(RTL)描述作为输入,生成一个人工放置到芯片画布上的网表,并等待EDA工具72小时来评估该位置。在此反馈的基础上,人类设计师要么得出设计标准已经实现的结论,生成更新的平面规划图进行评估,要么向上游RTL设计师提供反馈,后者然后修改低级代码,使放置任务更容易(例如,解决时间违规)。
为了解决芯片平面布置图问题,研究者开发了一个RL方法能够概括整个芯片——这意味着它可以从经验中学习,在放置新芯片方面变得更好、更快——允许芯片设计者得到比人类更有经验的人工代理的帮助。
与此同时,为了实现泛化,研究者专注于学习芯片的可转移表示,以及预测放置质量的监督任务中的基础表示学习。通过设计一个神经结构,可以准确地预测各种各样的网络列表和它们的位置,研究者能够生成丰富的特征嵌入输入网络列表。然后,研究者使用这种架构作为他们的策略和价值网络的编码器,促进迁移学习。
在研究者的实验表明,该方法在为新的芯片块生成优化布局方面变得更快、更好,让人们更接近一个由具有丰富芯片布局经验的人工代理来辅助芯片设计师的未来。
图1 研究者方法和训练方案综述。
图2 方针和价值网络架构。
图3 从零开始的训练和不同时间的微调。
图4 Ariane RISC-V CPU的收敛图。
图5 训练前数据集大小的影响。
综上所述,研究者提出了一种基于RL的芯片平面规划方法,能够实现域自适应。RL代理在平面规划优化方面变得更好、更快,因为它放置了更多的芯片网络列表。该方法可以在6小时内,生成与人类专家相当或优于人类的芯片平面图,而人类需要数月才能生成现代加速器可接受的平面图。更重要的是,该方法已用于生产设计下一代谷歌TPU。(文:水生)