电子说
有道理的是,我们会发现很多应用程序,我们可以在其中利用人工智能的力量来改进我们的流程并更快地构建芯片。
Mentor, a Siemens Business 的高级营销总监 Jean-Marie Brunet 担任主持人,主持了一场出席人数众多且热闹非凡的 DVCon 美国小组讨论,讨论人工智能 (AI) 和机器学习 (ML) 的热门话题。
长达一小时的会议由 Achronix 副总裁兼首席技术专家 Raymond Nijssen 主持。Arm 研究员兼技术总监 Rob Aitken;AMD 高级研究员 Alex Starr;Mythic 硬件工程副总裁 Ty Garibay;英伟达应用深度学习研究主管 Saad Godil。
根据小组记录,这个由四部分组成的迷你系列的第 1 部分讲述了 Brunet 关于人工智能如何重塑半导体行业的第一个问题,特别是芯片设计验证,以及小组成员的回答(参见“专家权衡人工智能重塑半导体工业”)。
接下来是第 2 部分,该部分涉及 AI 芯片的设计和验证。第 3 部分和第 4 部分将包括观众成员的问题和小组成员的回答。
Raymond Nijssen:在我看来,我们才刚刚开始接触人工智能。这将是一条漫长的道路,这将是一个激动人心的时刻。我们必须现在或一年后做好准备,并且绝对做好准备。该方法可以是渐进的。我们已经可以自动化一些很棒的小事情。
如果我们想深入了解我们在这里谈论的内容,传统上,使用机器学习,您需要拥有一个数据集,然后使用该数据集训练您的机器学习网络。
在验证的情况下,您可能想知道该训练集是什么样的。它是一个包含错误的大数据集,可能会影响系统并引发问题,“这是好还是坏?” 因为你受过训练?再退一步。如果你看一下机器学习系统是什么,它是一个通用的曲线拟合函数。
如果您还记得高中或大学中的曲线拟合函数,那么它就是构建最适合一系列数据点的曲线或数学函数的过程。然后你可以有一堆系数进入曲线拟合运动训练数据。从曲线拟合练习中得出的系数将成为您的系数。那么问题是,如果你有一个新的 x 值,你能预测那个类比中的 y 值吗?然后你可以说它好或坏。
现在,回到设计验证。如果你想扩展这个类比,你必须有一个包含正确事物的大数据集和另一个包含错误事物的数据集。
如果你看看设计验证的另一个领域——如果你可以称之为——晶圆厂中的晶圆检测。人们使用机器学习是因为它可以通过这种方法自动识别一些东西。如果我在那里有许多 Verilog 插入并且我的插入正在完成,我怎么知道当我运行任何类型的模拟或我正在查看的内容是正确的?我们必须有能够以某种方式预测什么是好的,什么是不好的训练集。在许多情况下,如果您正在查看某个 AI 产生的波形,您可以这样做。这是未来不寻常的事情——在此之前我从未见过这一系列事件,作为一名人工智能设计师,你需要看看。我认为作为具有训练数据的工具,您可以直截了当。
我们准备好了吗?是的,我认为我们已经为此做好了准备。
如果您查看 Google Go,这是另一个正在执行规则的示例,但系统没有被告知规则是什么。它只是通过输入大量数据来学习规则。我认为类比延伸到沿着这些思路的设计验证。
Ty Garibay:确实所有处理器都使用软件。对于其中一些人工智能应用程序来说,这可能更真实。这些芯片只是一堆乘法器,上面有一些编程。这些芯片的验证任务必须包括固件和软件层,甚至不仅仅是在普通处理器或 SoC 中。
我们没有用于集成硬件和软件设计验证的良好 EDA 环境,因为长期以来,我们一直说固件是一个独立的东西,他们将测试自己的固件。什么?我们实际上是在设计固件的同时制造硬件。当然,这推动了我们产品的规格,这很好,但我们没有我见过的理论来制作一个工具来验证集成的硬件/软件产品。我们从调制解调器、RF、DSP 中学到了很多东西,我们将这些东西带到了我们的设计中,内置到我们的系统中,并试图利用它们。
Rob Aitken:我认为曲线拟合还有一个重要的点。在验证空间中考虑它很有用,特别是因为如果您的训练集限制了您的曲线,曲线拟合作为一个过程非常有效。插值是好的,而外插在曲线拟合中是出了名的糟糕。你必须记住,无论你认为你用机器学习解决了什么验证问题,如果它涉及外推,你很可能会感到失望。
构建超越对象检测的人工智能系统是可能的,但它们比仅仅说“这是一只鸭子”或类似的系统更难设计。一个能够正确识别以前从未见过的东西的图像识别系统是一个更具挑战性的问题。
亚历克斯斯塔尔:我想加倍强调这里已经说过的很多事情。这些天我们必须验证的硬件/软件生态系统不仅仅是设计。我们几乎在整个行业都有糟糕的工具来解决这个问题。我们有工具可以查看设计并同时查看固件在做什么以及软件堆栈在做什么。这很棒。
我们需要一个更抽象的调试级别,并以全局视图理解所有这些。我们需要一个系统的工作流程。最近没看到什么好工具。我认为这就是我们需要向人工智能设计行业发展的地方,也需要复杂的 CPU、GPU 等,极其复杂的系统,在单个芯片中集成数十个不同类型的微处理器。这是一个复杂的问题,我们今天没有 EDA 行业的工具来解决它。
Saad Godil:作为长期从事特定领域芯片工作的人,尤其是 GPU,我在 DVCon 上经常看到的一件事就是非常关注设计重用和第三方 IP 即插即用 -玩以及如何轻松启用它。
一个观察:我看到更多的人在定制芯片,更多特定领域的芯片,而不仅仅是人工智能。通常,这些与他们自己的领域特定语言配对。
我认为验证社区依赖通用标准和通用工具的机会将会减少。EDA 提供商为每个人构建通用的解决方案,这无济于事。相反,我认为您将不得不自己投资,并且您将在公司内部拥有更多专有设计和标准。
你不能外包和依赖别人的软件。您将在内部进行投资并构建您需要的工具,这会变得更加困难,因为大多数硬件/软件系统都将具有专有软件和语言。这将是一笔相当大的投资。
此时,版主 Brunet 介入为 EDA 辩护:考虑使用模拟器进行硬件和软件验证的演变。人工智能设计的一个问题是容量。仿真器可以很好地处理容量。至于实际的硬件/软件验证,我们正在取得进展,但还不是很好。AI 领域的不同之处在于与移动框架基准测试不同的新框架。例如,Cafe 工具、TensorFlow 和许多不同的框架。
从 EDA 的角度来看,我们需要用户的帮助来告诉我们他们需要从设计中提取什么。并非所有的模拟器都是一样的。在我们的例子中,我们的模拟器可以提取所有内容,但设计师想要的是避免因为数据过多而倾倒大量数据。
这就是我们需要指导提取哪些指标很重要的地方。当设计在模拟器中映射并且软件正在运行时,我们几乎可以提取任何东西,但随后它变成了大量数据。
Ty Garibay:我们有一些通用层,即神经网络输入,但在那之后,每个供应商都是独一无二的。工具供应商有责任快速适应每个独特的实现。他们需要提供快速生成记分牌的能力,以便以可见的方式跟踪芯片内的不同状态,并了解新的数据类型和新的操作类型。
我们可以在处理元素和语言的正式语言定义方面使用帮助,以便 EDA 工具可以使用架构描述。我认为,这种基础设施可以带来很大的不同。
我们可能都能够指定一些东西——我们只是不知道如何指定。
Saad Godil:我认为到目前为止,问题是不同的。从商业模式的角度来看,这是有道理的,按照一定的标准构建工具,多个客户可以摊销。
当每个人都有自己的自定义专有规格时,问题就会变得更加困难。在等式的另一边,您现在可以使用 AI 来帮助您解决问题。人工智能擅长感知,它可以查看图片并找出不同的对象是什么,而无需知道这些对象的含义或它们是什么。或者它真的很擅长从句子中提取意义,即使它不理解。它不能很好地推理,但它善于感知。
也许答案是,考虑到您正在构建的规范,您能否发现专有设计的属性并弄清楚哪些是重要的,哪些不重要?这是一个非常难以解决的问题。这不是现成的解决方案可以工作的东西。从理论上讲,可以构建可以做这些事情的神经网络。
为了解决曲线拟合问题,这将属于监督学习范式,并且迄今为止在深度学习中已经取得了成功。在无监督学习方面已经做了很多伟大的工作,我认为这将推动人工智能的下一轮革命。我认为我们的工具可以使用这些东西。有很多可用数据可用于处理信息。问题是,我要保存什么?我要向神经网络展示什么?我们应该考虑如何找到模式,并尝试确定什么是重要的,什么是不重要的。
Rob Aitken:不过,我认为还有别的东西。当您查看该处理如何工作的实际实现时,如果您只是对一些随机边缘集和一些激活函数有可见性,并且您说,“这些数据出现在这里并且它被触发了”,那么您并没有真正知道这意味着什么或为什么,这是人工智能的一个好处。
这就是为什么这些东西有效,以及为什么我们不必对它们的每个方面都进行编程。这也是它们很难调试的原因。在这一点上,匹配输出是最接近可证明性的东西。这个软件版本和这个硬件版本做同样的事情。我们知道他们做同样的事情。因此,我们将假设它是正确的,但这种方法存在许多固有风险。
Raymond Nijssen:我认为我们正在讨论一些重要的事情:监督学习和无监督学习之间的区别。同样的道理,当机器学习在 20 年前开始时,人们拥有特定领域的知识,如果你想识别一只猫,你必须进行边缘检测。然后你必须在上面找到一些椭圆形和两个三角形。这是一条规则,你可以走得很远。他们碰到了玻璃天花板,直到他们提出了无监督学习,基本上没有规则来驱动系统。该系统必须通过提供大量这些流因素来工作。该工具得出的系数使得猫的尾巴被识别出来,而无需任何人指定规则是什么。
让我们看看有规则的应用程序,并且您想将这些规则指定给系统。这绝对是一种很有希望的途径。此外,它不如不依赖规则但依赖大量输入的自学习系统智能。
在某些时候,您还必须区分现在的人工智能和自然智能。这两者之间的真正区别是什么?
自然智能是插值和外推之间的区别。如果您阅读杰夫·霍金斯 (Jeff Hawkins) 的《论智能》一书,就会思考智能的真正含义。基本上,它将我们所有人描述为外推引擎。
在我们的童年时期,我们知道如果你有事件 A,然后是事件 B,然后是事件 C,下次你有事件 A 和事件 B,你知道事件 C 会随之而来。我们都是外推引擎,只要我们这样做,我们的工作就是安全的。如果你的人工智能可能会以某种方式影响你的工作,或者你发现自己一直在插值,那么你应该专注于寻找可以改变你的工作以进行推断的方法。
当您开始外推时,不再清楚它的工作有多完美,因为现在您没有数据,因为这里有一堆点的数据。现在我们可能会对那边的 x 轴方式产生影响,现在我们必须进行推断,并且您没有与之前的训练数据相同的置信度。
对于设计验证,风险在于有人可能会说自学系统可能会遗漏一些东西,或者训练数据可能不够好。然后这可能不会发生在规则驱动的系统中,规则提供了更高的可能性,即系统将在大量数据上发现与规则的偏差。这些区别很重要。
在这个迷你系列的第 3 部分和第 4 部分中,小组成员回答观众成员的问题。
审核编辑 黄昊宇
全部0条评论
快来发表一下你的评论吧 !