Nabeel Shirazi博士,Xilinx Inc.
长期以来,基于模型的设计一直是算法开发人员探索和实现软件无线电、嵌入式视觉、电机控制系统和医疗设备等应用程序的事实标准。其中许多应用程序需要高性能计算,并从大规模并行FPGA体系结构中获益匪浅。但要利用FPGA,开发人员需要在以算法为中心的MATLAB世界之间架起一座桥梁®和仿真软万博1manbetx件®以及以硬件为中心的fpga世界,这曾经需要相当费力的手动转换步骤。
大约20年前,Xilinx率先使用DSP的System Generator解决了这个问题,这使得基于模型的设计流程可以直接映射到fpga。这一方法已成功应用于数千种设计中。但在过去的二十年里,很多事情都发生了变化。ADAS、5G和机器学习等新应用对系统提出了越来越高的性能要求,并推动fpga向新的设备类别发展,如可编程soc和最近的自适应计算加速平台(ACAP)。与此同时,基于模型的编程模型也得到了发展,并转移到更高的抽象级别,以管理系统复杂性的大幅增加。
本次演讲从过去20年的基于模型的设计中汲取灵感,为未来20年的创新奠定基础。我们将描述市场趋势、可编程设备和基于模型的开发在过去十年中如何发生变化,以及它们在未来几年可能如何发展。
记录时间:2018年11月6日
谢谢你的介绍,里奇。很高兴今天能来到这里。在过去的20年里,我有机会与MathWorks一起开发从MATLAB和Simulink到我们的设备的工具流程。万博1manbetx然而,这是我第一次有机会与这么多MATLAB和Simulink用户在观众中交谈。万博1manbetx我很高兴来到这里,也很荣幸。
在这个行业20年是很长的一段时间,发生了很多变化。我给你们看一下它是什么样的,我们与MATLAB和Simulink的旅程,以及我们与MathWorks的合作,我们今天在今天的应用程序中遇到的一些挑战,以及我们未来可能会去哪万博1manbetx里。
首先,我们已经看到三代无线基础设施在这个时间框架内出现,从3G、4G LTE开始,现在你看到5G正在推出。此外,我们正处在人工智能应用的黎明。任何人都在猜测,就像你在理查德的演讲中看到的那样,人工智能将在哪里使用。但有一件事我们可以肯定,这些算法的复杂性将大大增加。
因此,为了满足这些不同应用程序的需求,多年来我们不得不推出新的设备类别。所以我们从fpga开始,现场可编程门阵列。我能看看有多少人用过FPGA吗?好吧。Xilinx的人必须放下他们的手。好吧。太棒了!有一个很好的数字。
因此,我将简要介绍一下FPGA是什么。它是一个由可配置逻辑块和可编程互连组成的阵列。这些可配置的逻辑块可以级联在一起,以创建更大的功能,如FFT和过滤器。可编程互连可用于在这些可配置逻辑块之间创建自定义数据路径。当时,我们的设备中有数千个这样的可配置逻辑块。现在,我们有数百万人。您可以并行地实例化这些函数中的许多函数。这样,您就可以超越CPU、DSP处理器和GPU。
所以这些fpga已经发展了很多年。它们真的变成了芯片上的系统。最近,我们推出了RFSoC和MPSoC设备。RFSoC用于5G市场。MPSoC,即芯片上的多处理系统,专门用于嵌入式视觉和人工智能应用。
最近,我们发布了我们的ACAP设备,或称适应性计算加速平台。这是一个非常令人兴奋的装置。我在Xilinx工作了20年,这是迄今为止我最兴奋的一次。因此,我在Xilinx的工作就是通过提升工具的抽象级别来连接这些应用程序和这些设备之间的点,以便为像您这样的用户提供更高的生产率。
让我们来看看最开始,3G无线的曙光。那是在1998年,刚好是我第一次加入Xilinx。所以我们有一个主要的通信客户,或者说通信客户,来找我们。他们想要实现他们的3G无线无线电的一个关键部分,那就是数字基带预失真算法。他们这么做的主要原因是他们想要降低系统的成本。他们希望利用fpga来利用它的并行性,同时也创建自定义的内存层次结构来满足他们设备上的计算引擎。
有一个问题。他们的设计是用MATLAB和Simulink编写的,而我们当时的工具只采用硬件描述万博1manbetx语言,比如VDHL Verilog, RTL级别的代码。所以我们在Simulink和fpga之间有巨大的差距。万博1manbetx当时只有一种方法可以弥补这一差距。那就是雇佣一个硬件设计师。
因此,这位可怜的硬件设计师会在他最先进的电脑上安装CRT显示器,然后手动翻译Simulink图和RTL代码。这是非常错误和容易出错的。因此,必须有更好的方式首先进入3G。万博1manbetx
Xilinx发明的更好的方法是一个叫做DSP系统生成器的工具。因此,这使得他们能够从Simulink中的面向dsp的块集转向RTL代码和高度定制的IP核。万博1manbetx现在,我们在Simulink中的块和Xilinx提供的IP核之间进行了映射。万博1manbetx这给了你很好的结果。
这个顾客的设计在右边显示出来了。这是一个13,000块的Simulink模型。万博1manbetx但他们只花了几个月的时间来设计和验证它。他们称赞我们率先进入了3G无线市场。
因此,我们的客户一致认为,基于模型的设计不仅仅是代码生成。它是模拟、原型设计和代码生成,然后进入生产环境。此外,Sim万博1manbetxulink还提供了一种非常非常自然的方式来指定并行性和在计算引擎之间传递的自定义数据。它允许您在模型级别进行调试和测试,这比RTL代码的模拟速度快几个数量级。它还减少了你去硬件的次数,因为在硬件中调试设计是一个更繁琐的过程。最后,你要创建一个可执行的规范。这个可执行规范可以交给组织中的不同小组,FPGA工程师,RF工程师,以及通信工程师。
让我们来看看一些硬性的客户数据。我们当时在和BAE系统公司合作。他们让一个VHDL专家创建了一个软件定义的无线电。他花了645个小时才造出那个软件无线电。另一位工程师拿起MATLAB、Simulink和DSP的系统生成器,他只花了4万博1manbetx6个小时就完成了同样的设计。生产率提高了14倍。这是巨大的。
好吧。让我们快进到今天。我们正在尝试解决不同的应用。现在我们正试图解决5G和人工智能问题。为了做到这一点,我们必须在System Generator中创建新的块集。因此,我们在System Generator中创建了所谓的超级采样速率处理区块集,以应对5G市场。我们必须创造一个全新的工具,叫做Model Composer,以应对嵌入式视觉和人工智能市场。这些将利用我们的设备,SoC设备和我们未来的设备。
所以你们可能知道,5G无线是一个真正的熊。这是ETRI研讨会上的一张图表,大家一致认为它比4G复杂100倍。这里有许多关键的性能指标,如峰值数据速率、容量和延迟。它们中的每一个都至少比我们在4G中使用的更具侵略性。
最重要的是,5G中有一些新技术,比如多用户大规模MIMO,或多输入多输出天线。有一种新的波束形成技术可以和这些天线对话。它们以毫米波的频率交流在30千兆赫和300千兆赫之间。最重要的是,这个标准还在不断发展。所以它非常适合我们的设备。
让我们来看看我们正在尝试的应用程序。因此,首先,MIMO通信将在远程无线电头中完成。我们正在研究基带处理和无线回程,这将使用毫米波频率。实现这一点的完美设备是RFSoC设备。所以我提到了这是一个SoC设备,它包括了传统的FPGA结构,你可以看到黄色的部分。但它也有一个处理子系统,其中有一个拥有53个处理器的四核arm,有实时arm处理器,有一个加固的内存控制器。
但这款设备真正独特的地方在于它内置的a - d转换器和d - a转换器。它们以非常快的频率工作。a到d的速率是每秒4千兆个样本,d到a的速率是每秒6.4千兆个样本。这大大简化了设计,因为之前,你必须把a -to- d和D-to-As放在设备外面。现在你把它们拉到你的设备里。它简化了复杂性,并降低了功耗。
那么你如何在MATLAB和Simulink中建模,建模5G设计?万博1manbetx幸运的是,MathWorks最近推出了一个5G工具箱,它可以让你进行端到端链路级模拟,让你生成波形。您可以使用Avnet RFSoC浏览器将这些波形下载到实际硬件中。你可以把这些刺激喂给a - d和d - a。你可以设置设备,你可以从设备中带回数据,并将其与MATLAB中的黄金参考模型进行比较。
现在这些非常快的a到d和d到a,它对DSP数据路径提出了一个挑战,你必须在可编程逻辑中实现。所以在原始的System Generator中,你需要做的是将时间d复用到输入,因为它在这个例子中是,1.5 ghz。FPGA结构运行相对较慢。你必须瘫痪你的数据路径,然后时间复用你的输出。好吧?
为了简化,我们做的是创建一个超级采样率处理块集,它将一个向量的数据放入每个块中。所以这个设计,大约有30多个区块,已经简化到只有9个区块的超级采样区块集。它把向量带进来,把向量带出来,使得构造过程变得非常简单。
好吧。让我们切换话题,看一下嵌入式ADAS示例。最近有个客户来找我们。他们想要建造一个模块在你的汽车后视镜后面。这是为了避免碰撞。他们的电力预算非常严格。只有5瓦。我的意思是,在5瓦的功率下你不能做很多计算。他们的成本预算只有10到40美元。Rich谈到了ADAS的一些挑战。
举个例子。想象一下,你在路上开车——或者也许在未来,汽车正开车载着你——有一个前置摄像头在收集数据。你知道,它可能在每秒30帧或每秒60帧之间采样。高清摄像头,有时还有立体视觉摄像头,对吧?你有一个深度学习网络,它试图对进入的图像进行分类,找出在你面前的是什么类型的物体,它们往哪个方向走,以便创建一条路径来避开那个物体。最后,你需要和刹车系统沟通,以便刹车。
这个客户的要求是输入传感器到刹车的延迟需要是30毫秒。所以计算的时间越少,刹车的时间就越长。这很重要。所以实现这一功能的完美设备就是Zynq MPSoC。现在,在设备中有不同的硬化组件集合。它没有a到d和d到a,但它有一个视频编解码器。
所以现在我们必须重新思考:我们要如何在Simulink中进行可编程逻辑的设计?万博1manbetx这就是模型作曲家的由来。和System Generator一样,它是一个适合Simulink的模块集。万博1manbetx然而,它在一个更高的抽象级别上模拟它。有计算机视觉,线性代数,DSP。在这里,我打开了图书馆的计算机视觉子集。现在,该库的计算机视觉部分利用了OpenCV开源库。我会给你们看一个例子,这里有一个膨胀和侵蚀块。
这个例子是一个路标检测。它使用一种颜色来检测符号。所以我小组里的一个人决定在他开车去Xilinx的时候拍一段视频。至少他开车进去的时候注意到了车速标志。他录制了这个视频,然后在Simulink中用计算机视觉系统工具箱中的模块回放。万博1manbetx你可以你可以把图像输入来,你可以用计算机视觉系统工具箱中的块来查看生成的图像。
在管道中看到的第一个块实际上是导入的C代码。所以有人写了C代码来进行颜色空间转换,把它带了进来。然后你会看到在管道的末端,来自OpenCV库的两个块。现在,如果您仔细查看这里使用的数据类型,它们是视频数据帧。在sysgen时代,我们必须使用像素级处理。这里,我们正在进行帧级处理。而且,这些模块是不定时的,因此这两个模块的组合可以让您比使用System Generator进行模拟快几个数量级。
现在,Model Composer的输出产品也完全不同了。我们生成C代码,通过Vivado高级合成技术进行进一步优化。我们还生成RTL代码,利用Xilinx的高性能IP核来过滤fft。所以这是两全其美。
我们也有一条通往硬件的路径。我不想透露太多,因为我想让你们去隔壁的房间看看。他们做了一个光流的例子,在那边的Avnet Ultra 96端口上运行。
好吧。因此,我向你们展示了我们如何开始基于模型的DDesign,以及我们今天在5G和ML中面临的一些挑战,然后让我们看看未来的道路。所以我们可以肯定的一件事是,未来会有更多的人工智能应用。即使在5G中,它也被用于威胁检测。我介绍了Model Composer,我们计划增加Model Composer的能力,以满足AI的需求。我们必须想出一种新的设备,ACAP设备。
我们来看看。对于ML,你们很多人可能知道有两个不同的阶段。还有训练,你有一个大的数据集,你训练一个神经网络。在数据中心中,这可能需要数小时,甚至数天。在数据中心上,计算结果所需的延迟或消耗的电量并不重要。但当你部署它的时候。
为了使培训过程更容易,MathWorks有一个深度学习工具箱,今天你将听到更多。现在您必须将该网络部署到实际的硬件上,这就是推理发挥作用的地方。这里,功率和延迟是非常重要的,就像我在ADAS例子中展示的那样。
所以在Xilinx,我们意识到培训是非常重要的。它得到了很多媒体的关注,因为你知道,他们现在有比人眼更好的网络。然而,我们认为推理有更大的市场机会。这就是我们要关注的地方。
但是在推理方面有很多很多的挑战。例如,人工智能的采用速度是惊人的。我们从AlexNet变成了GoogLeNet,现在又变成了ResNet。当你开始你的设计时,当你完成你的设计时,你可能有一个新的最先进的网络。同样,低延迟时的性能非常关键。功耗也很关键。你想要加速整个应用程序,不仅仅是推理引擎,而是从清理来自传感器的图像到推理引擎,再到能够做决策。你想利用这些设备上的所有资源。
因此,我们相信,适应性硬件可以解决这些挑战。原因是您可以为应用程序创建自定义数据流。您可以创建自定义内存层次结构来为算法中的计算提供数据。你可以使用自定义精度。为了将这三者结合在一起,xilinx和许多其他业内人士创造了特定于领域的体系结构这个术语,或dsa。这就是你如何把所有这些东西结合到一个单一的设计中。我会给你们看一个例子。
所以Xilinx有一个图像分类解决方案,可以在像F1这样的云解决方案上使用,其中他们为最新的dnn定制了数据流。万博 尤文图斯他们定制了内存层次结构,所以你在设备中使用缓存,并且你最小化了与外部DDR内存通信的时间。你也可以定制这些网络的精确度。在这个例子中,我们用的是8位整数。但对于未来的人工智能应用来说,这还不够。
因此,我们相信,我们新的适应性计算加速平台(简称ACAP设备)将在这里真正大出风头。所以我没有足够的时间来谈论这个设备的所有关键的创新。我的意思是,有像新的ARM处理器这样的东西,有一个芯片上的网络可以在设备周围移动数据,有硬化的内存控制器。比如PCIe Gen 4。我想关注的一个领域是AI引擎。
所以AI引擎是一组VLIW/SIMD处理器。在我们的第一个设备中,有300个。这些VLIW处理器之间有大量的互连。你可以进入织物去创建自定义的记忆层次来喂养这头野兽。我们最后要做的是用MATLAB Simulink和Model Composer来实现这一切。万博1manbetx
用ACAP设备能得到什么?这是一个基于GoogLeNet网络的基准测试,其延迟限制为两毫秒。我们做了一个比较。再一次,这是最先进的gpu。我们现有的解决方案,我提到的XDNN DSA,每秒可分类4000张图像。好吧?它的性能超过了现有的gpu。但是使用ACAP设备,您可以达到每秒22000张图像。这是很大的进步。但还有比这更好的。
因此,Xilinx拥有我们称之为打印技术的技术,它可以查看网络,找出它可以切断的网络的不同分支,并对算法的不同部分进行量化。我们可以得到更好的表现。因此,您可以获得1.3倍到8倍的性能提升。对于ACAP设备,每秒最多可以获得30000张图像。那很好。
好吧。那么,为了利用所有这些技术并满足这些应用程序的需求,这些工具需要如何调整呢?好吧,首先,我希望能够做基于云的设计入门。最近,我有机会在网上使用MATLAB。这太不可思议了。三秒钟,你开始用MATLAB了。没有比这更简单的了。对吧?但是少了一样东西,那就是Simulink。万博1manbetx所以我真的很期待。
另外,您在ADAS示例中看到,有来自客户的系统级约束,对吗?比如带宽、延迟和功率。这些都需要作为编译器的输入。现在,编译器的输入是时钟频率。对吧?此外,你还需要知道你是要使用云服务还是边缘服务。我们可能会在此基础上做出决定。所以我们需要改进编译器。
因此,由于您将进行基于云的输入,您可以利用云上已经存在的FPGA硬件,如Amazon F1。许多其他云供应商也在部署fpga。但是假设你正在分析你的代码,你碰到了一个热点。也许MATLAB会说,哦,我们有一个加速版本。这已经在云上可用了。你可以使用它。
我们在Simulink中需要更高层次的抽象。万博1manbetx举个例子,我一开始就展示了数字预失真设计。那是一个13000个街区的设计。我们相信在未来,这将成为Model Composer中的一个单独块。这就利用了人工智能引擎。
最后,我们希望您能够充分利用这些领域特定的体系结构。就像我给你们展示的图像分类引擎,你应该能够添加你的特殊调味汁,所以你不需要重新发明它。你不需要处理设备的所有细节I/O。我认为这一切都可以通过与MathWorks的联合合作实现。最后,我们可以提供给你的是一个可部署的设计,它使用了ACAP设计的所有计算资源,用于边缘和云。
所以不用说,在过去的20年里,我们看到了很多创新。基于模型的设计在管理复杂性和提高生产力方面比以往任何时候都更加重要。Xilinx将继续在基于模型的设计上投入大量资金,因为我们相信这是我们设备的一个自然和高效的入口。基于我前面提到的原因,可适配设备在ML、ADAS和5G方面具有明显优势,以满足我们客户的性能、延迟和电源需求。
最后,我们相信,工具、硅和这些平台的交集将为更多的人工智能采用提供一个转折点。因此,无论您是人工智能专家,还是第一次学习人工智能,并受到Rich演讲的启发,我们都期待与您和我们的合作伙伴MathWorks一起为您的下一个设计工作。谢谢你!
(掌声)
你也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区网站未针对您所在地的访问进行优化。