优化功耗、性能和面积(PPA)一直是芯片设计中的三个重要目标。但即使是最好的设备和经验最丰富的工程团队也无法保证优化结果的稳定性。
优化 PPA 的过程正受到越来越多因素的制约:应用、IP 和其他组件的可用性不同,工程师对不同工具和方法的熟悉程度也不尽相同。例如,同样的设计目标既可以用更大的处理器实现更高性能,也可以用更小、更专业的处理元件更紧密的结合软件来实现。因此,即使在相同领域和相同的功率设计目标下,也会有许多不同的方法可以实现相同的目标。并且方案优劣的评价标准也是因领域和供应商的具体需求而异的。
另外,由于对芯片安全性的需求不断增加,优化过程变得愈加复杂。根据设备使用场景的重要性,其安全需求也各不相同。安全级别的高低会影响芯片功率和性能的设计,进一步影响 IC 制造成本、上市时间、交货时间和供应商的竞争力。
为了缕清这些因素,EDA 供应商开始寻求人工智能和机器学习技术的帮助。芯片供应商们正致力于将各种 AI 功能集成到工具流中。根据麻省理工学院和得克萨斯大学奥斯汀分校的研究人员的论文,迄今为止该领域研究成果喜人。研究人员表示,使用了深度强化学习算法的设备在某些任务上的表现已经超过了人类。
在六个小时的实验中,研究人员通过对比使用强化学习的图卷积神经网络方法、传统的黑盒优化方法(贝叶斯优化、进化算法)、随机搜索方法、具有五年经验的设计师这四者的成果得到结论:带有迁移学习的强化学习方法可以取得更好的效果。换言之,基于人工智能的工具可以使晶体管设计更加高效。
如今,包括谷歌、英伟达、新思科技、Cadence、三星和西门子在内的许多公司都已经有在芯片设计中使用人工智能的计划,其中部分公司甚至已经在生产中进行这种尝试。
直到今天,人们在设计芯片的过程中仍然在使用各种设计工具进行电路、逻辑门、布线、布局的仿真和验证。这么做是为了最大限度的减少可能的错误并且节约时间和成本,但这个过程相当乏味且耗时。
图 1:半导体设计流程中的各个步骤。资料来源:eInfochips
设计芯片的流程有很多步骤:一般从确定芯片的规格和架构开始,然后遵循上面流程图中的各个步骤。在设计完成后,设计文件(GDS II)将会被发送给工厂。
当摩尔定律有效时,这个流程只需要根据实际情况进行微调即可。但随着制程红利正在消失,FinFET 时代到来。由于先进制程研发成本的增高,芯片制造商们不得不开始寻找新的方法来实现 PPA 的优化。这种新变化显著增加了芯片设计流程的复杂程度,并使得按期交付芯片愈加困难。
“设计一个 28nm 芯片的平均成本仅为 4000 万美元,”IBS 首席执行官 Handel Jones 说,“但现在设计一个 7nm 芯片的成本是 2.17 亿美元,设计一个 5nm 芯片的成本则是 4.16 亿美元,设计一个 3nm 芯片的成本甚至达到了 5.9 亿美元。”
随着芯片的迭代,晶体管数量已经从几千个增加到了数十亿个。这使得芯片上晶体管排布设计的异构性越来越高,并且它们通常都会采用某种先进封装工艺。与之前只需要考虑如何将更多的晶体管排列在同一空间不同,现在芯片设计中还需要考虑到功率密度、热预算需求、各种类型的机械和电气应力、邻近效应以及工作环境等复杂因素。这使得设计过程耗时大大增加,同时也堆高了设计成本。更糟糕的是,芯片制造商间的持续竞争迫使他们必须在更短时间内实现芯片的迭代,否则就会在竞争中处于劣势。这导致了芯片制造商没有试错机会:一次设计失误就代表着巨额损失。
将人工智能引入到芯片设计的流程中有利于减少流程复杂性、减少错误并缩短开发周期。
例如,在芯片设计中布线过程的 90% 已经实现了自动化,仅需要一位经验丰富的设计师完成最后 10% 的工作即可。人工智能的参与可以将这最后 10% 的时间进一步缩短。
图 2:人工智能的作用越来越大。资料来源:寒武纪人工智能研究
“这一切都是为了效率,”Rambus 的研究员 Steven Woo 说,“本质上不论是人类设计师还是人工智能,其目的都是为了实现芯片优化,但人工智能显然在这一过程中更有效率。我们会对算法模型进行预训练以让其更好的工作。由于引入了强化学习算法,随着时间推移基于人工智能的设计工具会变得越来越强大。假以时日它将能够向设计人员提供几乎无错误的解决方案,这种方案优化 PPA 的效率会比传统方案要高得多。此外,同样由于效率的原因,芯片之间数据交换的速度也非常重要,因为 AI 需要快速访问大量数据。”
许多人都支持 Steven Woo 的这一观点。西门子 IC 设计部门工程总监约翰.史纳比表示:“人工智能将使得芯片设计流程进一步自动化,尤其是在芯片布局的设计过程中。实践已经证明,在模拟电路中采用机器学习方案可以提高生产力。在布局设计上,AI 可以用于生成 FinFET 节点中的最佳器件布局建议,以最大程度的减少互连寄生效应。当芯片设计涉及加速度计和陀螺仪等微机电系统时,AI 能够参与参数化的设计流程,以与人类合作设计 IC 和 MEMS 器件。这将使得设计人员能够更快完成 MEMS、IC 的软硬件集成,使设计工作变得更加轻松。”
人工智能如何学习?
AI“智能”的基础是它可以在短时间内进行大量的识别和匹配工作,但遗憾的是 AI 并不能像人类一样“学习”知识。事实上,人工智能获取知识的方式和人类有着本质的不同。一般来讲,在算法应用之前需要将包含了大量数据的训练集或输入到算法初始模型中进行训练。在经过长时间训练之后,算法才能算得上拥有了“智能”。
(雷峰网编者注:AI 的“智能”来自于其在数据集中进行大量尝试和策略调整而得到的不同情况下的最优解。在实际生产遇到的新场景中 AI 将这些最优解策略与实际情况进行匹配,从而得出相对实际场景最优的答案。这里举个例子来解释人工智能学习和人类学习过程的不同:人类可以在课堂上记住“1+1=2”的结论,并将其应用到“一个苹果旁边摆上另一个苹果”的场景中,从而得到“这里有两个苹果”的结论。而人工智能的学习过程则更像猩猩:通过两次将单个苹果摆在面前数出两个苹果,并将这一过程重复成千上万次。猩猩就可以在下一次面对“一个香蕉旁边摆着另一个香蕉”的场景时,得到“面前有两个香蕉”的结论。)
此外,人工智能还可利用强化学习方法(RL)来指导训练结果。RL 是一种机器学习技术,可以为 AI 的学习过程加入奖惩机制。
在一个引入了奖惩机制模型的人工智能算法中,AI 的学习总是从初始状态开始,并会输出一些随机结果。然后设计师会对该结果做出判断,当该结果被接受时,将视为对模型进行了“奖励”,模型会继续向着这个趋势进行优化。相反的,当该结果被设计师拒绝时,将视为对该模型的“惩罚”。模型会调整策略方向。无论是设计师拒绝还是接受该结果,算法模型都会进入在调整后进行下一次迭代,并输出新的结果以让设计师接受或拒绝。因此随着 RL 学习过程的持续进行,人工智能算法将会变得越来越完善。
西门子工业软件高级副总裁兼总经理 Ravi Subramanian 为机器学习进一步做了解释:“机器学习是人工智能的一个子集,指的是机器无需外部编程实现自我进化的过程。传统设备的运行规则遵循计算机语言中 if-then-else 语句的‘二极管’逻辑和线性顺序。但机器学习方法能够使设备不断从自身采集到的数据中获得反馈,从而指导设备下一步的行动。”
Subramanian 表示,要让 AI 进行学习,需要三个前提条件:
其一是需要一个数据集,即一个包含了大量数据的库。数据可以是 RTLIP、GDSII、C 语言或 SPICE 表格等多种形式。(雷峰网编者注:数据集就是人工智能算法的初始输入,将数据集输入算法相当于给 AI“例题”进行学习)
其二是需要一个算法模型。这个模型使得 AI 系统能够完成观测、学习、反馈等任务。基于这个前提使用了人工智能算法的设备才能根据每一次结果的输出动态调节自身策略,而不是和传统设备一样仅根据输入的程序运行。
其三是需要一个目标函数。并且设计一个围绕着这个目标函数的奖惩机制,以完成强化学习过程。(雷峰网 (公众号:雷峰网) 编者注:目标函数是指一个规定“最优解”定义的函数。每次训练完成后,将会通过该函数输出一个返回值,一般称作 τ,可以看做是算法每次“考试”后的分数。设计人员将会根据 τ 值与目标函数期望值的差距来决定对算法模型的奖惩)
“人工智能本身并不会做决定”,他解释说,“谷歌人工智能研究负责人 Francois Chollet 的说法很准确,他将人工智能定义为系统对数据进行分析后应用在陌生场景中的能力。”
汽车可以通过衡量每加仑油能行驶的里程或者每次充电后的最大行驶里程来衡量其续航优劣。但人工智能系统不同,每个人工智能系统的设计都是独一无二的,设计系统的工具也是各不相同的。但整个芯片行业都报告基于人工智能的芯片设计工具提高了生产力。
例如,谷歌将人工智能应用于芯片布图规划,并发现他们可以在不到六个小时的时间里完成从前工程师动辄需要数月的工作。无论是人类还是人工智能,两者都可以通过 PPA 优化得到满足制造标准的芯片设计结果,但在生产流程中引入了人工智能的企业生产效率显然更高。
“将人工智能应用于芯片设计过程肯定会提高芯片性能,”Cadence 数字与签核集团产品管理组总监 Rod Metcalfe 说。“例如,在设计过程中使用了人工智能的 5nm 移动 CPU 可以提高 14% 的性能,7% 的耗散功率和 5% 的晶体管密度,这对于芯片设计很重要。”
这些改进在其他应用中也得到了体现。Synopsys 人工智能解决方案高级总监 Stelios Diamantidis 表示:“使用基于 AI 的设计技术,我们的客户表示他们能够与传统设计方法相比降低 25% 的功耗,这种提升是惊人的。”
对大多数人而言,难以想象将 10 亿个晶体管集成到一颗芯片中。但根据 2021 年 6 月新思科技的报告,他们已经制造出了一种含有 1.2 万亿个晶体管、400000 个 AI 内核,面积为 46225mm2 的芯片。这是使用传统工具的人类设计师无论如何也达不到的技术高度。
Cambrian AI Research 创始人兼首席分析师 Karl Freund 表示:“在芯片设计流程中引入人工智能来提高效率现在已是大势所趋,至少对主要芯片供应商而言是这样的。像 Synopsys DSO.AI 这样的系统正在为公司节省时间和金钱,并生产出功耗更低、性能更高、面积更小的芯片。现在,业界正将注意力转向优化物理设计之外的下一步,例如系统、软件算法的优化和设计验证。整个行业都在从这些创新中受益,消费者也将能用到性能更强劲,功耗更低,更便宜的芯片。”
所有主要的 EDA 公司都在致力于将 AI 功能加入到他们的芯片设计流程中。并且,人工智能不仅可以帮助他们将更多东西塞进更小的空间里,还可以帮助他们将更多东西塞进更大的空间里。
图 3:Cerebras 的晶圆尺寸芯片。资料来源:大脑系统
Cerebras Systems 的第二代芯片采用 7nm 工艺开发,包含 2.6 万亿个晶体管和 850,000 个 AI 内核。这是目前世界上由人工智能设计的最大的芯片,它和一个盘子的大小相当。相比之下,世界上最大的 GPU 也仅有 540 亿个晶体管。Cerebras 的芯片有 40 GB 片上内存来支持 AI 计算。要设计这种体量的芯片,必须使用基于人工智能技术的芯片设计工具。
未来,在 PPA 问题之外,人工智能还可以在集成芯片安全性等领域提供帮助。
西门子的 Subramanian 指出,人工智能已经在至少四个领域得到了应用:1、创建一种设计和验证 IC 的新方法;2、减少设计过程中的错误并既减少设计时间;3、构建一个基于机器学习原理的新计算架构;4、构建基于人工智能算法的芯片。
当问题能够被人工智能理解的方式明确定义时,人工智能在设计中的效果最好。(编者注:即需要将实际生产中的种种情况准确的转化为目标函数的一部分。)因此,IC 设计者必须先考虑是否存在与人工智能适应、学习、概括能力相关的问题,设计好目标函数。这样人工智能才能够准确的将这些知识 / 规则运用到不熟悉的场景中。
“了解是否存在非常适合人工智能的问题是第一步,也是最重要的一步,”Subramanian 说,“这也可能是有人工智能参与的芯片设计流程中最关键的一环。”
到目前为止,已经有很多领域显示出人工智能的优势,并且无疑未来人工智能会在更多领域中显现出这种优势。
曾经人们对于 AI 可能会昙花一现的顾虑已经消失。如今站在面向未来的交叉路口上,人们正憧憬的眺望。一个新问题此时在人们的脑中回荡:“人工智能还能够做什么?”这个问题的答案或许就是交叉路口上应该竖起的路标。