中文 英语

EDA挑战机器学习

EDA中的许多任务都可以成为机器学习的完美目标,除非缺乏训练数据。怎样才能解决这个问题呢?

受欢迎程度

在过去的几年里机器学习(ML)已经从一种让计算机在国际象棋和围棋比赛中击败冠军的有趣的新方法,发展成为一种被吹捧为几乎无所不能的灵丹妙药的方法。虽然围绕这一点有很多炒作,但似乎机器学习可以为EDA流程中的许多任务产生更好的结果,甚至比最有经验的架构师和设计师所能产生的结果更好。

EDA公司一直在投资这项技术,并宣布了一些成果。但出于几个原因,开发者和用户似乎在放慢速度。首先,结果是不确定的,没有人非常确定如何评估与之相关的风险。其次,缺乏培训数据。没有人愿意为了培训目的而公开自己的设计。

“在任务复杂但被数据包围的设计流程中,机器学习将提供最大的价值。Plunify.“如果这个问题可以用一个单一的确定性公式来定义或解决,那么这个问题就已经被行业解决了。”

在过去,该行业通过将其分解成更小的任务来解决这个问题。“我们花了很多时间来制作制作芯片的配方,”微软公司Digital & Signoff集团的产品管理总监罗布·克诺斯(Rob Knoth)解释说节奏.“这包括不同的时间封闭配方,位置限制,楼层规划,以及了解有关的血腥细节电迁移(EM)用于特定过程的规则。有很多变量,也有很多专家参与其中。几乎每家公司,无论大小,都有常驻专家,他们是楼层规划、时间安排或力量融合方面的专家。”

然而,在工作流程中加入这种常驻专家技术并不是一蹴而就的。这是昂贵的,高度颠覆性的,在芯片制造商愿意承诺改变他们的流程之前,需要保证结果。

非确定性
将机器学习应用于EDA问题也不一定能立即产生预期的结果。

“最困难的问题是机器学习应用系统的不确定性输出,”华为半导体业务部门首席技术专家Norman Chang表示有限元分析软件.“它并不总是能保证高度准确的结果,尤其是在一开始没有足够的数据的情况下。”

要理解这个问题,我们必须探究细节。“芯片设计人员需要准确的数据来设计和验证芯片,而基本的ML方法(例如获取一些数据,建立回归模型,然后从模型中提取数据)存在准确性问题,使其无法用于大多数芯片设计任务,”英特尔公司技术运营副总裁Jeff Dyck解释道Solido(最近被西门子收购)。“原因是机器学习模型预测的数据有一定的误差。它可能很小,在某个情况下使用它可能效果很好,与蛮力分析相比节省了大量的时间和资源。在另一种情况下,预测误差可能非常大,可能导致比使用机器学习节省的时间多几个数量级的重复。由于设计决策需要在芯片工作的可靠数据上做出,精度水平的不确定性使设计师拒绝使用机器学习方法,转而使用更强的技术,即使它们可能需要更长的运行时间,覆盖的设计空间也更少。”

要缩小在非决定论上的差距需要更多的数据,这就导致了下一个问题。

收集足够的数据
为了找到最合适的ML方法,需要检查可以使用的技术。

“目前最常见的机器学习方法被称为监督学习,这些方法是基于已知的良好设计点的大量数据,”at的CTO Ty Garibay说ArterisIP.“它们对芯片设计师来说不太可能非常有用,因为从一个半导体工艺节点到下一个,从一家公司到另一家公司,甚至从一种设计类型到另一种设计,定义‘好’的细节变化得如此之快。SoCFPGA模拟等)。机器学习的第二类,被称为无监督学习,也不太可能直接有用,因为它的主要用途是识别大量元素组中的未知相似性。然而,非监督方法很可能有效地应用于提高制造成品率。”

值得庆幸的是,还有另一种选择。“这是机器学习的第三个分支,对IC设计师来说最有用,因为它模仿了我们每天所做的事情,”Garibay继续说道。“这一过程被称为强化学习,它通过创建输出、基于各种指标分析结果、推荐旨在改善结果的更改,然后再次循环来学习。”


图1:机器学习的类型。来源:半导体工程

对于工程师来说,这个序列听起来非常熟悉,他们致力于使芯片收敛到正确的设计规则的实现,同时满足频率、面积、功率和性能目标。“如果,或者更准确地说,当一个设计方法被封装到一个闭环中,这样该方法就可以自由地运行多次迭代,强化学习可以自主地识别出人类设计工程师不太可能出现的最佳解决方案,”Garibay补充道。“一旦这个机器学习表征循环完成,限制因素将保持与今天相同——设计实现方法的周期时间。”

能够根据结果质量(QoR)变化计算工作量是至关重要的,这样迭代分析可以在学习过程的早期运行大量的迭代,探索非常广阔的设计空间。一旦确定了有希望的局部解决方案,就可以以计算能力为代价提高精度和QoR,从而允许该方法搜索局部最优解决方案。良好的QoR预测器对于减少总体SoC实现时间至关重要。

这可能表明,在某些领域,培训应该由最终客户而不是EDA行业来完成。Knoth说道:“在Cadence中,我们将这个问题分成两个维度。“内部有机器学习,这意味着人机界面没有变化,或者外部有机器学习,这是人类如何与流程互动的一种更具变革性的变化。”

克诺斯认为两者都有一席之地。“外部的机器学习是关于找出你的专家在做什么,并加快他们关闭时间,或在架构冻结和签字之间,或如何设计电网。这就是人机交互。然后里面还有机器学习。尽管特定于节点的数据稀缺,但我们可以根据一个好的设计而不是一个坏的设计,从节点到节点,从架构到架构,充分利用这些数据。”

Solido的Dyck列出了他们一直遵循的三个策略:

1.自适应学习:算法必须能够主动瞄准感兴趣的领域、高度不确定性的领域以及行为发生变化的领域,并在这些领域填充数据,以主动提高准确性。目标是在所有感兴趣的领域自动达到设计师所期望的准确性水平。
2.Accuracy-awareness:如果设计师知道一个答案在已知的范围内是准确的,那么他们可以添加适当的裕度。任何成功的算法都必须能够预测置信区间,或者有其他方法来测量预测的准确性。
3.可验证性:机器学习数据必须以某种方式可验证,以证明机器学习模型正在做正确的事情。

Dyck认为,如果设计师有足够准确的结果,准确程度是已知的,并且机器学习预测是可验证的,那么他们就可以做出可靠的工程决策,并且他们可以在设计评审中为这些决策辩护。然而,这可能会排除在一些预测器误差水平仍然很大的前端任务中使用的技术。

“创造这种解决方案需要大量的工作,”戴克补充道。“不仅在算法开发方面,而且在用户体验方面,为了让设计师清楚地知道结果有多准确,并清楚地表明结果是通过他们可以理解的方式验证的。许多机器学习计划失败了,因为没有意识到要把所有这些都做好的范围有多大。”

高级节点或旧节点
设计规则和其他新变量使高级节点变得更加复杂。戴克提供了一些例子,包括更宽的电压域finFETs,这意味着您必须查看7-10个电压,而不是遗留节点的3个电压,增加的后偏置FD-SOI,以及多重萃取条件造成的双模式,以及其他事情。Dyck说:“在传统节点上,典型的工艺/电压/温度(PVT)空间可能只包括3种工艺条件、3种电压和3种温度,而在现代节点上,通常运行50到100个PVT和提取条件。”

不幸的是,高级节点也缺乏数据。Lanza techVentures董事总经理断言:“使用基于功率或总能量的成本函数,人们可以使用对当前节点上现有设计进行训练的机器学习来优化同一节点上的新设计。”“虽然新节点具有不同的物理约束,并且可能具有新的结构,但新节点是基于我们对旧节点的理解开发的。这意味着设计中有来自前一个节点的信息,可以指导最新节点的设计。使用所谓的迁移学习,我们可以使用在先前节点上训练的机器学习模型,并将其作为为新节点构建模型的起点。这意味着人们不需要为每个节点从头开始构建新的机器学习模型。他们可以从有经验的职位开始,这是可以转移的。”

这与工程师的工作方式是一致的。Knoth说:“一个好的设计师在65纳米工艺和28纳米工艺上都是优秀的设计师,我保证他们在5纳米工艺上也会是优秀的设计师。”“他们很好,因为他们已经学会了如何适应,提取正在变化的东西,并识别新技术或架构或任何正在变化的东西带来的新问题。他们会看到新的东西,并理解它与他们当前的把戏有什么关系。这就是机器学习想要实现的角色。”

为了更方便地获取数据,可能会做出哪些改变?Knoth指出:“随着soc变得越来越复杂,IP重用越来越多,该行业不得不应对存在多路nda、私有和公共云等事实。”“这只是问题的另一个方面。如果回报足够大,整个行业将会找到有效的方式以安全的方式进行合作。没有人会放弃他们的王冠或IP,但有必要加快在新节点上让步的步伐。这个回报是丰厚的。”

当然,机器学习的结果只能与用于创建设计的数据一样好。为了真正有效,它必须将设计包含在用例和系统的上下文中。

微软的产品营销经理戈登•库珀(Gordon Cooper)表示:“学术界正在大力关注实现,即开发软件的同时也要在硬件上安装钩子。Synopsys对此嵌入式视觉处理器系列。“半导体公司必须制造芯片,但我们只是管道的开始。”

早期的成功
铸造厂显然有必要的数据和产量是一个非常有利可图的领域来解决。ANSYS的Chang说:“ML技术已被广泛用于通过晶圆图故障诊断、设备监控/跟踪/诊断和工艺优化来提高良率。”“虽然需要许多蒙特卡罗模拟来解决过程或设计属性的可变性,并且可能非常耗时,但ML技术已被证明可以预测实现预测输出可变性所需的样本输入,并减少运行时间。”

它还吸引了人们对设计流程的兴趣。Garibay说:“除了设定设计目标和创建初始物理平面图之外,ML可以用于为新SoC生成互连,而无需设计工程师的任何干预——当然,前提是解决方案是可能的。”“迭代设计方法可以生成许多可能的互连候选,将它们实现到布局规则正确的设计中,分析结果并进行更改,循环直到找到解决方案或算法认为如果不改变输入参数,进一步的工作将没有意义。设计工程师很可能会继续优化,但对于许多应用程序来说,算法创建的设计已经足够生产了。”

路由是另一个吸引人的领域。“我们已经宣布了路由的工作代码,”Knoth说。“我们改进了底层的功能,与不具备该功能的工具相比,总负松弛度(TNS)减少了12%。我们可以从内部回归以及与一些主要合作伙伴的合作中获得大量信息。”

适用于芯片的方法可能也适用于fpga。“我们最近训练了一个数据库,通过分析各种方面,包括拥塞、延迟、位置和逻辑元素,来确定FPGA的布置是好是坏,”Plunify的Ng说。“如果一个经过训练的数据库可以在让软件进行路由之前先评估各种位置映射来推断其结果,那么它将减少运行时间。更进一步来说,如果设计师能够在运行P&R之前使用该数据库预生成数百万个位置地图,他们便能够节省大量编译时间。”

未来
人们正在关注机器学习可能提供价值的其他领域。“电子系统设计、验证和项目管理数据可用于提高整体工作流程效率或管理项目风险。OneSpin解决方案.“这需要在设计过程中通过多种工具收集和整合数据。在较小的范围内,通过将先进的数据分析与新的验证工作流程相结合,可以进一步提高单个方法的有效性,例如形式验证方法。特别是,在运行时期间收集几集的性能数据,允许构建用于微调启发式或预测工具运行时和验证结果的预测模型。尽管潜在的预测模型是特定于手头任务的,但它们在构建过程中都需要良好的训练数据。”

新技术正在不断地被开发。ArterisIP的首席软件架构师Manadher Kharroubi说:“被称为深度学习之父的Geoff Hinton最近提出了一种名为胶囊网络的方法。”“胶囊引入了一种新的构建块,可用于深度学习,以更好地建模神经网络内部知识表示中的层次关系。这种能力正是人类和现有EDA工具从下到上分析极其复杂的设计所利用的能力。虽然处理整个SoC可能始终是一项具有挑战性的任务,但人类工程师用于使海量数据易于理解的分区类型很可能会导致许多局部最优解决方案,当组合在一起时,会产生近乎最优的全局结果。”

结论
当数据采集时间长且成本高,并且有大量数据需要学习和预测时,机器学习能够提供最大的价值。Dyck说:“我们看到完美风暴发生在现代节点上,因此,我们看到机器学习方法的最大收益发生在最前沿的流程上。”

这些改进将帮助所有人,而不仅仅是那些在最新节点上的人。ML会取代专家吗?克诺斯说:“在推动尖端技术真正创新的过程中,它们始终是一个关键部分。”“设计师对最终产品的质量仍然有很大的影响。只有人类的聪明才智才能增加最终价值。更智能的机器学习算法可以帮助你更好地完成工作,但真正起作用的仍然是工程师应用于零件上的工艺。”

有关的故事
在EDA中使用机器学习
这种方法可以使设计更好,更便宜,但它需要大量的工作和更多的数据共享。
机器学习与集成电路设计
机器学习可以在多个层面上帮助半导体的创造,但实现这一点并不像其他应用领域那么简单。
CCIX启用机器学习
系统的普通方面可以成就或破坏解决方案,而接口通常定义了什么是可能的。
机器学习越来越受欢迎
经过20年的试验,半导体行业正争相采用这种方法。



1评论

凯文 说:

ML对于EDA来说需要两样东西——好的提取工具和一个快速的(模拟)模拟器——这样你就可以创建电路并检查它们是否工作。

在5nm工艺上设计也是一场不同的比赛——制造工艺的高度可变性意味着你想要从同步逻辑转移到异步逻辑,放弃RTL而支持数据流(异步)规范。

目前设计过程的低效率似乎表明EDA已经成熟了——AI和(半)形式化方法可以很快消灭Cadence和Synopsys。

我从这里开始-

http://0a.io/boolean-satisfiability-problem-or-sat-in-5-minutes/

[+ Solido在他们自己的营销宣传中只是一家机器学习公司]

留下回复


(注:此名称将公开显示)

Baidu