从国际象棋到围棋,如今,人工智能(AI)正在挑战人类在更复杂、更具商业价值领域(即设计微芯片)的统治地位。2021年6月,谷歌大脑(Google Brain)项目的研究人员称,他们开发了一种机器学习系统,该系统在短时间内就可生成人类专家需耗费大量时间才能生成的可制造的芯片版图。6月10日,《自然》杂志网络版[1]发布了一篇文章,科学家Azalia Mirhoseini和Anna Goldie带领的谷歌研究团队在这篇文章中指出:“我们的方法能让AI在6 h内生成芯片版图,生成的芯片版图在几乎所有关键指标(包括功耗、性能和芯片面积)上均能达到甚至优于人类设计的芯片版图。”

虽然其他公司,如楷登电子(Cadence)、国际商业机器公司(IBM)和英伟达(NVIDIA)已经实现了自身基于机器学习的芯片设计解决方案[23],但是谷歌公司的AI技术无疑是使其成为第一个在芯片版图设计领域超越人类的公司。这一壮举是AI领域的一个重要里程碑,可能会大大缩短新型微处理器和其他先进芯片的开发时间。《自然》杂志的编辑称赞这一壮举为“一项有助于加速芯片供应链的重要成就”[4]。事实上,谷歌公司已经将这一系统投入使用,为公司下一代AI加速芯片设计版图。

版图设计是微芯片物理设计的早期阶段(图1)。包括在代表芯片表面的矩形区域中布置大的内存和逻辑控制单元(即宏)。绘制出初始版图后,在剩余的开放空间中布置较小的逻辑块(即标准单元),并布线将宏和单元连接起来[5]。

《图1》

图1 版图设计是半导体物理设计的早期步骤,包括在芯片表面布置大的功能块(即宏),同时综合考虑芯片尺寸、性能和功耗。版图设计之后是标准单元的布置、互连布线和时序优化。IC:集成电路。来源:Wikimedia Commons(公共领域)。

芯片版图设计是一项精密的工作,设计时需要综合考虑芯片面积、性能和功耗。版图设计人员试图在最小化芯片区域的同时,尽可能缩短布线长度,避免走线拥挤,并满足时间要求和其他设计标准。总体目标是实现芯片性能、功耗和成本的最优组合[6]。

这是一项艰巨而复杂的任务。当今较大的芯片可能有数百或数千个宏和数百万或数十亿个标准单元,其布线可能长达数公里。芯片中可能需要进行布局设计的模块数量几乎是天文数字。例如,Mirhoseini等[1]称,谷歌研究团队设计的版图可能有超过102500个模块需要进行布局设计。相比之下,围棋需要布局设计的模块仅为10360个。版图组合方式的复杂性意味着仅凭“蛮力”来计算是不可能的;即使用上世界上的全部算力,在数百万年内也不能尝试完所有可能的解决方案[7]。

相反,传统的优化方法通过使用简化模型和启发式算法(经验法则)简化了这个问题。到目前为止,直觉力强且经验丰富的人类芯片设计师在运用上述优化方法方面比机器驱动的算法表现得更好。加利福尼亚大学圣克鲁兹分校计算机科学与工程系教授Mathew Guthaus说道:“计算机面临着复杂的资源优化问题,比如布局规划,这其中有很多需要权衡的因素。这就相当于杂耍球,如果你掉了一个球,那么其他的球都会掉下来。”Guthaus曾获得过谷歌公司提供的研究资金,但他并未参与该项目。

尽管人们对自动优化技术的研究已有数十年的历史,但技艺精湛的人类版图设计师仍能在更短的时间内做出更好的设计。但即使是最厉害的设计师,版图设计也是一个漫长而又艰苦的过程。在这个过程中,版图都是手工绘制的,在设计的过程中还需要反复调整。一个版图可能需要数周或数月的时间才能最终确定下来[5]。

随着AI等领域对更强大芯片需求的激增,加快这一设计过程已成为科技行业的首要任务。Mirhoseini表示:“自2012年以来,AI技术的最大计算能力每几个月翻一番——远远快于摩尔定律(Moore’s Law)中的翻番周期。”[8]对于谷歌公司而言,用机器学习解决上述问题似乎是必然之选。谷歌公司既是一个多产的AI技术用户,也是一个领先的AI创新者。

具体来说,谷歌团队使用了一种强化学习技术,即由深度神经网络(一种多层神经网络)组成的人工“智能体”通过试错进行学习。当布置宏并探索各种版图设计时,智能体会收到不同布线长度、拥挤程度和密度的传输信号。好的传输信号会加强神经网络的内部联系,并且随着时间的推移会变得更好。

按照这种方式进行训练,该系统在第一次尝试后的短短几个小时内就可生成可用的版图,无需进行人类设计师通常需要的多次迭代。与传统自动优化方法(如模拟退火)进行一对一比较时,该系统的速度明显更快,设计的质量更高(从布线长度、时间、走线拥挤程度、面积和功率等方面衡量)。与人工设计版图相比,该系统设计版图的速度要快得多;在大多数情况下,其质量甚至超过了人工设计的版图。Guthaus说道:“这非常令人兴奋,结果看起来很惊人。”他曾警告称:“仍需要与一流的人类设计进行大量比较。”

与传统的自动化系统和人工系统相比,该系统最大的优点是可以从大量的实例中学习。随着经验的积累,该系统会变得更加熟练和灵活。谷歌团队表示,随着训练的芯片数量不断增多,我们的方法在为之前看不见的芯片块快速设计最优位置方面将表现得更好[1]。在植入10 000个版图示例进行预先训练后,该系统获得了“不同芯片通用”的能力——能为各种芯片类型建立版图。谷歌团队称,这一壮举就像掌握了多种不同规则的游戏。

有趣的是,机器生成的版图与人工绘制的版图完全不同。人类设计师通常将宏排列成整齐的行和列,将相关的功能紧密地排列在芯片的外围,而将内部区域留给标准单元。这样做的结果就像网格状的公寓单元被宽阔的干道隔开一样(图2)。相比之下,谷歌公司AI自动生成的版图中宏的排列几乎是随机的[ Goldie称它们看起来“像外星人”(alien-looking)[9] ]:宏和开放区域拼接在一起,分散在芯片上,没有明显的形状。

《图2》

图2 人类设计师通常按功能(处理器块、内存、逻辑控制等)对宏进行分组,从而创造出有序的设计。然后,各组宏之间的开放区域用更小的逻辑块(标准单元)和连接线(连接各个块的布线)填充。

谷歌团队表示,这种新方法有可能为每一代新款芯片的生成[1]节省数千小时的人力。加利福尼亚大学圣迭戈分校电子工程与计算机科学教授Andrew Kahng认为:“自动化芯片设计方案比目前的方法发展得更好、更快,成本更低,有助于保持芯片技术遵循‘摩尔定律’轨迹。”[5]此外,与人类设计师相比,该系统的设计速度更快,可以尝试更多种设计方案;人类设计师需手动设计芯片版图,设计速度比较慢,且设计时间安排的比较紧凑。

该系统的优势似乎不仅仅体现在理论上。谷歌公司迅速将其自动化系统投入实际应用,为公司的下一代张量处理器(TPU)建立可制造的版图。TPU是一种专为机器学习开发的专用集成电路(ASIC),专门为加速对许多谷歌服务(包括互联网搜索、街景、谷歌照片,以及基于云计算的商用AI服务)至关重要的机器学习系统而设计[10]。

谷歌团队最终预测,机器学习将加快更强大芯片的开发速度,而芯片设计反过来也会加快机器学习的速度。Mirhoseini称:“在过去几十年中,系统和硬件真的改变了机器学习技术[11]。现在是机器学习技术给予回馈的时候,它将改变系统和硬件的设计方式。”

芯片设计可能只是个开始。Mirhoseini等[1]说:“这种形式的布局优化方案可广泛应用于科学和工程设计,包括硬件设计、城市规划、疫苗测试与分配,以及大脑皮层布局。因此,我们相信这种布局优化方案可以解决芯片设计以外重要的布局问题。”