将下一代验证流程是什么样子的呢?

专家在餐桌上:机器学习是一个重要的元素来处理复杂性和缩短设计周期,但它可能需要不同的心态为工程师。

受欢迎程度

半导体工程坐下来讨论未来的验证和丹尼尔Schostak,手臂的架构师和验证;硬件工程副总裁泰Garibay神话;在戴尔EMC Balachandran Rajendran,首席技术官;萨阿德Godil Nvidia的应用深度学习研究主管;高级主管和Nasr Ullah SiFive性能架构。以下是摘录的谈话。

SE:你认为今天验证的问题,必须解决在未来?或看着不同,接下来会发生什么,不是今天,和接下来没有什么如果你不能到那里?

Garibay:有持续的挑战只是指数更复杂的设计。我们继续努力提高抽象层次到模块化。新事物不是我们如何使用人工智能来验证的东西,但是我们怎么验证芯片的目的是执行人工智能神经网络。这是一个明显具有挑战性的不连续。

Rajendran:需要有一个巨大的文化方式的改变验证在每个组织工作。有些选择是技术选择,但是许多选择的特定技术非常人类的选择。的人决定他们使用什么工具和工作流,这往往取决于他们熟悉,他们以前做过什么。所以需要是一个变化的过程。我畏缩每当我跟一个验证架构师或人说,“这就是我们所做的一切。我录制了200芯片在我的生命中,所以你是谁告诉我我应该做什么?需要有一个思维过程的变化。我们需要看验证更全面的了解。

Ullah:验证增长和走强,但有很多问题。首先,有设计周期越来越短。我在一家大型消费电子产品公司的时候,我们要推出一个新的、复杂的芯片电话每一年。这是一个非常严格的周期能够得到一个每年芯片性能和功能改进。随着周期短,我们有更少的时间做所有的事情,所有的验证工具。第二个问题是,随着设计越来越复杂,人们想要的各种各样的变化soc。为开源在SiFive我们做核心,人们需要很多不同的soc。应对这些变化需要一个非常灵活的验证系统。这就引出了第三个问题。所有数据来自这是巨大的。你没有足够的人来分析这些数据。这就是我看到的一些人工智能技术可能是有用的。机器学习必须能够看趋势和找到问题点。整合这些算法将在验证流是非常有用的。最后,我们得到了更多的性能验证——不仅仅是功能验证,需要我们做的一些更复杂的系统。有一个电话,我们发现,在运行一段时间后性能开始下降。发生了什么是重置为分支表不工作。我们永远不会发现没有运行几天,虽然。这就是我们需要开始集模拟、仿真和验证,所以我们可以看到在大范围内发生了什么

Schostak:随着复杂性的增加,一种新形式。它不再是单独的解决方案,但是综合解决方案——甚至在IP水平。所以你不一定说需要一个CPU为一个特定的应用程序。你可能去一边,单独做。现在你正在谈论的CPU +加速器一起提供总体性能或功能你想看到的。从这个角度来看,你需要建造更多的为单独的单位,而不是让事情很好地分离,不能够正常的功能分解。

Godil:增加复杂性指数。我们已经建造更多和更复杂的系统。推动了很多这两个设计变得更加复杂,而且上市时间的压力导致我们做事情在一个非常短的时间。不会可持续是管理这些系统,和我们做出的决定在我们的验证过程,都是由人类今天方便做依赖自己的直觉。在某种程度上该系统将由人类太复杂。所以明天的验证将看起来很像今天的验证,除了你会有一个新的重要组成部分——一种智能系统的选项,可以动态管理,使所有这些决策。也将允许您将一些人类决策的机器使用深度学习和机器学习。另一件我们要看到的是,我们已经启用这些智能系统做什么基于数据中喂养。大量的工作需要做在插装和暴露数据用于我们的验证过程,使智能系统来帮助我们验证。

SE:有两个不同的方面。其中之一是,我们正在开发人工智能芯片。第二个是我们开始加入AI / ML / DL所有芯片的验证。但也有重叠的所有这些领域,因为一些最复杂的芯片有一个元素的人工智能。所以这些世界如何一起去,我们怎么知道我们有足够的覆盖率验证这些非常新的和不断优化的架构?

Garibay:我是一个不信宗教的人谈到真正的人工智能芯片设计的应用。谷歌已经把东西放置关于使用人工智能。手臂曾发表了一些话题,或一些论文使用人工智能指导验证。问题是我们通常不会有很多标记数据来学习。手臂可以利用它,因为他们测试套件,从上一代。真的很难看到别人如何做真正的机器学习——heuristic-driven,我们会称为机器学习在80年代。所以有各种各样的事情你可以做。人在做回归管理试图整理1000测试说,“好吧,这是20,失败,这些看起来像机器故障,这些看起来像真正的问题,这样子我以前见过的一个问题。”,似乎是一个可以实现的目标,今天,人们在真正的工具。这是一个管理有助于过滤和这样的东西。但真正的机器学习技术指导验证是不同的。 And even though I’m working on AI, I don’t I don’t see how it plays well.

Godil:我将柜台的位置。我们在今天,我分享你的观点。这将是一个非常难的问题试图让深度学习工作。你提到的监督学习和对标签的需求。在深度学习几年前,这是迄今为止最受欢迎的技术。ImageNet,有监督的数据集,我们可以显示很好的回报。但在当时,这是主要的成功故事。我不认为我们有很多其他的无监督学习的成功故事。从那时起,会话AI或自然语言处理,现在人们基本上已经提前和刮互联网没有带安全标签的数据时,他们能够建立一些真正惊人的复杂系统。这整个地区的无监督学习真正起飞。也是发生的另一件事是,我们看到很多非常成功的部署的强化学习。 This is the AlphaGo system that you DeepMind showed. The cool thing with reinforcement learning is that there’s no labeled data. You basically give the agent back the box that he gets to play with, and over time it learns how to optimize that black box or learns the rules for that black box and learns how to play with it. A lot of the problems that we’re looking at internally in chip design look to us like reinforcement learning problems, where there’s a black box. Throw in simulation and now I have this black box that I can run as many times as I want. So if you think about atestbench例如,我可以生成无限数据,运行testbench很多次我想要的,让代理进行交互的。随着时间的推移,它会找出它需要去做什么。

SE:不断发展的软件与硬件的协同设计吗?

Godil:回到无监督学习和自然语言处理系统,最大的一个机会,人工智能与芯片设计方面的帮助,我们不会利用今天是代码更改。我们知道,如果我改变了一行代码,这将影响我的下一个错误从何而来,它会影响到性能退化我可能会看到什么。理想情况下你想定制。今天,如果有一个非常大的改变,就像如果我重写调度程序,不同的工程师可以决定改变的平衡运行,针对手动调度器,他们会做一些大的宏观变化。但这对我们来说是不可能调整为每一个入住发生这种情况,我们可以每天有成百上千的签到。如果我们可以建立人工智能代理可以理解代码更改,并理解这些代码更改意味着什么,这可能是一个伟大的方式喂成某种智能系统,可以利用这些知识和定制的流程数据利用白天发生的事情。这才是真正的大坐在我们面前的机会,但这是一个非常困难的机会。所以明天是不会发生的。但是我认为这是有可能的。

Rajendran我工作与客户试图解决三个问题。在人工智能中,我们必须定义你想解决什么。第一个问题是DUT的问题。因为有很多随机变量传递到DUT的图,你要确定它是真的要测试所有的覆盖率。“我能得到正确的结果?我能找到一个bug ?的随机经历有限,所以你使用强化学习。我们看到好的结果在最初阶段。第二部分是验证的可预测性。多次在一个典型的工作流,用户想要一个设计审查,和团队非常分散。 They want to predict when a job will finish, whether there is 80% likelihood it will take 4 hours, or whether it will take 10 hours. We are having really good results in predicting when a particular set of jobs will finish — and it’s dynamically changing, so you can query the model anytime. This helps build to the next step. In every organization you have a regression system, which is the verification engine that runs every night. We are changing the paradigm where we have a separate agent, whose job is to make sure that chip is good, it’s verified, it runs okay, and that it’s going to going to keep running all the time until the code is done. So that’s the part that is coming to adaptive build. If I check in this particular module file, what are all the dependencies that it’s going to impact? What is the test propagation? What is the error propagation? So some of them you start from an initial framework, but later on we build the model based on tying into the JIRA system, tying into the check-in code. Then our organization (or the company that I’m partnering with currently), through every bug that’s open, is tied into a particular version of the code base at runtime. Everything has a major correlation to it. And that’s quite exciting too. These all seem like science fiction, but it’s very close to having really good results. The person who started this engagement at our company is a pessimist. He said, ‘I don’t believe in this stuff. It’s hype. But I’m going to try this.’ That’s how it started. And we’re very excited by the results.

Schostak:我看到类似的结果与强化学习目标覆盖,针对测试,这是简单的每个人都谈到了。这不仅仅是简单的测试排名。我不一定会称之为人工智能。它属于机器学习支架。要记住的是,如果你真的得到你想要的大部分内容与一些机器学习算法,它实际上是有意义的,花了很多时间试图看看你是否可以得到的结果是1%更好?的困难之一是,在整个项目的生命周期RT验证环境和DUT正在发生变化,所以在某种程度上你的模型的保真度会降低,你将不得不重做培训。所以你有之间的权衡,我花更多的周期让我的机器学习速度和竞争柳条我存钱的时候用它来优化回归?”



留下一个回复


(注意:这个名字会显示公开)

Baidu