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