AI 可以在 6 小时内设计出计算机芯片?谷歌这项研究厉害了
现代计算的革命在很大程度上是由计算机系统和硬件的显著进步促成的。随着摩尔定律的放缓和 Dennard 标度的扩大,世界正朝着专用硬件发展,以满足指数级增长的计算需求。
然而,今天的芯片需要几年的时间来设计,因此大大缩短芯片设计周期,使硬件适应快速发展的机器学习领域是当前的一个发展趋势。
如果使用机器学习算法代替人为设计工作来尝试设计芯片,同时其本身能够提供缩短芯片设计周期的方法,从而在硬件和机器学习之间创建一个更加集成的关系来促进彼此的发展,那又会怎么样呢?
近日,由谷歌 AI 的首席科学家 Jeff Dean 领导的团队共同撰写了一份预印论文,该论文描述了一种基于学习的芯片设计方法。
他们将芯片放置视为强化学习(RL)问题,用 RL 策略来优化芯片放置的质量。与以前方法不同的是,该方法可以从过去的经验中学习,并随着时间的推移不断改进。特别是,当训练更多的芯片块时,该方法更擅长为先前未见过的芯片块快速生成优化的布局。
他们声称,该方法完成芯片设计的平均时间不到 6 个小时,这比人类专家花数周时间完成设计要快得多。
芯片布局规划困局
在传统的 “布局布线” 任务中,芯片设计人员使用软件来确定芯片电路在芯片中的布局,类似于设计建筑物的平面图。
计算机芯片被分成许多块,每一块都是一个单独的模块,如内存子系统、计算单元或控制逻辑系统。这些模块可以用网表、电路组件和标准单元 (如 NAND、NOR 和 XOR 等逻辑门) 的图形来描述,所有这些组件都是通过导线连接。
确定一块芯片的布局是一个称为芯片布局规划的过程,它是芯片设计过程中最复杂、最耗时的阶段之一,涉及到将网表放置在一个芯片画布 (2 d 网格) 上,从而提升功率、性能以及区域 (PPA) 最小化,同时遵守对密度和路由拥塞的限制。为了找到满足多个目标的最佳布局,需要考虑许多变量。
尽管这方面的研究已经进行了几十年,但是人类专家仍然需要花上几周的时间来迭代,以生成满足多方面设计标准的解决方案。这个问题的复杂性源自网表图的大小,这些图的大小范围从数百万到数十亿个节点组成数千个集群,通常,评估目标指标需要花费数小时到一天的时间。
“基本上,在设计过程中,你可以使用一些设计工具来进行一些布局,但仍需要人工布局和布线专家同这些设计工具一起进行很多次重复的迭代,”Dean 说道,“从你想要的设计到实际将其物理布局到芯片上,并在面积、功率和导线长度上有适当的限制,而且也要满足所有的设计角色或任何正在进行的制造过程,这是一个数周的过程。而通过建立一个机器学习模型,可以让它学会玩特定芯片的组件放置游戏。”
深度强化学习模型
研究人员设计了一个深度强化模型,该模型可以尝试各种步骤来查看哪些步骤可以带来更好的结果,这些步骤不是在游戏板上放置零件,而是研究如何在整个芯片中设计放置正确的电路布局。
该模型可以指导经过强化学习训练的 RL 策略来优化芯片放置。其输入是芯片网表 (节点类型和图邻接信息)、要放置的当前节点的 ID,以及一些网表元数据,如连接总数、宏和标准单元集群。网表图和当前节点通过一个基于边缘的图神经网络传递,该神经网络是为编码输入状态而开发的,嵌入生成部分放置的图和候选节点。
图神经网络生成的嵌入与元数据嵌入串联在一起,形成对策略和价值网络的输入
然后将边缘、宏和网表元数据嵌入连接起来,以形成单个状态嵌入,并将其传递给前馈神经网络。前馈网络的输出是一种学习表示,它捕获有用的特征并作为策略和价值网络的输入。策略网络在所有可能的网格单元上生成一个概率分布,当前节点可以放置在这些网格单元上。
在每次训练的迭代中,宏均根据 RL 策略依次放置,然后通过力导向方法放置标准单元簇,该方法将电路建模为一个弹簧系统,以最大程度减少导线长度。RL 训练的指导原则是使用近似线长(即半周线长,HPWL)的加权平均值和近似拥塞(路由资源消耗的比例),为每个实行 RL 策略的芯片位置计算一个快速但近似的奖励信号放置的网表。
在每次训练迭代期间,一次将一个宏放置一次策略,并通过强制定向方法放置标准单元簇。奖励是根据近似导线长度和拥塞的加权组合计算得出的。
在实践中,RL 策略从空的芯片开始,按顺序依次放置组件,直到它完成网格为止,并且直到最后代理波长 (与功率和性能相关) 的负加权总和和拥塞为零,才获得奖励。为了指导代理选择先放置哪些组件,组件按大小降序排序,首先放置较大的组件,降低了以后没有合适位置的可能性。
训练 RL 策略需要创建一个包含 10,000 个芯片放置的数据集,其中输入是与给定放置相关的状态,标签是放置的奖励 (即线长和拥塞)。研究人员首先选择了 5 个不同的芯片网表,然后应用 AI 算法为每个网表创建 2000 个不同的位置。
训练数据大小与微调性能
尽管这项工作并不完全是新颖的,它是基于谷歌工程师在 3 月份发表的一篇论文中提出的一项技术,但该工作推进了这项技术的发展,因为它意味着芯片上晶体管的放置可以在很大程度上实现自动化。一旦公开发布,谷歌研究人员的技术可以让资金紧张的初创公司开发出自己的芯片,用于人工智能和其他特殊用途。此外,它可以帮助缩短芯片设计周期,使硬件更好地适应快速发展的科学研究。
研究人员表示,当他们在更多的芯片上训练框架时,能够加快训练过程,并更快地产生高质量的结果。实际上,他们声称与领先的基准相比,它在生产中的谷歌张量处理单元 (TPUs)(一款谷歌定制设计的人工智能加速芯片)上实现了优于领先基线的 PPA。
研究人员总结道:“与现有的从头开始优化每个新芯片的位置方法不同,我们的工作利用从放置以前的芯片中获得的知识,来使其随着时间的推移变得更好。此外,我们的方法可以直接优化目标指标、线长、密度和拥塞,而不必像其他方法那样定义这些功能的近似值。我们的方法不仅使新的成本函数在可用时易于整合,而且还使我们能够根据给定芯片块的需求,例如,时序关键或功耗受限,来权衡它们的相对重要性。”
而在 Reddit 上,这则消息也引发了网友热议。有网友说,当他看到这则消息,他觉得非常酷。因为放置数以亿计的晶体管,使其可以连接并正常工作是一项艰巨的任务,其中布局和布线非常重要的,信号沿导线移动需要花费时间,而布局目标是使导线长度最小,减少组件之间的等待时间,这很难做到。但是仍然会存在一些问题,例如接线不合适,这就需要人工来解决。而减少设计芯片所需的时间,就可以设计更多的芯片来加快迭代速度。
也有网友表示,它可以帮助设计人员轻松设计用于神经网络、机器学习、深度学习的芯片,加速 AI 的发展。
软件与硬件的发展相辅相成,深度学习三巨头 Bengio、Hinton、LeCun 就曾在 AAAI2020 大会上共同探讨未来深度学习神经网络的前景,他们均表示用于加速神经网络训练和推理的新型硬件可以生成更大的模型,也许有一天有可能使数万亿突触神经网络成为可能。而谷歌的快速设计计算机芯片更是助力了其发展。
参考来源:
https://venturebeat.com/2020/04/23/google-claims-its-ai-can-design-computer-chips-in-under-6-hours/
https://ai.googleblog.com/2020/04/chip-design-with-deep-reinforcement.html
https://www.zdnet.com/google-amp/article/google-experiments-with-ai-to-design-its-in-house-computer-chips/
https://www.reddit.com/r/artificial/comments/g7ov49/googles_ai_can_design_computer_chips_in_under_6/
https://www.zdnet.com/article/ai-on-steroids-much-bigger-neural-nets-to-come-with-new-hardware-say-bengio-hinton-lecun/#ftag=CAD-00-10aag7e
近期精彩集锦(点击蓝色字体跳转阅读):