当前位置: 首页 > 工具软件 > Finn > 使用案例 >

FINN(一)简介一种快速,可扩展的二值化神经网络框架

萧心远
2023-12-01

摘要:

研究表明,卷积神经网络具有明显的冗余,即使权重和激活从浮点减少到二进制值,也可以获得高分类精度。在本文中,我们介绍了FINN,一个使用灵活的异构流体系结构构建快速和灵活的FPGA加速器的框架。通过利用一组新的优化功能,可以实现二值化神经网络到硬件的高效映射,我们实现了完全连接,卷积和池化层,每层计算资源可以根据用户提供的吞吐量要求进行调整。在aZC706嵌入式FPGA平台上,系统功耗低于25 W,我们展示了每秒1230万个图像分类,MNISTdataset上的延迟为0.31μs,准确率为95.8%,而CIFAR-10和SVHN数据集上的延迟为283μs,21906个图像分类次之,精度分别为80.1%和94.9%。据我们所知,我们是迄今为止在这些基准测试中报告的最快的分类。

介绍

卷积神经网络(CNNs)近年来得到了极大的改进,其性能现在超过了其他视觉识别算法,甚至超越了人类对某些问题的准确性。 它们可能在各种设备上实现无处不在的机器视觉和智能方面发挥重要作用,但仍然存在着重要的计算挑战。 现代CNN可能包含数百万个浮点参数,需要数十亿浮点运算来识别单个图像。 此外,随着研究人员探索更深层次的网络,这些要求往往会增加。 例如,Alex Net (2012年图像网大规模视觉识别竞赛(ILSVRC)的获奖作品)每张图像需要244 MB的参数和1.4亿浮点操作(GFLOP),而VGG- 来自ILSVRC 2014的16需要552MB参数和每张图像30.8 GFLOP。

虽然绝大多数CNN使用浮点参数,但越来越多的研究表明这种方法包含了明显的冗余。最近,已经证明神经网络可以准确分类使用一位或两位量化来进行权重和激活。这种低精度算术和小内存占用的组合,为使用现场可编程逻辑阵列(FPGA)进行快速和能量效率分类提供了独特的机会。与浮点相比,FPGA在二进制运算中具有更高的理论峰值性能,而小内存占用通过将参数保持在芯片上来消除了芯片存储瓶颈,即使对于大型网络也是如此。二元神经网络(BNNs),由Curbariaux等人提出。 因为它们几乎完全可以通过二进制运算实现,所以特别有吸引力,有可能在FPGA上的第二级(TOPS)范围内获得性能。

在这项工作中,我们提出了FINN,一个用于构建可扩展和FPGAs上的快速BNN推理加速器。FINN生成的加速器每秒可执行数百万个分类,具有亚微秒延迟,因此非常适合支持实时嵌入式应用,如增强现实,自动驾驶和机器人等领域。计算资源可以被缩小以更好满足给定的分类率要求。我们使用一系列原型来验证FINN的能力,用于对MNIST,SVHN和CIFAR-10基准数据集进行分类。我们的分类结果超过了之前公布的最佳结果,其中MNIST为48×,CIFAR-10为2.2×,SVHN为8×。据我们所知,这是这些数据集中报告最快的神经网络推理实现。

文章的价值

使用roofline模型量化BNNs在FPGA上的峰值性能。

利用优化将BNN更加高效的映射到FPGA上。

BNN架构和加速器构建工具,允许定制吞吐量。

一系列原型展示了BNNs在现成的FPGA平台上的潜力。




下面给出xilinx官方的FINN指导,详见http://www.pynq.io/ml

xilinx官方指导

What is FINN?

FINN是Xilinx研究实验室的一个实验框架,旨在探索fpga的深层神经网络推断。它专门针对量化的神经网络,重点是为每个网络生成定制的数据流样式的体系结构。它不是像xDNN那样的通用DNN加速器,而是探索fpga上DNN推理加速器设计空间的工具。

Features

模板Vivado HLS流组件库:

FINN提供了一个HLS硬件库,它实现了卷积、全连接、池和LSTM层类型作为流组件。这个库使用c++模板来支持广泛的精度。

超低延迟和高性能的数据流:

通过为每一层合成流媒体组件,FINN可以生成加速器,可以在亚微秒延迟的情况下对图像进行分类。

许多端到端示例设计:

我们提供的例子从训练量化的神经网络开始,一直到在硬件上运行的加速设计。这些示例跨越了一系列数据集和网络拓扑。

用于快速设计生成的工具流:

FINN工具流支持为每一层分配单独的计算资源,可以是自动的,也可以是手动的,并生成完整的综合设计。这使得对设计空间的快速探索成为可能。




由于文章篇幅过长,将在后面陆续更新系列文章:
FINN(二)CNN,BNN及其硬件实现的背景知识
FINN(三)BNN在FPGA上的准确性和峰值性能
FINN(四)FINN的架构和优化
FINN(五)实验评估
FINN(六)总结
FINN(大结局)参考文献

 类似资料: