机器学习最近经常出现在新闻中。一些早期的炒作已经平息,但
这种趋势仍然存在。现在它已经真正开始在芯片设计界掀起波澜。
芯片设计中的机器学习和人工智能是一个如此庞大的领域
我开始迷失在所有的研究中。
所以我想进入芯片设计领域的最新突破:平面规划。
谷歌一直在应用同样的人工智能能力,让他们击败最好的
成为该领域这个晦涩但重要的子类别的大师。
以及最近在该领域的一篇论文(我要屠宰这个名字)
Azalia Mirhoseini 和 Anna Goldie 用这种方法展示了他们的成功。
TechTechPotato 已经制作了一个视频提到这一点。这是一个伟大的作品。去看看吧。
就我而言,我会尽量避免踩老路,走得更深一点。
如果我失败了,请随时在评论中对我尖叫。
我建议您阅读我之前关于 EDA 软件的文章 - 什么
它是以及它如何帮助整个芯片设计过程。
平面规划是物理设计的第一个主要步骤。如果您从我们的讨论中回忆起
芯片是如何设计的,物理设计阶段在逻辑设计阶段之后。
逻辑设计人员完成工作后,芯片是一组逻辑和
内存电路用电线连接在一起。这种分组被称为“网表”。
在现代芯片设计中,引入了额外的抽象。
数以千万计的逻辑门被组合成称为标准单元的东西。
数以千计的内存块被组合成称为宏块的东西。
物理设计师的工作是将所有这些都放在芯片画布上,然后
然后用数十公里的电线将它们连接起来。几十公里的电线
指甲大小的芯片 - 现代技术令人惊叹。
平面规划的目标是放置和排列块和超级块
以最能满足所有要求且没有任何重叠的方式。
移动方块。从字面上看,这听起来像是孩子们的游戏,对吧?
最大的目标之一是尽量减少
“空白空间”,即平面图中未被街区覆盖的任何空间。
然而,除此之外,平面图
芯片设计人员需要牢记一系列其他因素。
一是在现代 VLSI 设计中,芯片平面图的面积、尺寸和形状趋于
等待修复。换句话说,别人已经决定芯片不能
大于这个或那个大小。手机经常出现这种情况,
芯片越小,里面的电池就越多。
另一个考虑因素是布线。贴片元件应放置
并且它们之间的电线应该以最小化延迟的方式连接,
功耗和热量。英特尔进行了研究,发现 51%
当驱动信号通过其互连时,会消耗微处理器的功率。
传统的 EDA 工具并没有真正做到这一点。他们更有资格定位数百万
指定参数内的小蜂窝。平面规划提出了相反的问题,
放置大块,几乎没有关于芯片未来参数的信息。
这就像试图找出所有门、走廊的位置,
墙壁插座、水连接和房子的窗户。但还不知道在哪里
房间是以及它们将如何使用。哦,这房子有超过 1000 万个房间。
这些可能性简直令人难以置信。如果围棋是比国际象棋复杂的一整级,
那么芯片布局规划又高了一个层次。
Mirhoseini 和 Goldie 论文说,国际象棋有 10 到 123 次方(不是 23 次)的状态数。
去,10 的 360 次方。
芯片布局规划?高达 10 的 9000 次方。
每次台积电或三星推出新的前沿节点,
网表变得更大,问题变得更加困难。
目前,芯片设计人员采用多种方法解决这个问题。
最流行的一种称为模拟退火。模拟退火使用
计算特定平面图成本的客观方程。此费用通常基于
在一些客观的输入因素上——通常是电线有多长和面积有多大。
通过将平面图转化为方程,计算机现在可以迭代地(或贪婪地,
正如他们所说)寻找全局最优解。
有点像您的图形计算器如何在数学课上尝试求解方程。
模拟退火存在一些缺陷。一方面,程序可能会卡在一个
靠近它开始搜索的地方的局部最优值。因此,该程序错误地声明
胜利太早了——没有意识到更好的全局最优值就在山上。
因此,有时我们可能会要求算法修改其行为
当在成本曲线的“山丘”上上升或下降时。这些“爬山方法”
帮助算法避开这些局部最优值以寻找最佳解决方案。
放置可能性的绝对数量会导致非常长的搜索时间,即使
成本函数本身并不难运行。因此,
设计师对该方法进行了非常有创意的调整。
一个调整是使用“紧凑的平面图”——没有模块可以
向左或向右移动。这允许表示平面图
作为节点的有序二叉树。然后我们可以用电脑尝试优化
每个节点相对于根节点的 x 和 y 坐标。我不得不说非常有创意。
给猫剥皮的方法不止一种。在我们结束之前,这里有另外两种方法:
分析方法和分区。
分析方法使用一个客观的数学公式和一组
约束来尝试计算最小可能的平面图。
这就像试图解决你在学校得到的代数方程之一。
分区试图通过将其分解成更小的电路来克服更大的问题。
你进行传球,在每一次传球中,你将画布分成更小的组,
一直优化,等等。
我对这些解释中的任何一个都不满意,
但这不是电气工程课程。
现实情况是,这些都不是灵丹妙药。到底,
设计师使用最适合他们情况的各种方法以半手动方式完成此操作
和约束以及健康剂量的人类直觉。没有人只使用一种东西。
由于测试和迭代需要很长时间,因此它成为真正的拖累
芯片团队生产力和迭代速度。如果我们有多年的发展和
发布一个新的芯片设计,那么这不会是一个游戏破坏者。但最后期限是存在的。
因此,尝试一种新方法的时机已经成熟。然后
是机器学习发挥作用的地方。
那么机器学习和人工智能有什么大不了的呢?我将暂停一下,简要解释一下。
人工智能这个词现在没有任何意义——一个宽泛的术语,有点像“云”。
很多东西都有人工智能。例如视频游戏角色和真空机器。机器学习,
然而,它确实意味着一些非常具体的东西,不一定可以与 AI 互换。
自 1950 年代以来,科学家们一直在开发人工智能。然而
这些方法以“符号人工智能”的概念为中心。符号 AI 假设人类
知识可以使用大量的手写规则和集合来近似。
这取得了成功。但事实证明,研究人员低估了多少内隐
我们人类共同分享的关于世界和我们自己的知识。基本的东西,比如“如果总统
拜登在华盛顿,那么他的左脚也在华盛顿。”本质上是常识。
机器学习是一种新的人工智能方法,致力于克服这个问题,由最近的
GPU 处理能力的进步。与其让人类编写规则,不如让数据来做。
神经网络是该概念的一种实现。你喂神经网络
一些数据。将网络的结果与预先标记的结果进行比较。
两者之间的差异称为“错误”。
目标是在不过度拟合数据的情况下最小化误差。
根据结果,进行调整并重新训练或重新测试整个事情。
有时你会得到一些奇怪的结果。
在这些情况下,您可能必须对整个过程进行更广泛的调整。
但是如果做得好,训练有素的网络确实可以工作得非常好。
谷歌团队像对待游戏一样处理这个问题。它有点像。像围棋,
有一块板(筹码画布)和不同的部件放置在该板上
(你的网表块)。甚至还有“获胜条件”,
尽管这些取决于各种平面图评估指标的相对重要性。
因此,目标是训练一个能够动态帮助芯片设计者的神经网络
与他们的平面规划工作。换句话说,帮助他们赢得比赛。
所以如果你看看 AlphaGo 是如何工作的,一个训练有素的神经网络可以帮助玩家
确定最佳动作和这些动作的获胜百分比。玩家可以
决定是否实际放置石头,使网络成为工具。
我最好的猜测是 Google 的 AI Floorplanner
行为类似——尽管我在论文中找不到解释
实际工具的工作原理。但它确实涵盖了他们如何创建该工具。
一、团队设置芯片的宽泛参数——网表元数据、流程
例如,技术节点。这些被输入神经网络。
然后训练神经网络。这是通过“展示”许多状态集来完成的,
行动和奖励。计算机显示一个芯片画布 - 一个“状态”。
然后它会放置一系列宏块(如果你从前面回忆
是内存块的聚合)到芯片画布上 - “动作”。
然后使用标准 EDA 工具放置标准单元或逻辑电路。
最后的画布被评估为它的奖励。奖励与线长负相关,
拥堵和密度。这些是平面图“青睐”的标准衡量标准。
然后将奖励信息提供回网络以供将来训练。
随着时间的推移,向网络展示了足够多的状态+动作+奖励循环的“情节”,它可以看起来
在任何芯片“画布”上,并且知道在哪里设置其宏,以便最大化最终奖励。
最后的结果很有趣。在某些方面,神经网络的表现与人类一样好。
最值得注意的是,它可以更快地完成这项工作。
在谷歌最新 TPU 芯片的设计阶段,人类专家必须进行迭代
使用最新的 EDA 工具在平面图上花费数月时间。他拿了网表代码,手动放置
块,然后在 EDA 评估平面图迭代时煮 72 小时的咖啡。
在这个缓慢的迭代周期中,一个 TPU-v4 平面图需要大约 6-8 周的时间才能完成。
但是 ML 平面规划器具有训练有素的能力,可以在众所周知的棋盘上遥遥领先,
能够在 24 小时内完成。
论文强调了速度。确实,速度增益非常大,并且具有显着的意义
值得。但报纸有时也说它“更好”,对此我不太确定。
是的,有时,ML 平面规划器做得更好。但人类在其他场合也做得更好。
然后有时行业标准的 EDA 工具让他们俩都被击败了。在大多数情况下,在所有
除了速度之外,这三种方法非常接近,通常在 2-5% 的范围内。
我认为当涉及到这些东西时,这是需要考虑的事情。
机器学习不是超人的魔法。它基于创建或策划的数据
人类——这通常意味着它的表现和他们一样好。
苹果可能是美国科技巨头中最好的芯片设计师。
但谷歌正在快速发展自己的芯片能力。
从战略上讲,他们似乎已经认识到,
他们自己的硬件对于实现卓越的成本和性能阈值至关重要。
他们首先开始在他们的数据库中展示这一点,现在在他们的消费硬件中。
论文指出,新的神经网络已经应用到芯片设计过程中
其最新的谷歌张量处理单元(TPU)。
他们也开始扩大在台湾的招聘规模,
所以我们应该期待在未来的芯片领域看到更多来自谷歌的东西。
最后一件事,如果机器学习可以帮助将宏块放置在芯片画布上
比人类更快,那么这种技能还有许多其他可能的用例。
其中包括硬件设计、城市规划以及疫苗规划和分发。
可能性非常有趣,我期待
看到这项技术在未来出现在更多的用例中。
好了,今晚就到此为止。感谢收看。如果您喜欢该视频,请考虑
订阅。您将可以在此频道上观看许多其他符合您兴趣的视频。
想给我发一封电子邮件?请在 jon@asianometry.com 给我留言。
我喜欢阅读你的电子邮件。介绍自己,提出一个主题,或更多。
直到下一次,我会再见到你们。