在谷歌AI负责人杰夫-迪恩(Jeff Dean)共同撰写的一篇预印本论文中,谷歌研究部门的科学家和谷歌芯片实现和基础设施团队描述了一种基于学习的芯片设计方法,该方法可以从过去的经验中学习,并随着时间的推移而改进,在生成未见过的组件的架构方面变得更好。他们声称,它平均在6个小时内完成设计,这比人类专家在循环中花费数周的时间要快得多。
虽然这项工作并不完全新颖,但它建立在谷歌工程师在3月份发表的一篇论文中提出的技术基础上,它推进了这项技术的发展,因为它意味着芯片上晶体管的放置可以在很大程度上实现自动化。如果公开发布,谷歌研究人员的技术可以让资金紧张的初创公司开发出自己的芯片,用于人工智能和其他特殊用途。此外,它可以帮助缩短芯片设计周期,使硬件更好地适应快速发展的研究。
“基本上,现在在设计过程中,你有设计工具,可以帮助做一些布局,但你有人类安置和路由专家与这些设计工具,以某种迭代多次,”院长在去年年底的采访中告诉VentureBeat。迪恩说:“从你想要的设计到实际把它放在芯片上,在面积、功率和电线长度方面有适当的限制,满足所有的设计角色或任何你正在做的制造过程,这是一个多星期的过程。”“我们基本上可以建立一个机器学习模型,让它学会玩特定芯片的(组件)放置游戏。”
联合作者的方法旨在将逻辑门、内存和更多内容的“netlist”图放置到芯片画布上,以便在遵守放置密度和路由拥塞约束的同时优化功率、性能和面积(PPA)。这些图的大小从数百万到数十亿个节点组成数千个集群,通常,评估目标指标需要花费数小时到一天的时间。
研究人员设计了一个框架,指导通过强化学习训练的智能体优化芯片放置。(通过奖励激励强化学习主体完成目标;在这种情况下,代理学习放置将最大化累积奖励。)。给定netlist、当前要放置的节点的ID以及netlist和半导体技术的元数据,策略AI模型输出可用放置位置的概率分布,而值模型则估计当前放置的预期报酬。
在实践中,从一个空芯片开始,上述代理按顺序放置组件,直到它完成netlist,并且直到最后,当代理波长(与功率和性能相关)和拥塞的负加权和被制表(受密度约束)时,它才获得奖励。为了指导代理选择先放置哪些组件,组件按大小降序排序;首先放置较大的组件可以减少更改,因为对于后面的组件没有可行的放置位置。
训练该代理需要创建一个由10,000个芯片配位的数据集,其中输入是与给定配位相关的状态,标签是配位的奖励(即线长和拥堵)。研究人员通过首先挑选5个不同的芯片网表进行构建,并对其应用AI算法,为每个网表创建2000个不同的放置状态。
在实验中,合著者报告说,当他们在更多的芯片上训练框架时,他们能够加快训练过程,更快地产生高质量的结果。事实上,他们声称在谷歌张量处理单元(TPUs)谷歌的定制设计的人工智能加速器芯片上,与领先的基线相比,它实现了更好的PPA。
研究人员总结道:“与现有的方法不同,我们的工作利用从放置之前的芯片中获得的知识,随着时间的推移变得更好。此外,我们的方法可以直接优化目标指标,如无线长度、密度和拥塞,而不必像其他方法那样定义这些函数的近似值。我们的公式不仅使它很容易纳入新的成本功能,因为他们成为可用的,但它也允许我们衡量他们的相对重要性,根据一个给定的芯片块的需要(例如,时间关键或电力限制)。
