中文 英语

准确性的代价

精度是一个相对的术语,它使设计和验证复杂化。机器学习使该行业直面其中一些现实。

受欢迎程度

一个系统需要有多准确,你愿意为这种准确性支付多少钱?

在整个电子系统的开发流程中,有许多不准确的来源,其中大多数涉及复杂的权衡。不准确会以你甚至没有意识到的方式对你的设计造成影响,这被最佳实践或防护带所掩盖。EDA工具也注入了一些不准确性。

随着行业走向更广泛的采用机器学习(ML),精度正在成为主要的设计考虑因素。训练系统使用的精确度是在边缘进行推理时不可能达到的。团队有意引入不准确性以降低成本。需要更好地理解准确性的影响,特别是在自动驾驶等安全关键应用中使用时。

准确性经常与可预测性和可重复性相混淆,特别是在涉及到过程时。例如,在开发流程中,降低精度是可以接受的权衡抽象并且可以在更大的上下文中评估系统。这可以带来更好的设计和更可预测的行为。然而,如果精确度降低导致了糟糕的设计决策,那么它就不再被认为是可取的。忠实比准确更重要。

该公司营销副总裁Magdy Abadir表示:“抽象性对于处理复杂性和能够处理更大模拟的愿望是必要的Helic.“抽象的代价是,你必须去掉细节,但仍然能够做你需要做的事情。如果你能做更大的事情而不失去太多的准确性,那么你的结果是有用的。否则,你可以快速进行模拟,或者做出决策,但如果你错过了关键信息,不得不返回来修复,那么它就没有任何价值。”

建立在不稳固的基础上
在查看EDA工具或机器学习中固有的特定不准确性之前,暴露计算机数学中包含的不准确性非常重要。浮点计算本质上是近似值,不能完全预测。模拟设计、隐含的数字设计和机器学习都依赖于这些计算。

谷歌最近做了很多分析,同时为机器学习定义了一个新的浮点表示法。它说十进制数0.1没有精确的双精度或浮点数表示,实际上得到的是0.1000000000000000055511151231257827021181583404541015625。此外,它还指出,普通的数学规则不适用于浮点数,因此(a+b)+c不一定提供与a+(b+c)相同的结果。该公司表示:“因此,任何浮点运算方法都很少有一个准确的结果。”

谷歌并不是唯一的例子。“EDA工具从来没有提供100%正确的结果,”Benjamin Prautsch说,高级混合信号自动化弗劳恩霍夫东亚峰会.“也许根本就没有这种东西。”

模拟电路是大多数电子产品的基础,无论是直接的还是通过库的特性。“性能通常是许多不同的相互关联参数的复杂函数,”夫琅和费EAS高级物理验证小组成员克里斯托弗·索尔曼(Christoph Sohrmann)说。“放松对准确性的控制可能会导致整个系统的可靠性降低。虽然这项技术在一些不太关键的应用中有很大的潜力,但汽车领域的趋势实际上正朝着相反的方向发展,比如提高精度和可靠性。”

随着设计变得越来越复杂,必须考虑的角的数量也在增加。“运行数十亿的蛮力模拟在生产时间内完全不可行的,”卫理谭,AMS验证的产品经理指出Mentor是西门子旗下的企业.“设计团队必须通过增加设计流程的利润来弥补,降低总体功率、性能和面积(PPA)指标。”

不准确性及其对策贯穿开发流程的其余部分。“数字设计、实现和签收流程依赖于静态时序分析,”Tan说。“由于他们依赖于Liberty模型,因此可以达到的准确性有一个上限。自由模型本身就是一种抽象香料模型,并且通常在SPICE的1%到3%之间,这取决于过程节点和测量的绝对值。”

在EDA流程或最终应用程序中添加机器学习,会插入额外形式的不准确性。“启发式一直是算法的重要组成部分,”Prautsch说。“机器学习只是寻找接近最优解决方案的另一种方式。只要能正确测量这个溶液,ML的值就清楚了。然而,ML有优点也有缺点,应该与以前的实现一起使用,这取决于应用程序。”

机器学习基本上是曲线拟合,EDA工具一直使用这种方法来寻找最优解决方案。“在我们今天看到的曲线拟合趋势出现之前,人们会尝试通过寻找特征来进行图像识别,”该公司副总裁兼首席技术专家雷蒙德·尼森(Raymond Nijssen)解释道Achronix.“如果能找到这些特征,就可以进行鉴定。这些模式是预先规定的,基于人类的领域知识,而不是训练的结果。”

类似的概念适用于许多应用领域,包括EDA工具。

从概念上讲,与基于特征的机器学习相比,有些人在接受机器学习中的错误方面有更多的问题。“训练过程的不精确性使它成为通用曲线拟合,”Nijssen说。“的确,我们并不知道哪组权重是最好的。如果您试图找到负责识别特定对象的权重,则无法识别它们。不同的训练或稍微受扰动的输入数据可能会有所不同。没有人知道为什么重量是这样的。”

Nijssen指出,这对于曲线拟合函数来说并不罕见。“在线性代数中有很多更简单的情况,没有人知道为什么权重是这样的。”

不准确的数据或过程可能导致保真度的损失。这就是问题开始的地方,因为结果不仅不准确,而且是错误的。问题是如何识别何时发生这种情况。你有没有试过让一辆自动驾驶汽车在游行中跟在一匹马后面?在城市里开车和在农村地区开车有很大不同,在加州开车和在印度开车也有很大不同。培训的局限性总是必须考虑到,当遇到不熟悉的情况时,解决方案需要知道何时寻求帮助。

Nijssen说:“我曾经看到一个铁路交叉点经常遇到技术问题。“当没有火车来的时候,汽车会开到一个关闭的大门。有些人会在那里坐上几个小时,有些人会转身,还有一些人会在紧闭的大门之间回旋。机器会做什么?曲线拟合不起作用。有一些常规任务,其中有很多先前的信息,而ML可以做很多事情。但当涉及到非常规的事情,需要创造力时,创造力不是对过去事件的推断。它正在做一些新的事情。”

为了理解准确的含义,我们必须能够量化它。“我们首先需要的是对指标达成共识,当然,标准应该发挥更大的作用,”Jörg的功能安全产品经理Grosse说OneSpin解决方案.EDA公司不仅要提供工具,还要提供解决方案,帮助用户实现自动化和足够的准确性的所有目标。甚至正式的工具是近似的对立面,它可以提供与实际需求相匹配的严格结果知识产权而且SoC开发人员。例如,在安全应用中,形式结果的准确性可能取决于分析应用于哪个设计阶段、故障样本或所做分析的类型。”

也不是所有这些都是事先清楚的。Helic的Abadir说:“系统变得越来越大,复杂性也在增加,所以人们强烈希望向更抽象的方向发展。“然而,由于我们在底层使用的技术正在被推进到更复杂的过程中,而且有一些现象正在为这个问题添加新的物理现象,某些类型的细节正在成为以前不重要的必需品。在芯片中,我们一直在使用RC提取来提取有关设计的信息,并能够执行时间分析,功率估计等。我的愿望是在更大的芯片上继续这样做,只要我们说到潜在的假设,我可以抽象出细节,仍然能够准确地做,那我就很高兴了。问题是,还有一些额外的现象正在发生,比如电感的出现,这使得提取电感和互感变得很重要,这为之前没有的问题增加了一个额外的维度。这是因为频率越来越高,物理学使得它变得必要。”

机器学习的准确性
虽然EDA中的机器学习可能会导致额外的保护带或无法找到最优解决方案,但在为机器学习设计系统时,这是一个不同的问题。

现在所有的机器学习都是从浮点开始的。“成本和准确性是机器学习性能的主要考虑因素,”Vision & AI的产品经理弗朗西斯科·索尔(Francisco Socal)说想象力的技术.“成本适用于任何设计,无论它是GPU、CPU还是FPGA。准确性也很重要,因为它是质量要素。许多嵌入式和移动推理解决方案需要将原始网络模型从浮点映射和调优到定点甚至整数,这就需要在成本、准确性和性能之间进行权衡。”

在边缘上进行推理时尤其如此。Gyrfalcon Technologies营销副总裁马克•纳德尔(Marc Naddell)表示:“你必须考虑到物理设计问题。“你必须考虑用例和用户体验,所有这些都会影响到集成到设计中的技术的大小。设备特定的因素会影响电池寿命等。在某些情况下,可能是这样安全问题。设备周围还有其他因素,比如可靠性和工业环境,符合工业要求和环境因素。”

在许多情况下,准确性与设计的许多其他特性有关,例如所需的内存量和吞吐量。“对终端应用的洞察对于了解在这种情况下有多少精度是足够的,以及需要多少吞吐量是至关重要的,”戈登·库珀(Gordon Cooper)说Synopsys对此.“我们的目标是建立一个强大到足以解决手头问题的网络。”

这是不久前的变化。库珀说:“直到9或12个月前,所有的研究似乎都集中在提高准确性上,而现在的研究是如何用更少的计算量获得同样的准确性。”“在技术发展的过程中,赛马比赛的焦点是你能塞进多少台mac,而现在则是可用的压缩技术、稀疏处理技术或其他可以应用的技术。折衷是什么?如果对系数进行修剪,可以显著节省带宽或内存存储数量,但代价可能是准确性的损失。开发者需要做出很多权衡,而我们必须为他们提供这些选择的工具。”

有时候,准确性是由架构选择决定的。公司企业解决方案技术副总裁、杰出发明家Steven Woo表示:“瓶颈正在转移Rambus.“他们现在正在进行数据转移。这个行业在实现更好的计算方面做得很好,但如果你在等待数据,那么你需要考虑不同的方法。”

如果你没有足够的带宽,那么你可以降低精度或应用其他技术。“有一些压缩技术可以用来减少内存带宽、延迟和功率,”研究人员Jem Davies说手臂的家伙。“这是一种平衡。计算真的很便宜。压缩/解压很便宜。存储和加载到内存中则不是。或者从另一种角度来看,每比特的皮焦耳减少的速度不如每次触发器的皮焦耳减少的速度快。”

关于需要多少精度才能达到一定的精度水平,还存在一些悬而未决的问题。Tensilica Vision DSP产品线的产品营销总监Pulin Desai解释说:“你所做的训练很可能是使用浮点数,所以系数将是那种格式。节奏.“但我们需要在定点上进行推理,所以我们进行量化过程,并确保演绎率在浮点数中实现的一定百分比内。这一比例通常低于1%。”

那么1%的错误率可以接受吗?这也可能取决于最终应用程序。问一问“哪1%会出错?”可能也很重要。

目前的许多研究都在研究如何将内存处理用于MAC功能,其中大多数都部署了模拟计算,这意味着结果将是不精确的,并可能由于环境条件而发生变化。在这样的系统可以有效地部署之前,有必要找到对这些功能执行灵敏度分析的方法,而这反过来又可以更好地理解准确性的度量标准。

结论
工具是使用一个不准确的和经常不可预测的数字系统构建的。这些工具以及他们试图构建和验证的底层设计是如此复杂,以至于开发团队必须接受这些流中的不准确性。其中大部分都被利润掩盖了,因此这是一种固有的、无形的成本。机器学习将这些问题推向了最前沿,因为开发边缘系统必须积极考虑降低准确性,以获得可接受的成本。

底线:准确性是一个很大的旋钮,但需要更好的度量标准——尤其是在安全方面。



留下回复


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

Baidu