Skip to main content
QUICK REVIEW

[论文解读] LUTNet: Rethinking Inference in FPGA Soft Logic

Erwei Wang, James J. Davis|arXiv (Cornell University)|Apr 1, 2019
Advanced Neural Network Applications参考文献 21被引用 8
一句话总结

LUTNet 提出了一种新颖的基于 FPGA 的神经网络推理框架,通过使用可配置的 K-LUT 替代二值化神经网络(BNNs)中的 XNOR 门,以充分发挥其完整的布尔逻辑能力。通过训练稀疏网络,使每个 K-LUT 实现任意布尔函数,LUTNet 在仅造成最小精度损失的前提下,实现了比最先进 BNNs 高达 2.08 倍的面积效率和高达 6.66 倍的能量效率提升。

ABSTRACT

Research has shown that deep neural networks contain significant redundancy, and that high classification accuracies can be achieved even when weights and activations are quantised down to binary values. Network binarisation on FPGAs greatly increases area efficiency by replacing resource-hungry multipliers with lightweight XNOR gates. However, an FPGA's fundamental building block, the K-LUT, is capable of implementing far more than an XNOR: it can perform any K-input Boolean operation. Inspired by this observation, we propose LUTNet, an end-to-end hardware-software framework for the construction of area-efficient FPGA-based neural network accelerators using the native LUTs as inference operators. We demonstrate that the exploitation of LUT flexibility allows for far heavier pruning than possible in prior works, resulting in significant area savings while achieving comparable accuracy. Against the state-of-the-art binarised neural network implementation, we achieve twice the area efficiency for several standard network models when inferencing popular datasets. We also demonstrate that even greater energy efficiency improvements are obtainable.

研究动机与目标

  • 解决传统 BNN 中 FPGA LUT 未被充分利用的问题,这些方法仅将 LUT 当作 XNOR 门使用,而实际上它们能够计算任意 K 输入的布尔函数。
  • 通过充分利用 K-LUT 的非线性特性和表达能力,克服 BNN 在面积和能效方面的局限性。
  • 开发一种训练机制,使稀疏的、基于 K-LUT 的网络在大幅减少硬件资源使用的同时仍能保持高精度。
  • 证明 K-LUT 可作为 DNN 中的本征推理运算单元,从而在 FPGA 上实现更高的逻辑密度和更优的硬件效率。

提出的方法

  • 将 BNN 中的每个 XNOR 门替换为一个 K-LUT,该 K-LUT 可在 K 个二值输入上计算任意布尔函数,从而充分挖掘 LUT 的灵活性。
  • 引入一种网络剪枝策略,通过在多个 LUT 之间重用输入,将推理项数量 ˜N ≪ N 显著减少,从而最小化 popcount 树的规模。
  • 直接将网络权重编码到 LUT 掩码中,消除对外部权重存储的需求,降低资源开销。
  • 使用一种改进的反向传播方法进行网络训练,支持三值或更高精度的权重表示,以实现细粒度剪枝和函数学习。
  • 将每个 K-LUT 映射到单个 FPGA LUT 块,实现无需乘法器或复杂加法树的直接硬件实例化。
  • 在 K-LUT 输出上使用群体计数(popcount)操作来高效求和结果,相比平衡加法树可显著减少 LUT 使用量。

实验结果

研究问题

  • RQ1FPGA 中的 K-LUT 能否作为 DNN 中的本征推理运算单元,实现比基于 XNOR 的 BNN 更高的逻辑密度?
  • RQ2当用 LUT 中实现的任意 K 输入布尔函数替代 XNOR 门时,网络剪枝的潜力在多大程度上可以被挖掘?
  • RQ3在基于 FPGA 的 DNN 推理中,K-LUT 大小(K)与硬件效率(面积和能效)之间的权衡关系如何?
  • RQ4所提出的训练机制如何使高精度、稀疏网络能够高效映射到基于 LUT 的推理运算单元上?
  • RQ5LUTNet 是否能在不牺牲精度的前提下,显著优于最先进 BNN 的面积和能效表现?

主要发现

  • 与最先进 BNN(ReBNet)相比,LUTNet 在 CIFAR-10 上的 CNV 和 ImageNet 上的 AlexNet 上实现了平均 1.81 倍的面积缩减,最高达 2.08 倍的面积效率提升。
  • 由于 LUT 使用量减少以及基于 popcount 的高效求和,LUTNet 在能效方面相比先前 BNN 工作最高提升了 6.66 倍。
  • 4-LUTNet 实现的精度在所有评估模型和数据集上均与原始 BNN 保持在 ±0.300 个百分点以内。
  • 从 4-LUTNet 到 7-LUTNet 的实现中,训练时间几乎保持不变(最高增加 16 倍参数量),因为其瓶颈在于 GPU 内存传输而非计算。
  • K-LUT 的使用使逻辑密度显著高于基于 XNOR 的 BNN,但当 K > 2 时,由于函数表示能力受限,收益呈现递减趋势。
  • 在 6-LUTNet 中观察到过拟合现象,表明未来工作应引入训练过程中对 K-LUT 表达能力的动态控制,以在模型容量与泛化能力之间取得平衡。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。