在GoogleA I领导JeffDean共同撰写的一篇预印论文中,Google Research和Google芯片实现和基础设施团队的科学家描述了一种基于学习的芯片设计方法,它可以从过去的经验中吸取教训,并随着时间的推移而改进,更好地为看不见的组件生成体系结构。 他们声称它平均在6个小时内完成设计,这比人类专家在循环中花费的几周时间要快得多。

虽然这项工作并不是完全新颖——它建立在谷歌工程师在3月份发表的一篇论文中提出的一项技术的基础上——但它推进了技术的现状,因为它意味着片上晶体管的放置可以在很大程度上自动化。 如果公开上市,谷歌研究人员的技术可以使资金短缺的初创公司能够为人工智能和其他专门用途开发自己的芯片。 此外,它还有助于缩短芯片设计周期,使硬件更好地适应快速发展的研究。

“基本上,现在在设计过程中,你有设计工具可以帮助做一些布局,但你有人类布局和路由专家与这些设计工具一起工作,以进行多次迭代,多次迭代,”迪恩在去年晚些时候的一次采访中告诉Venture Beat。 迪恩说:“这是一个多周的过程,实际上是从你想要的设计中,把它实际放置在一个芯片上,在面积、功率和电线长度上有适当的限制,并满足所有的设计角色或任何你正在做的制造过程。 “我们基本上可以有一个机器学习模型,学习玩特定芯片的[组件]放置游戏。

上图:Ariane的位置,一个开源处理器,随着训练的进展.. 在左边,政策是从零开始训练的,在右边,一个预先训练的政策正在为这个芯片进行微调。 每个矩形表示单个宏位置。

合著者的方法旨在将逻辑门、内存和更多的“Netlist”图放置在芯片画布上,这样设计就可以优化功率、性能和面积(PPA),同时遵守布局密度和路由拥塞的约束。 这些图表的大小从数百万到数十亿个节点,分组在数千个集群中,通常,评估目标度量需要几个小时到一天以上。

研究人员设计了一个框架,指导一个代理人通过强化学习来优化芯片放置。 (强化学习代理被激励通过奖励来完成目标;在这种情况下,代理学会做出将最大化累积奖励的安排。) 给定Netlist、要放置的当前节点的ID以及Netlist和半导体技术的元数据,策略AI模型输出可用放置位置上的概率分布,而值模型估计当前放置的预期奖励。

在实践中,从一个空芯片开始,上述代理依次放置组件,直到它完成Netlist,直到结束为止,当代理波长(与功率和性能相关)和拥塞的负加权和被制表(受密度约束)时,它才得到奖励。 为了指导代理选择哪个组件首先放置,组件是按降大小排序的;先放置更大的组件会减少以后没有可行放置的机会。