Nabeel Shirazi,Ph.D,Xilinx Inc.
基于模型的设计长期以来一直是算法开发人员探索和实现应用程序(如软件定义无线电、嵌入式视觉、电机控制系统和医疗设备)的事实上的标准。这些应用程序中的许多都需要高性能计算,并从fpga的大规模并行体系结构中受益匪浅。但是为了利用fpga,开发人员需要在以算法为中心的MATLAB世界之间架起桥梁®和仿真软万博1manbetx件®和FPGA的硬件为中心的世界,曾经需要相当艰巨的手动翻译阶梯。
近20年前,Xilinx在DSP的系统生成器中启动了解决这个问题的问题,这使得能够直接映射到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正在推出。此外,我们正处于人工智能应用的黎明。每个人都在猜测,就像你在Richard的演讲中看到的,人工智能将被用于何处。但有一件事我们是确定的,这些算法的复杂性将会急剧增长。
因此,为了满足这些不同应用程序的需求,多年来我们不得不推出新的设备类别。所以我们从fpga开始,现场可编程门阵列。我能看看有多少人用过FPGA吗?好吧。Xilinx的人必须放下他们的手。好吧。太棒了!有一个很好的数字。
我将简要介绍一下FPGA是什么。它是一组可配置的逻辑块和可编程互连。这些可配置的逻辑块可以级联在一起创建更大的功能,如fft和滤波器。可编程互连可用于在这些可配置逻辑块之间创建自定义数据路径。那时,我们的设备中有成千上万的这种可配置逻辑块。现在,我们有数百万。您可以同时实例化许多这样的函数。这样的话,你现在就可以比cpu、DSP处理器和gpu做得更好了。
因此,这些FPGA多年来已经进化了。而且他们真的被改为芯片上的系统。所以最近,我们已经推出了RFSOC和MPSoC设备。RFSOC用于5G市场。MPSOC或芯片上的多处理系统专门用于嵌入式视觉和AI应用中。
最近,我们发布了我们的ACAP设备,也就是适应性计算加速平台。这是一个非常令人兴奋的设备。我在Xilinx工作了20年,这是迄今为止我最兴奋的一件事。因此,我在Xilinx的工作就是通过逐步提升工具的抽象级别,将这些应用程序和这些设备之间的点连接起来,以便为像您这样的用户提供更高的生产率。
所以让我们看看一开始就是3G无线的黎明。这是1998年,恰好发生在我第一次加入Xilinx时。所以我们拥有一个主要的客户或通信客户,来到我们身边。并且他们希望实现其3G无线无线电的关键部分,这是一种数字基带预测算法。以及他们想要这样做的主要原因是他们想要降低他们的系统。他们希望利用FPGA来利用它具有的并行性,但也创建自定义内存层次结构以在其设备上馈送计算引擎。
有一个问题。他们的设计是用MATLAB和Simulink编写的,而我们当时的工具只采用硬件描述万博1manbetx语言,比如VDHL Verilog, RTL级别的代码。所以我们在Simulink和fpga之间有巨大的差距。万博1manbetx当时只有一种方法可以弥补这一差距。那就是雇佣一个硬件设计师。
所以这个可怜的硬件设计师会在他最先进的计算机上用一个CRT显示器做一个Simulink图和RTL代码之间的手动转换。万博1manbetx这是很容易出错的。因此,必须有一个更好的方式首先进入3G。
并且更好的方法是Xilinx发明的是一个名为DSP的系统生成器的工具。因此,允许它们所做的就是从Simulink的DSP导向块到RTL代码和高度自定义的IP核心。万博1manbetx现在,我们基本上是这样的映射,基本上,在Simulink中的块和Xilinx提供的IP核心之间。万博1manbetx这给了你真正的结果质量。
因此,此客户的设计实际上在右侧显示在此处。它是一个13,000块Simulink模型。万博1manbetx但它只带走了几个月来设计并验证它。他们首先为了获得3G无线市场而获得信贷。
因此,我们的客户一致认为,基于模型的设计不仅仅是代码生成。它是模拟、原型设计和代码生成,然后进入生产环境。此外,Sim万博1manbetxulink还提供了一种非常非常自然的方式来指定并行性和在计算引擎之间传递的自定义数据。它允许您在模型级别进行调试和测试,这比RTL代码的模拟速度快几个数量级。它还减少了你去硬件的次数,因为在硬件中调试设计是一个更繁琐的过程。最后,你要创建一个可执行的规范。这个可执行规范可以交给组织中的不同小组,FPGA工程师,RF工程师,以及通信工程师。
所以让我们来看看一些硬客户数据。所以我们正在与BAE系统一起使用。他们有一个VHDL专家创建一个软件定义的无线电。这把他带走了645个小时来构建软件定义的无线电。一个不同的工程师拾取了DSP的MATLAB,SIMULINK和SYSTEM G万博1manbetxENSERATOR,它只带他46小时来构建相同的设计。这是14倍的生产力增益。这是巨大的。
好吧。所以让我们快进到今天。我们正在尝试解决不同的应用程序。现在我们试图解决5G和AI。为此,我们必须在系统生成器中创建新的块。因此,我们创建了系统生成器中所谓的超级采样器速率处理块集以解决5G市场。我们必须创建一个名为Model Composer的全新工具,以解决嵌入式愿景和AI市场。这些都将利用我们的设备,SoC设备和未来的设备。
所以你们可能知道,5G无线是一个真正的熊。这是ETRI研讨会上的一张图表,大家一致认为它比4G复杂100倍。这里有许多关键的性能指标,如峰值数据速率、容量和延迟。它们中的每一个都至少比我们在4G中使用的更具侵略性。
最重要的是,在5G中有一个新技术,如多用户大量MIMO或多个输入,多个输出天线。有新的波束形成技术与所有这些天线交谈。它们以毫米波频率在30千兆赫兹和300千兆赫兹之间进行通信。并在所有这些之上,标准仍在不断发展。所以这对我们的设备非常适合。
让我们来看看我们的目标应用。首先,MIMO通信将在远程无线电头中完成。我们正在研究基带处理和无线回程,这将使用毫米波频率。实现这一点的完美装置是RFSoC装置。我之前提到过这是一个SoC设备,它包括传统的FPGA结构,你们可以看到黄色的那个。但它也有一个处理子系统其中有一个四核手臂53个处理器,你有实时arm处理器,你有一个坚固的内存控制器。
但是,对于该设备而言,真正唯一的是A-to-d转换器和设备内部包含的D-to-o-a转换器。它们以非常快的频率运行。它们在A-to-d上每秒4个千兆一样,D-to-a位于6.4千兆叠层。因此,这显着地简化了设计,因为之前,您必须将A-to-ds和D-to-of您的设备外部。现在你将它们拉到您的设备中。它简化了复杂性,以及降低功率。
那么你如何在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做的快几个数量级。
现在,模型作曲家的输出产品也完全不同。我们生成了通过我们拥有的Vivado高级综合技术进一步优化的C代码。我们还生成RTL代码,它利用了我们在Xilinx的高性能IP内核,如用于过滤FFT。所以这是两个世界上最好的。
我们还有一条往返硬件的道路。我不想给那个太多,因为我希望你们在隔壁的房间里进入房间,看看它。他们已经构建了一个光学流量示例,它在那里的Avnet Ultra 96端口上运行。
好吧。所以我向你展示了一点我们如何从基于模型的DDesign开始,其中一些挑战我们今天的挑战用5G和ML,然后让我们看看前方的道路。所以我们肯定的一件事是,在应用程序中将将来是AI,AI和更多AI。即使在5G中,它也用于例如威胁检测。我介绍了模型作曲家,以便我们计划提高模型作曲家的功能,以满足AI的需求。我们不得不提出一类新的设备和ACAP设备。
我们来看看。对于ML,你们很多人可能知道有两个不同的阶段。还有训练,你有一个大的数据集,你训练一个神经网络。在数据中心中,这可能需要数小时,甚至数天。在数据中心上,计算结果所需的延迟或消耗的电量并不重要。但当你部署它的时候。
为了使培训过程更容易,MathWorks有一个深度学习工具箱,今天你将听到更多。现在您必须将该网络部署到实际的硬件上,这就是推理发挥作用的地方。这里,功率和延迟是非常重要的,就像我在ADAS例子中展示的那样。
所以在Xilinx,我们意识到训练非常重要。它有很多新闻,因为你知道,他们现在有网络比人眼更好。但是,我们认为推论的市场机会更大。所以这就是我们将要关注的地方。
但是在推理方面有很多很多的挑战。例如,人工智能的采用速度是惊人的。我们从AlexNet变成了GoogLeNet,现在又变成了ResNet。当你开始你的设计时,当你完成你的设计时,你可能有一个新的最先进的网络。同样,低延迟时的性能非常关键。功耗也很关键。你想要加速整个应用程序,不仅仅是推理引擎,而是从清理来自传感器的图像到推理引擎,再到能够做决策。你想利用这些设备上的所有资源。
所以我们相信适应的硬件可以解决这些挑战。以及为什么您可以为应用程序创建自定义数据流。您可以创建自定义内存层次结构以在算法中为计算提供。您可以使用自定义精度。并将所有三个共同带到一起,Xilinx-和业界的许多其他人都创造了这个域的架构或DSA的这个词。这就是你如何将所有这些东西一起带到一个设计中。我会告诉你一个例子。
因此,Xilinx有一个图像分类解决方案,可在F1这样的云解决方案上提供,其中他们已经为最新DNN定制了数据流。万博 尤文图斯他们自定义了内存层次结构,因此您可以在设备中使用缓存,并且最大限度地减少与外部DDR内存通信的时间量。您还可以为这些网络定制精度。所以在这个例子中,我们使用8位整数。但这对明天的AI应用来说是不够的。
因此,我们相信,我们新的适应性计算加速平台(简称ACAP设备)将在这里真正大出风头。所以我没有足够的时间来谈论这个设备的所有关键的创新。我的意思是,有像新的ARM处理器这样的东西,有一个芯片上的网络可以在设备周围移动数据,有硬化的内存控制器。比如PCIe Gen 4。我想关注的一个领域是AI引擎。
因此,AI发动机是一系列VLIW / SIMD处理器。现在在我们的第一个设备中,设备中有300个。并且这些VLIW处理器之间存在巨大的互连。您可以进入面料以创建自定义内存层次结构以送到此野兽。而我们将最终编程的方式使用Matlab Simulink并使用模型作曲家来实现所有事情。万博1manbetx
那么你用ACAP设备得到了什么?因此,这里是Googlenet网络上的基准,其中包含了两个毫秒延迟的约束。所以我们做了比较。所以再次,这里的艺术GPU的状态。和我们现有的解决方案,我提到的XDNN DSA,每秒分类4,000张图像。好的?在那里胜过现有的GPU。但使用ACAP设备,每秒高达22,000张照片。这是一个完整的改善。但它甚至会变得更好。
Xilinx有我们所说的打印技术,它可以观察一个网络,找出它可以切断的网络的不同分支,然后量化算法的不同部分。我们可以得到更好的性能。因此,您可以获得1.3到8倍的性能改进。你可以为一个ACAP设备每秒获得30000张图像。这很好。
好吧。那么,为了利用所有这些技术并满足这些应用程序的需求,这些工具需要如何调整呢?好吧,首先,我希望能够做基于云的设计入门。最近,我有机会在网上使用MATLAB。这太不可思议了。三秒钟,你开始用MATLAB了。没有比这更简单的了。对吧?但是少了一样东西,那就是Simulink。万博1manbetx所以我真的很期待。
另外,您在ADAS示例中看到,有来自客户的系统级约束,对吗?比如带宽、延迟和功率。这些都需要作为编译器的输入。现在,编译器的输入是时钟频率。对吧?此外,你还需要知道你是要使用云服务还是边缘服务。我们可能会在此基础上做出决定。所以我们需要改进编译器。
因此,由于您将进行基于云的输入,您可以利用云上已经存在的FPGA硬件,如Amazon F1。许多其他云供应商也在部署fpga。但是假设你正在分析你的代码,你碰到了一个热点。也许MATLAB会说,哦,我们有一个加速版本。这已经在云上可用了。你可以使用它。
我们在Simulink中需要更高的抽象。万博1manbetx例如,我向您展示了在开始时的数字预失真设计。这是13,000块的设计。我们认为将来将成为模型作曲家中的一个块。利用AI发动机利用。
最后,我们希望您能够充分利用这些领域特定的体系结构。就像我给你们展示的图像分类引擎,你应该能够添加你的特殊调味汁,所以你不需要重新发明它。你不需要处理设备的所有细节I/O。我认为这一切都可以通过与MathWorks的联合合作实现。最后,我们可以提供给你的是一个可部署的设计,它使用了ACAP设计的所有计算资源,用于边缘和云。
所以不用说,在过去的20年里,我们看到了很多创新。基于模型的设计在管理复杂性和提高生产力方面比以往任何时候都更加重要。Xilinx将继续在基于模型的设计上投入大量资金,因为我们相信这是我们设备的一个自然和高效的入口。基于我前面提到的原因,可适配设备在ML、ADAS和5G方面具有明显优势,以满足我们客户的性能、延迟和电源需求。
最后,我们相信工具,硅和这些平台的交叉点将提供更多AI采用的拐点。因此,无论您是AI专家还是刚刚第一次学习AI,并受到丰富的谈话的启发,我们期待着与您和我们的合作伙伴,MathWorks合作,在您的下一个设计上。谢谢你。
(掌声)
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。