中文 英语

开发新型推理芯片的挑战

设计、开发、测试和修改边缘加速器IC所涉及的内容。

受欢迎程度

Wang Cheng, Flex Logix 王成,微软软件与工程联合创始人兼高级副总裁Flex Logix他接受了《半导体工程》的采访,解释了将推理加速器芯片推向市场的过程,从启动、编程和分区到涉及速度和定制的权衡。

SE:边缘推断芯片才刚刚开始进入市场。你在开发过程中遇到了什么挑战?

王:去年9月,我们得到了一个芯片,我们能够很快地把它带出来。引出推理芯片的第一部分就是引出接口,这意味着能够读取和写入寄存器和内存。当你拿回芯片时,你要做的第一件事就是把它插上,然后你希望并祈祷它醒来。我们的芯片被唤醒,这意味着PCIe设备能够进入L0状态。这将自动建立第一代速度,这是至关重要的,因为一旦你建立了与芯片的链接,你就可以开始与它交谈。如果你不能这样做,你就有问题了,你必须通过I²C后门来找出是否有寄存器禁止你建立连接。接下来,你必须执行芯片的推理部分,这意味着让神经网络的一些层工作。这花了几个星期。最大的障碍是从展示硅功能的几层,到拥有所有的层,就像你在YOLOv3这样的重型推理模型中发现的那样,以我们目标的速度运行。我们芯片的性能从533 MHz开始。 Getting any FGPA-like fabric, particularly one with standard cells, to reach 533 MHz across hundreds of configurations is a challenge.

SE:当客户开始使用它时,他们需要知道什么?

王:在硬件方面,这是相对简单的。人们能够复制我们所拥有的。当他们使用模型的变体时,就会遇到问题。他们可能会使用一些我们现在不支持的操作符,或者他们可能会对这些操作符进行某些设置。但问题几乎总是在软件方面,无论是模型的转换还是他们所针对的操作人员的完全映射。它通常不是在硅的操作中。

SE:芯片的特性如何?与供应商相比,客户承担了多少责任?

王:这主要是在我们和我们的服务提供商之间,在我们的情况下是Global Unichip。GUC负责缺陷的描述、测试、高温操作等方面的鉴定。他们还根据功率和性能对零件进行分类,以确保所发运的零件在我们指定的PPA范围内。当客户得到零件时,它应该是一个已知的好零件。

SE:你认为这是一个独立的芯片,还是会包含在一个封装中?

王:它是独立的硅,但这是一个加速器。所以它的目标是与一个通过PCIe与它通信的处理器一起运行。我们有多达4通道的PCIe,因为我们针对的是服务器的一些NVMe形式因素,这些服务器可能有多达32个NVMe插槽,其中4个插槽用于SSD驱动器。我们只需要更换它们,因为服务器的NVMe容量通常比PCIe卡大得多。服务器可能有6 ~ 8个PCIe卡插槽。我们有几十个NVMe插槽,这给你更多的吞吐量每个盒子。也就是说,有些更小的盒子只有一个PCIe插槽。但这并不是一个SoC。这是加速器。

SE:可以定制吗?

王:许多加速器都是定制的。这是一个更广泛的机器学习推理加速器。我们没有针对特定的模型或应用程序,尽管今天大多数应用程序都是基于视觉的。这是针对一种行为。因此,这将更好地运行在一个基于视觉的批量大小的基于yo的模型上,该模型的权重为1亿。但你也可以用它来进行自然语言翻译,你可以有数万亿的权重,但它在边缘设备上工作得不好。对于视觉,通常使用4K或8K拍摄,这会产生大量数据。在云中进行所有处理是不可行的。你必须在设备本身上有一些计算能力,并且能够检测到可能0.1%的事件是有趣的。也许这些需要发送到云端进行进一步处理,但你需要在边缘进行一些处理,否则它会占用所有带宽。 This is different from translation. So you can say, ‘Hey Alexa,’ and it wakes up the device and sends a phrase to the data center. It’s a small amount of data on a huge model. What we’re trying to do now is process a lot of data on a modest-sized model. But it’s only hundreds of megabytes versus gigabytes or terabytes.

SE:这是一个很大的变化,对吧?最初,每个人都认为,当我们在边缘做人工智能和机器学习时,它会涉及大量的数据。实际上,推理可以用更小的数据集完成。

王:绝对的。把所有东西都送到云端是没有意义的。有太多的摄像头和太多的数据,无法有效地处理一切。延迟要求非常严格,带宽要求太高。你必须有一个离设备更近的东西,在那里你不能在蜂窝或无线网络上做任何事情。这是第一批处理。一旦第一批智能被建立起来,无论从中产生什么,都只会偶尔给你带来有趣的结果。在一帧中绑定对象所占用的数据比实际的原始视频要少得多。之后的机器消化经过处理的数据要比消化原始数据容易得多。

SE:下一个挑战是什么?

王:主要的问题是重新训练网络,这就像重新训练模型的最后几层一样,这样它就可以识别它想识别的东西。当你在常规数据集上训练机器学习模型时,它们可能会识别猫、狗、人和自行车。但当你在进行医学成像或工厂自动化时,你会试图检测非常具体的物体。可能是器官、细菌或工具。你必须重新训练你的模型来识别非常具体的东西。机器学习只能识别有限数量的图像类别。它可能是80或100,但对于每个经过训练的模型,它只会识别许多类型的对象。如果你用宽泛的东西训练它们,它就不能识别具体的东西,反之亦然。

SE:所以这意味着为了识别更多的东西,你需要更多的推断芯片?

王:训练和推理是不同的。培训就像编码。你可以在不同的设备上训练,但当你部署时,你必须部署在特定的设备上。现在,你需要不同的设备来识别一个物体吗?不是真的。如果您确实需要识别不同类型的对象,那么您可以在一个设备上运行多个模型。如果你在工厂自动化中,你可能首先运行一个模型来检测你正在扫描的材料中是否有任何缺陷。然后,运行一个模型来确定是否有任何污垢或碎片。您总是可以将输入拆分到多个加速器上,每个加速器并行运行不同的模型,或者串行运行模型的不同部分。如果您确实有一个模型,您认为它太大而不能充分运行,或者是因为它的权重大小,或者是因为您想重用缓存层,那么您可以将模型拆分到不同的子模型。 You can do that in a pipeline model. Each model is partitioned, and then you can run the model more quickly in a pipeline fashion.

SE:优先级在其中扮演什么角色?

王:如果你有一个模型,你在输入图像中执行相同的模型。但如果你有多个模型,而你只想找出有趣的东西,那么你就得用一个更重的模型。

SE:你越能缩小范围,功率和性能就越好,对吧?

王:是的。我们可以执行的模型越简单,即使我们可以拥有高性能的加速器,也可以利用更多的技巧来降低功率,例如当设备没有被充分利用时。如果您的模型更简单,您将节省大量的电力。即使你的性能允许你使用一个更重的模型,你可能不需要这样做。

SE:人们用这种方法做错了什么?

王:在硬件推理方面,它是指人们能够超过你认为你可以实现的性能。对于cpu,预测您将获得什么样的吞吐量有点困难。使用可配置的硬件,我们仍然可以准确地告诉周期,您的数据何时到达每个内存块。我们将图划分到多个分区,因此我们可以准确地知道每个配置周期的性能。如果你有64个处理器,你永远不会得到64倍的性能。在我们的例子中,您可以非常接近64X,因为我们可以划分硬件并以周期精确的方式控制它。在基于处理器的体系结构中,很难拥有这种级别的可伸缩性。

SE:所以最大的问题是你真的需要严格定义你要做的事情,对吗?

王:是的,你真的需要知道如何编程,这对人们来说是一个很难解决的问题。因此,尽管我们是一家芯片公司,但我们很快就被软件团队所主导——就像许多其他做机器学习的芯片公司一样。您必须能够跨多个配置划分一个图,以及对于每个配置如何分配资源。我们还需要能够在FPGA结构上合成RTL,并让它以高速运行。所有这些都是很难解决的问题。

SE:如果你是在开发软件,那么硬件的设计中会体现多少?

王:这是传给下一代的。对于可编程FPGA,总是有一个备用方案。但是,您也可以确定,如果将其作为计算内核进行加固,而不是继续在FPGA结构上运行,那么某些东西将会更有效。归根结底,问题在于一个特性使用的频率,以及它在性能瓶颈或资源使用方面造成了多大的痛苦。对于下一代,我们有一些现在在软逻辑中的东西,我们想把它们推进到硬逻辑中。

SE:提高功率和性能的部分负担取决于使用这些硬件的公司真正了解他们想要做什么。对许多公司来说,这是一个完全不同的挑战。

王:我们试图为客户减轻一些负担,因为他们要么使用现成的模型,要么开发自己的模型。但他们都没有真正理解硬件的本质,就像许多硬件开发人员不理解x86的ISA一样,我们也不应该期望他们理解。我们应该计划用他们构建的代码为他们提供良好的编译性能。当然,我们的AEs将与他们合作,改进他们的模型,以获得更好的PPA。但他们不应该是电源门控或时钟门控的专家,也不应该是我们用来提高加速器性能的任何低级技术的专家。不过,通过合作,我们可以帮助他们从下一代硬件中获得更多。

SE:五年前,当人工智能真正开始获得大量设计关注时,大多数人认为它会类似于电影《2001》中的HAL 9000。相反,我们已经自动化了一些非常具体的功能。

王:是的,这正是计算机所擅长的。它不会为你做所有的事情,但我们正在解决一个非常困难的问题——你如何描述一些对人类来说很自然但对计算机来说很难的东西。你如何向电脑描述一只鸟或一只狗?这是计算机可以识别的东西,但我们距离计算机能够像人类一样思考还有很长的路要走。尽管如此,计算机现在仍然可以写出与人类几乎没有区别的文章。在某种意义上,这是像人类一样思考,但是以一种非常具体的方式。

相关的
动态重新配置逻辑
跨多个应用程序使用一种设计的不同方法。
理解新的边缘推断架构
如何驾驭大量令人困惑的选择和术语。
配置AI芯片
跟上算法和潜在交互的变化。



留下回复


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

Baidu