杰克·埃里克森,MathWorks
基于FPGA的硬件非常适合在嵌入式设备上进行深度学习推断,因为它们提供了低延迟和低功耗。早期原型设计对于开发能够有效部署到FPGA的深度学习网络至关重要。
了解如何深入学习HDL工具箱™ 直接从MATLAB自动化深度学习网络的FPGA原型®.只需几行MATLAB代码,就可以部署到Xilinx并在其上运行推断®ZCU102 FPGA板。这种直接连接允许您在FPGA上运行深入学习推断,作为MATLAB应用程序的一部分,因此您可以在满足系统要求的网络上更快地收敛。
FPGA非常适合在边缘设备中进行深度学习推断,因为它们具有较低的延迟,并且比CPU或GPU使用更少的电源,我们开始看到它们被设计成各种应用程序。
但是边缘部署带来了速度、大小和功耗等限制,这迫使在基于FPGA的硬件上实现深度学习网络时进行权衡。因此,工程师能够在网络设计和FPGA部署之间快速迭代变得至关重要。
使用Deep Learning HDL Toolbox,您只需在现有的Deep Learning代码中添加5行代码,就可以开始从MATLAB在FPGA上运行推断,这样您就可以在MATLAB中进行实验和迭代。
要快速入门,请从附加资源管理器或MathWorks硬件支持页面下载Xilinx支持包,用万博1manbetx于深度学习HDL工具箱。该包包括预构建的比特流,可将深度学习处理器和数据移动功能编程到Xilinx ZCU102等流行板上。
这种深度学习处理器具有运行卷积和完全连接层的模块,您可以编译各种深度学习网络在其上运行,而无需重新编程FPGA。其余功能控制层,以及参数和激活的移动和存储,以及允许MATLAB通过以太网或JTAG直接与之通信的接口。
这是一个车道检测示例,它使用已经训练过的串联网络。它将在视频上覆盖车道标记。
您需要的第一行代码是定义目标对象。在本例中,目标是使用以太网接口的Xilinx板。
下一行定义了工作流对象,它指定使用该目标对象,哪个比特流——在本例中,我们下载的是使用单精度浮点计算的对象,因此您甚至不需要量化到定点,当然也不需要在目标上编程什么网络。
第三行编译控制网络的指令并生成参数。在迭代网络设计时,只需重新编译并部署到处理器,
这是这里的第四行代码–部署函数。如果FPGA还没有被编程,那么它将使用比特流对FPGA进行编程。它加载定义网络的编译指令及其参数。
最后第五行是调用网络在FPGA上运行预测的那一行。您通常会在您的MATLAB算法中使用它,如下所示。
就这样,您可以在您的算法上下文中尝试在FPGA上运行您的网络。
在这里,因为我们一次从MATLAB加载一个图像到FPGA,它似乎运行得很慢,但评估性能曲线也不算太差。我们可以从这里开始调整网络,重新编译,并用几行MATLAB代码重新评估性能。
因此,您可以在不必给硬件团队带来负担的情况下,立即获得关于它在FPGA上执行情况的反馈,最终您可以为您知道可以在硬件中实现的深度学习处理器生成HDL。
这5行MATLAB代码是我们示例套件中的一个常见主题,因此您可以使用与您的应用程序最相似的示例之一进行尝试。
您还可以从以下列表中选择网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区网站未针对您所在地的访问进行优化。