中文 英语

EDA在人工智能中的作用

专家座谈,第3部分:EDA应该为AI实现的哪些方面创建工具?

受欢迎程度

《半导体工程》杂志坐下来与Metrics总裁兼首席执行官Doug Letcher讨论了EDA在自动化人工智能和机器学习方面的作用;丹尼尔·汉森,首席执行官Verifyter;哈里·福斯特,首席科学家Mentor是西门子旗下的企业;拉里·梅林,产品管理总监节奏;Manish Pandey,Synopsys对此研究员;以及首席执行官莱克·布林克曼OneSpin解决方案.以下是那次谈话的节选。第一部分可以找到在这里.第二部分是在这里

SE: EDA在人工智能经济学中的作用是什么?

悟道:围绕数据集。这就是价值将被开发的地方。我们相信数据驱动的流程。我们必须首先在验证中采用数据驱动的方法,并扩展我们的思维方式,超越覆盖细节,开始引入分散的数据集,并能够利用这些数据集来实现最终产品目标。验证算法将会改变,因为我们将拥有更多的数据,这些数据将为我们提供新的方法。

福斯特我们不会扔掉现有的东西,因为我们还有硬件。我同意我们需要对培训过程中发生的事情有更多的了解。我们在这个领域没有解决方案,但机会是有的。

Brinkmann问题是,‘这是一个普遍的机会吗?”

悟道这是一个机会空间。

福斯特这是一个自动化的机会。我同意这一点。但是EDA正在被重新定义。如果你看到EDA正在发生的事情,它不再只是晶体管,就像我刚开始时那样。它正在向系统转移,而软件正在成为其中的重要组成部分。我们正在重新定义软件自动化的意义。

Brinkmann:一个关键部分将是考虑算法如何进入应用程序的所有方面。这意味着要确保平台在多个方面都是值得信赖的。您必须相信,功能可以从软件堆栈映射到硬件,通过各种抽象级别,并且平台正在按照您希望的方式工作。这是一个巨大的验证问题。另外,它安全吗?有人能在路上篡改数据吗?任何人都可以向平台或软件中插入恶意代码。

福斯特:或在数据集中。

Brinkmann:这是在解决方案中建立信任的一部分。EDA必须处理不确定的领域,以便您可以专注于数据集。你必须能够信任这个过程和平台。这里有许多问题要解决。之前,我们有等价检验。这是同样的事情——rtl到门,然后门到位置和路由。现在我们有了TensorFlow到任何抽象,到一个实现——需要考虑的多层,这样你就知道你输入的就是你得到的。

福斯特:这是一个巨大的验证问题,但关键是我们需要在EDA中去掉E。

Pandey:它更多的是关于系统。

莱彻我们在这里有两个讨论。一个是将机器学习技术应用于EDA,即使最终的设备不是机器学习芯片。这是讨论中很有趣的一部分。这就是我们如何收集相关的验证数据,如何更好地利用这些数据,软件在未来有一个趋势,就是越来越以机器学习为导向。这同样适用于EDA软件。所以这个问题仍然存在于它在EDA领域的杀手级应用将是什么,但我相信我们都在探索一些。

福斯特当前位置很多人倾向于用in和around。”It is fairly fundamental that a lot of people think of the killer application at the end of machine learning. But equally important is the ‘around,’ where I have multiple applications, and mining that, making sense and optimizing the overall flow, that is important, too.

汉森:使用ML来改进EDA工具本身是一个巨大的空间。回到顶层客户的最终目标是否是EDA,我不这么认为。DA有很多事情可以做,但是最高层跑得太快了,在那之前还有很多事情要做。我们不会失业。

Brinkmann:我喜欢在某些方面提出DA的概念。这可能意味着很多事情,但它可能意味着提供一个可用于实现算法的值得信赖的系统。

Pandey:即使你看看传统的SoC验证,它也不再仅仅是芯片验证。您必须使RTL达到合理的状态,然后开始启动操作系统。如果你想为自动驾驶汽车构建一个人工智能系统,你必须验证整个系统。DA的问题是,‘我们可以提供什么样的平台和工具来帮助自动化或加速开发?“我们可能不知道一个算法为什么有效,但我们需要提供正确的支持,并将正确的数据集集成到其中。”然后,您可以进行一些调优,或者找到一种使用更少功率的方法。

汉森:一个方面是,当我们谈论机器学习时,它都是关于数据的。在顶层,它将由领域专家驱动。不同的领域将比过去更加不同。这是向下过滤的——越高,一般用途就越少。

Brinkmann:我不确定。数据不会改变算法会改变。问题是人们会用什么来工作。TensorFlow会因为应用程序而改变吗?

汉森:不是在这个层面上,但如果你在预测哪里会发现漏洞,或者驾驶汽车,这些领域就非常不同了。当涉及到验证这些系统时,它们是如此不同,以至于它们几乎没有共同点,即使它们都使用TensorFlow。

Brinkmann:当你使用硬件平台时会发生什么?

汉森:那么看起来是一样的。

Brinkmann你有同样的概念。

汉森:你越接近硬件,它就变得越确定。硬件有一个应该工作的接口。职位越高,遇到的问题就越多。在核查方面,它们看起来非常不同。

莱彻:这与任何传统的应用程序没有什么不同。如果你看一下图像处理,算法是给定的。在输出图像中可能会有伪影,一些DSP专家已经决定了什么看起来好,什么不好看。RTL验证层从来没有考虑过这一点。关于算法的问题是最高层次的,而EDA永远不会在这个层次上工作。中间有太多的抽象层次。我们可以像建议的那样向上移动几个位置,但不是全部向上。

悟道:上面提到,人们希望尽快启动他们的操作系统,而这都是Shift Left的一部分。这是事实,但也会产生问题。当在操作系统、应用程序级别运行并调试问题时,如果它确实是互连或一致性方面的硬件问题,那么它将成为一场噩梦,因为您无法跟踪复杂软件的所有级别。这就是便携式刺激计划出台的原因之一。我们必须有方法来描述复杂的用例,而不是将它们埋没在一个完整的操作系统和应用程序中。这就是我期望硬件做的事情,并创建用例和非常有针对性的测试,这样当它失败时,您就可以弄清楚发生了什么。

Pandey:您可以运行各种复杂的应用程序,但不需要设计正确的钩子和机制来进行跟踪—那么希望它们有更少的开销,以便您可以跟踪它。但如果你说“我有这种可能性”,你的生产率就会大幅提高。

悟道:用锤子砸它——当然。你还是会那样做。

Pandey:这是一个我们如何从用例中学习并遵循良好工程实践的问题。如今,如果您想验证一个复杂的软件,采用算法并将其映射到硬件以使问题易于管理是没有意义的。相反,我们创建了一个抽象级别。我们不应该试图把每个人工智能问题或每个系统层面的问题都放在硬件层面进行验证。有些事情是有意义的,有些则不然,界限可能会随着时间的推移而改变。但是我们必须做集成硬件安全之类的事情。这应该得到保证。我们做操作的权利应该得到保证。算法开发将在不同的轨道上进行。我们将找出正确的抽象级别,而不是试图用一个锤子打击所有东西。

SE: EDA似乎正试图在抽象方面有所提升。我们讨论了硬件以及从张量到硬件的映射。我们是否说这是EDA的领域,我们需要管理并潜在地证明张量流的结果实际上是在硬件中实现的?

莱彻:这有点不同。TensorFlow编译器的输出是硬件必须处理的。

SE:从这一点到硬件架构有一个映射-就像FPGA一样。

Pandey:如果你有TensorFlow到GPU,它是在TensorFlow中创建表示TensorFlow中的图形的CUDA指令序列。验证这一点更多的是一个编译器正确性的问题,但这并不是说您可以有一个工具,使您能够将其合成到一个新的硬件中。

Brinkmann:为什么将其映射到FPGA或其他可编程逻辑或TPU会有不同呢?

福斯特:甚至是一个标准的CPU,即使它可能是低效的。

Pandey这有很大的区别。如果你在每台机器上都有一个GPU,当你有一个FPGA系统时,你不会把TensorFlow映射到相同的东西上。你将有一组CUDA的过程调用,而不是你的FPGA库。

Brinkmann作为用户,我不在乎。我有一个软件视图,我想把它映射到一些架构。

Pandey:也许作为一个用户,但从EDA的角度来看,我们是工程师,我们想要构建一些东西。

Brinkmann:如果你看看现有的平台空间,FPGA公司不被认为是EDA公司,但他们提供那些合成工具和编译器的方式与Nvidia提供CUDA编译器的方式相同。这是非常相似的事情。在一种情况下,我们可以为它们提供一些解决方案,那么为什么我们不能为CUDA代码生成做同样的事情呢?可能有一个界限,有些事情是可能的,有些事情是我们不能做的,但我不明白为什么它们有那么大的不同。如果综合到特定的体系结构,应该不会有太大的区别。

Pandey:也许作为一个终端用户应用程序开发人员,你并不关心,但如果我们在系统设计自动化行业,这至关重要。你必须深入了解这个应用程序它被映射到硬件上。我无法想象一个合理的验证系统,如果不存在这种分离的意识。你必须知道。如果将TensorFlow映射到FPGA上,它可以在哪些原语上运行?你要向FPGA传递什么?即使你在FPGA上实现系统,你也会有指令的概念——可能是传递矩阵,什么是布局,映射等等。当你映射到CUDA时,你必须看到里面有什么,并将它映射到CUDA调用。对于CPU,你必须知道它被映射到什么。

莱彻打个比方,你可以用c++任务来验证一个传统的处理器,但是你仍然需要知道处理器的架构。如果您正在验证x86处理器,您可能不必在x86级别上编写指令,但当您在编写c++测试用例时,您必须知道它是x86处理器。机器学习的等效问题是,‘你是在TensorFlow级别编写测试用例,还是在CUDA或其他级别编写?你必须了解最终的目标硬件架构,但你仍然可能希望在抽象级别上编写测试用例。

Pandey:高级测试用例将在那里,但您还将有在该级别上运行的单元测试。如果你有运行机器学习的TPU,编程接口使你能够从TPU传输数据并取回数据,这些肯定会有所不同。

福斯特我不认为它与我们今天验证系统的方式有什么不同。我们从单元级别开始,这与我们在应用程序级别所做的完全不同。我们仍然必须两者兼顾。

有关的故事
人工智能知识中心
人工智能头条新闻、视频、白皮书和博客
从人工智能算法到实现
从算法到实现的转换有一些重要的问题,目前还没有得到适当的解决。
人工智能的自动化
人工智能的软硬件分离是否会带来问题,人工智能硬件平台将如何影响算法开发?
内存权衡在人工智能和汽车应用中加剧
为什么选择内存并将其构建到系统中变得越来越困难。
在AI中使用模拟
混合信号架构能以更低的功耗提高人工智能性能吗?



留下回复


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

Baidu