英语轻松读发新版了,欢迎下载、更新

单靠人工智能还不足以进行芯片设计

2024-11-21 15:50:44 英文原文

作者:Somdeb MajumdarUday MallappaHesham Mostafa

芯片设计已经来了自 1971 年以来已经走过了漫长的道路费德里科·法金完成了第一个商用微处理器的草图英特尔4004,只使用直尺和彩色铅笔。今天的设计人员可以使用大量的软件工具来规划和测试新的集成电路。但随着芯片变得异常复杂——其中一些包括数千亿个晶体管——设计师必须解决的问题也是如此。而且这些工具并不总是能够胜任任务。

现代芯片工程是一个包含九个阶段的迭代过程,从系统规范到包装。每个阶段都有几个子阶段,每个子阶段可能需要数周到数月的时间,具体取决于问题的大小及其限制。许多设计问题只有十个可行的解决方案100至 101000可能性——大海捞针(如果有的话)。如今使用的自动化工具通常无法解决如此规模的现实问题,这意味着人类必须介入,使得这个过程比芯片制造商希望的更加费力和耗时。

毫不奇怪,人们越来越有兴趣使用机器学习加速芯片设计。然而,正如我们的团队在英特尔人工智能实验室已经发现,机器学习算法本身通常是不够的,特别是在处理必须满足的多个约束时。

事实上,我们最近尝试开发基于人工智能的解决方案来解决称为布局规划(稍后详细介绍该任务)的棘手设计任务,这使我们开发出了基于非人工智能方法(如经典搜索)的更为成功的工具。这表明该领域不应该太快地放弃传统技术。我们现在相信,结合两种方法优点的混合方法虽然目前是一个尚未充分探索的研究领域,但将被证明是最富有成果的前进道路。原因如下。

人工智能算法的危险

芯片设计的最大瓶颈之一出现在物理设计阶段,即架构已经解决并且逻辑和电路已经制定出来之后。物理设计涉及对芯片布局和连接进行几何优化。第一步是将芯片划分为高级功能块,例如 CPU 内核、内存块等。然后,这些大分区被细分为更小的分区,称为宏和标准单元。一个普通的片上系统 (SoC) 大约有 100 个高级块,由数百到数千个宏和数千到数十万个标准单元组成。

接下来是布局规划,其中功能块的排列以满足某些设计目标,包括高性能、低功耗和成本效率。这些目标通常通过最小化线长(连接电路元件的纳米线的总长度)和空白(未被电路占据的芯片总面积)来实现。此类布局规划问题属于数学规划的一个分支,称为组合优化。如果您曾经玩过俄罗斯方块,那么您就已经解决了一个非常简单的组合优化难题。

An illustration of a chart.  布局规划是芯片设计的众多阶段之一,其中排列 CPU 内核和其他功能块以满足特定目标。它特别具有挑战性,因为它需要解决具有多个约束的大型优化问题。克里斯·菲尔波特

芯片布局规划就像类固醇的俄罗斯方块。一方面,可能的解决方案的数量可能是天文数字——毫不夸张地说。在典型的 SoC 布局规划中,大约有 10 个250120个高级块的可能排列方式;相比之下,估计有 1024宇宙中的星星。宏和标准单元的可能排列数量还要大几个数量级。

给定单一目标——例如将功能块压缩到尽可能小的硅区域——商业布局规划工具可以在短短几分钟内解决如此规模的问题。然而,当面临多个目标和约束时,例如关于某些块必须放在哪里、如何塑造它们或哪些块必须放置在一起的规则,它们就会陷入困境。因此,人类设计师经常依靠反复试验和自己的聪明才智,使生产进度增加数小时甚至数天。这只是一个子阶段。

尽管取得了胜利机器学习在过去的十年里,迄今为止它对芯片设计的影响相对较小。公司喜欢英伟达已经开始训练大型语言模型(法学硕士)——为 Copilot 和 ChatGPT 等服务提供支持的人工智能形式——写脚本用于硬件设计程序并分析错误。但这样的编码任务与解决布局规划等棘手的优化问题相去甚远。

乍一看,可能会很想扔掉变压器型号, 的基础法学硕士,也在物理设计问题上。理论上,我们可以通过训练变压器顺序预测芯片上每个块的物理坐标来创建基于人工智能的布局规划器,类似于人工智能聊天机器人顺序预测句子中的单词的方式。然而,如果我们试图教模型放置块以使它们不重叠,我们很快就会遇到麻烦。尽管对于人类来说很容易掌握,但这个概念对于计算机来说却很重要,因此需要大量的训练数据和时间。同样的事情也适用于进一步的设计约束,例如将块放置在一起或靠近某个边缘的要求。

An illustration of a floorplan and a B*-tree data structure.简单的平面图 [左] 可以用 B* 树数据结构 [右] 表示。克里斯·菲尔波特

因此,我们采取了不同的方法。我们的首要任务是选择一个有效的数据结构来传达平面图中块的位置。我们找到了所谓的 B* 树。在此结构中,每个块都表示为二叉树上的一个节点。平面图左下角的块成为根。右边的方块成为一个分支;顶部的块成为另一个分支。每个新节点都会延续这种模式。因此,随着树的生长,它会向右和向上扇形,从而封装平面图。

B* 树结构的一大优点是它保证了无重叠的布局规划,因为块位置是相对的而不是绝对的,例如,“在另一个块之上”而不是“在这个位置”。- 因此,人工智能布局规划器不需要预测它放置的每个块的确切坐标。相反,它可以根据块的尺寸及其相关邻居的坐标和尺寸来简单地计算它们。瞧,没有重叠。

数据结构就位后,我们训练了几种机器学习模型——具体来说,图神经网络、扩散模型和基于变压器的模型——基于数百万个最佳平面图的数据集。该模型学会了预测放置在先前放置的块上方或右侧的最佳块,以生成针对面积和线长进行优化的平面图。但我们很快意识到这种循序渐进的方法行不通。我们将布局规划问题扩展到大约 100 个区块,并在无重叠规则之外添加了硬性约束。其中包括要求将一些块放置在预定位置,例如共享相同电压源的边缘或分组块。然而,我们的人工智能模型浪费时间去寻求次优的解决方案。

我们推测,问题在于模型无法回溯:因为它们是按顺序放置块的,所以它们无法追溯修复早期的错误放置。我们可以使用强化学习代理等技术来绕过这个障碍,但是训练一个好的模型所需的探索量是不切实际的。走进死胡同后,我们决定放弃逐块决策,尝试新的策略。

回归芯片设计传统

解决大规模组合优化问题的常见方法是使用称为“搜索技术”的搜索技术模拟退火(SA)。1983年首次描述, SA 的灵感来自冶金学,其中退火是指将金属加热到高温,然后缓慢冷却的过程。受控的能量减少使原子有序排列,使材料比快速冷却时更坚固、更柔韧。以类似的方式,SA 逐渐寻找优化问题的最佳解决方案,而不必繁琐地检查每种可能性。

这就是它的工作原理。该算法从一个随机解决方案开始——出于我们的目的,一个表示为 B* 树的随机布局规划。然后,我们允许算法采取三个操作之一,同样是随机的:它可以交换两个块,将块从一个位置移动到另一个位置,或者调整块的宽高比(不改变其面积)。我们通过总面积和线长的加权平均值来判断最终平面图的质量。该数字描述了该操作的“成本”。

如果新的平面图更好——也就是说,它降低了成本——我们就接受。如果情况更糟,我们最初也会接受它,因为知道一些“糟糕”的决定可能会导致好的方向。然而,随着时间的推移,随着算法不断随机调整区块,我们接受成本增加的行为的频率越来越低。与金属加工一样,我们希望逐步实现这一转变。正如过快冷却金属会使其原子陷入无序排列一样,过早限制算法的探索也会使其陷入次优解决方案,称为局部最小值。通过尽早给算法足够的余地来避开这些陷阱,我们就可以引导它走向我们真正想要的解决方案:全局最小值(或它的一个很好的近似值)。

与我们的任何机器学习模型相比,我们使用 SA 解决布局规划问题取得了更大的成功。由于 SA 算法没有放置顺序的概念,因此它可以随时更改任何块,本质上允许算法纠正早期的错误。在没有限制的情况下,我们发现它可以在几分钟内解决具有数百个块的高度复杂的平面图。相比之下,使用商业工具的芯片设计师需要花费数小时才能解决相同的难题。

An illustration of a series of numbered squares.  使用称为模拟退火的搜索技术,布局规划算法从随机布局开始[顶部]。然后,它尝试通过交换两个块、将块移动到另一个位置或调整块的纵横比来改进布局。克里斯·菲尔波特

当然,现实世界的设计问题是有限制的。因此,我们为 SA 算法提供了一些与机器学习模型相同的算法,包括对某些块的放置位置以及它们如何分组的限制。我们首先尝试通过将平面图违反这些硬约束的次数添加到我们的成本函数中来解决这些硬约束。现在,当算法进行随机块更改而增加约束违规时,我们以增加的概率拒绝这些操作,从而指示模型避免它们。

但不幸的是,这种策略适得其反。在成本函数中包含约束意味着算法将尝试在满足这些约束与优化面积和线长之间找到平衡。但根据定义,硬约束是不能妥协的。然而,当我们增加约束变量的权重来解决这种刚性时,算法在优化方面表现不佳。模型没有努力修复导致全局最小值(最佳布局规划)的违规行为,而是反复导致模型无法逃脱的局部最小值(次优布局规划)。

推进机器学习

回到绘图板,我们构思了 SA 的新变化,我们称之为约束感知 SA (CA-SA)。该变体采用两个算法模块。第一个是 SA 模块,专注于 SA 最擅长的领域:优化面积和线长。第二个模块选择随机约束违规并修复它。该修复模块很少启动——大约每 10,000 次操作启动一次——但一旦启动,它的决定总是会被接受,无论对面积和线长的影响如何。因此,我们可以引导我们的 CA-SA 算法找到满足硬约束的解决方案,而无需对其进行限制。

使用这种方法,我们开发了一个开源布局规划工具,可以同时运行 CA-SA 的多个迭代。我们称之为具有约束意识的并行模拟退火,或 Parsac简而言之。人类设计师可以从 Parsac 的最佳解决方案中进行选择。当我们在多达 300 个块的流行布局规划基准上测试 Parsac 时,它轻松击败了所有其他已发布的公式,包括其他基于 SA 的算法和机器学习模型。

An illustration a series of colored blocks.如果没有约束意识,常规的模拟退火算法会产生无法改进的次优布局规划。在这种情况下,块 X 被困在无效位置。任何修复此违规行为的尝试都会导致其他几项违规行为。克里斯·菲尔波特

然而,这些既定基准已有二十多年的历史,并不能反映现代 SoC 设计。一个主要缺点是缺乏硬性约束。为了了解 Parsac 在更现实的设计上的表现,我们在基准问题中添加了自己的约束,包括有关块放置和分组的规定。令我们高兴的是,Parsac 在不到 15 分钟的时间内成功解决了商业规模(约 100 个街区)的高级平面规划问题,使其成为同类中最快的平面规划器。

我们现在正在开发另一种基于几何搜索的非人工智能技术,用于处理奇怪形状块的布局规划,从而更深入地了解现实世界的场景。不规则布局太复杂,无法用 B* 树表示,因此我们回到顺序块放置。早期结果表明,这种新方法可能比 Parsac 更快,但由于无回溯问题,解决方案可能不是最优的。

与此同时,我们正在努力使 Parsac 适应宏展示位置,比块布局规划更细粒度,这意味着从数百个元素扩展到数千个元素,同时仍然遵守约束。单独使用 CA-SA 可能太慢,无法有效解决如此规模和复杂性的问题,而这正是机器学习可以提供帮助的地方。

An illustration of 3 charts and a series of colored squares.  Parsac 在 15 分钟内解决了商业规模的布局规划问题,使其成为同类算法中最快的已知算法。初始布局包含许多违反某些约束的块[红色]。Parsac 改变布局规划以最小化面积和线长,同时消除任何约束违规。克里斯·菲尔波特

例如,给定 SA 生成的平面图,我们可以训练 AI 模型来预测哪些操作将提高布局质量。然后我们可以使用这个模型来指导我们的 CA-SA 算法的决策。该算法不会仅采取随机或“愚蠢”操作(同时适应约束),而是以一定概率接受模型的“智能”操作。我们推断,通过与人工智能模型合作,Parsac 可以大大减少寻找最佳解决方案所需的操作数量,从而缩短其运行时间。然而,允许一些随机动作仍然至关重要,因为它使算法能够充分探索问题。否则,它很容易陷入次优陷阱,就像我们失败的基于人工智能的布局规划器一样。

这种或类似的方法可用于解决布局规划之外的其他复杂组合优化问题。在芯片设计中,此类问题包括优化核心内互连的布线和布尔电路最小化,其中的挑战是构建具有最少门和输入的电路来执行功能。

需要新的基准

我们在 Parsac 的经验也启发我们创造开放示例平面图数据集,我们希望这将成为该领域的新标杆。随着研究人员寻求验证新的芯片设计工具,对此类现代基准的需求变得越来越迫切。例如,最近的研究对基于旧基准或专有布局的新型机器学习算法的性能提出了主张,引发了人们对这些主张的合法性的质疑。

我们发布了两个数据集,名为 FloorSet-Lite 和 FloorSet-Prime,现已在GitHub。每个数据集包含 100 万个用于训练机器学习模型的布局和 100 个针对面积和线长进行优化的测试布局。我们设计的布局充分体现了当代 SoC 布局规划的广度和复杂性。它们的范围从 20 到 120 个块,并包括实际的设计约束。

An illustration of a series of red and blue geometric shapes. 为了开发用于芯片设计的机器学习,我们需要许多示例平面图。我们的 FloorSet 数据集之一的样本具有约束[红色]和不规则形状的块,这在现实世界的设计中很常见。克里斯·菲尔波特

这两个数据集的复杂程度有所不同。FloorSet-Lite 使用矩形块,反映了早期设计阶段,当时块通常被配置为简单的形状。另一方面,FloorSet-Prime 使用不规则块,这在设计过程的后期更为常见。此时,块内宏、标准单元和其他组件的放置已得到改进,从而形成非矩形块形状。

尽管这些数据集是人造的,但我们还是小心翼翼地融入了商业芯片的功能。为此,我们创建了平面图属性的详细统计分布,例如块尺寸和约束类型。然后,我们从这些分布中进行采样,以创建模仿真实芯片布局的合成平面图。

这种强大的开放存储库可以显着促进机器学习在芯片设计中的使用。然而,我们不太可能看到完全基于人工智能的解决方案来解决布局规划等棘手的优化问题。深度学习模型在对象识别和语言生成等任务中占据主导地位,因为它们非常擅长捕获训练数据中的统计规律并将这些模式与所需的输出相关联。但这种方法不适用于困难的组合优化问题,因为这些问题需要模式识别以外的技术来解决。

相反,我们预计混合算法将成为最终的赢家。通过学习识别最有希望探索的解决方案类型,人工智能模型可以智能地指导 Parsac 等搜索代理,从而提高它们的效率。芯片设计人员可以更快地解决问题,从而创建更复杂、更节能的芯片。他们甚至可以将多个设计阶段组合成一个优化问题或同时进行多个设计。人工智能可能无法完全独立地制造芯片,甚至无法解决单个设计阶段的问题。但当与其他创新方法相结合时,它将改变该领域的游戏规则。

关于《单靠人工智能还不足以进行芯片设计》的评论


暂无评论

发表评论

摘要

这篇文章讨论了 Parsac 的开发,这是一种旨在解决复杂的组合优化问题(例如半导体芯片设计中的布局规划)的算法。以下是要点:1. **Parsac的性能和效率**:- Parsac 被描述为已知最快的商业规模平面规划算法。- 它可以在 15 分钟内解决问题,最大限度地减少面积和线长,同时消除约束违规。2. **布局规划方法**:- 该算法使用基于几何搜索原理的模拟退火 (SA),而不是严重依赖机器学习。- Parsac 可以处理不规则形状的块,这在现实世界的芯片设计中比简单的矩形块更常见。3. **纯人工智能解决方案的局限性**:- 由于机器学习模型依赖于模式识别而不是复杂的搜索技术,因此机器学习模型本身就很难解决诸如布局规划之类的组合优化问题。- 随机动作对于避免局部最优和确保充分探索问题空间仍然至关重要。4. **未来方向**:- 研究团队正在探索将人工智能模型与几何搜索算法相结合的混合方法。- 这种混合方法可以更有效地指导基于 SA 的算法(如 Parsac),从而可能显着减少运行时间。5. **需要现代基准**:- 传统基准和专有数据可能会导致对新工具性能的质疑。- 该团队发布了 FloorSet-Lite 和 FloorSet-Prime 数据集,每个数据集包含 100 万个训练布局,旨在反映当代 SoC 的复杂性和约束。6. **布局规划之外的范围**:- 类似的优化技术可以应用于其他设计阶段,例如宏布局和互连布线。7. **混合人工智能引导搜索代理**:- 一个有前途的方向是使用在 SA 生成的平面图上训练的机器学习模型来预测有益的操作,从而提高 Parsac 等搜索算法的效率。8. **对芯片设计的影响**:- 通过提高优化速度和质量,这些进步可以使设计人员能够以更高的功效处理更复杂的芯片。- 混合方法可能有助于并行设计阶段或跨多个阶段的组合优化。总之,虽然人工智能在直接处理布局规划等组合优化问题方面存在局限性,但将其与现有的搜索技术集成可以产生显着的改进。综合数据集的发布将进一步推动芯片设计自动化的研究和创新。