Skip to main content
QUICK REVIEW

[论文解读] LUTNet: Learning FPGA Configurations for Highly Efficient Neural Network Inference

Erwei Wang, James J. Davis|arXiv (Cornell University)|Oct 24, 2019
Advanced Neural Network Applications被引用 5
一句话总结

LUTNet 提出了一种端到端的软硬件框架,使用 FPGA 的 LUT 作为可配置的推理算子,而非传统的 XNOR 门电路,从而实现高效的神经网络推理。通过利用 LUT 的灵活性实现非线性布尔函数,并支持激进的剪枝策略,LUTNet 在 FPGA 上实现了比最先进的二值化神经网络(BNNs)高 2 倍的面积效率和高达 6.66 倍的能量效率提升。

ABSTRACT

Research has shown that deep neural networks contain significant redundancy, and thus that high classification accuracy can be achieved even when weights and activations are quantized down to binary values. Network binarization 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 describe the realization of both unrolled and tiled LUTNet architectures, with the latter facilitating smaller, less power-hungry deployment over the former while sacrificing area and energy efficiency along with throughput. For both varieties, 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 binarized neural network implementation, we achieve up to twice the area efficiency for several standard network models when inferencing popular datasets. We also demonstrate that even greater energy efficiency improvements are obtainable.

研究动机与目标

  • 解决传统二值化神经网络(BNNs)在 FPGA 上效率低下的问题,这些网络依赖 XNOR 门电路,尽管 LUT 具备更复杂的逻辑能力。
  • 克服 BNNs 的局限性,即受限于线性点积近似,且未能充分利用 FPGA 的 LUT 资源。
  • 通过将核心计算单元重新定义为基于可配置 K-LUT 的算子,实现在 FPGA 上高度节省面积和能量的深度神经网络(DNN)推理。
  • 开发一种训练框架,可学习 LUT 配置并支持极端剪枝,同时保持高精度。
  • 证明在 FPGA 上,基于非线性 LUT 的算子在面积和能效方面优于基于线性 XNOR 的 BNNs。

提出的方法

  • 用基于 K-LUT 的推理算子替代标准 BNN 操作(XNOR + popcount),以在 K 位输入上计算任意布尔函数。
  • 设计端到端的训练流水线,联合学习 LUT 掩码(函数配置)和网络权重,使 LUT 成为非线性推理单元。
  • 提出两种架构:展开式 LUTNet(高吞吐量、高面积效率)和分块式 LUTNet(更小面积、更低功耗,使用片上 RAM 存储参数)。
  • 应用预代换剪枝以减少 LUT 数量(˜N ≪ N),其中省略未使用的输入,仅配置 LUT 执行必要操作。
  • 采用可微训练机制,支持通过 LUT 配置进行反向传播,使梯度下降能同时优化函数选择和网络权重。
  • 使用 FPGA 优化的逻辑实现两种架构:展开式 LUTNet 仅使用 LUT 和加法器,而分块式 LUTNet 将参数卸载至块 RAM,以减少 LUT 使用并提升面积效率。

实验结果

研究问题

  • RQ1FPGA 的 LUT 是否可被有效重用于非线性推理算子,而非仅限于 BNN 中的 XNOR 操作?
  • RQ2在使用灵活的 LUT 基算子时,激进剪枝的适用程度如何,且在不牺牲分类精度的前提下能有多大的剪枝空间?
  • RQ3在 FPGA 上,使用 LUT 中的非线性布尔函数与线性 XNOR 操作相比,在面积和能效方面有何差异?
  • RQ4展开式与分块式 LUTNet 架构在面积、功耗、吞吐量和精度之间存在哪些权衡?
  • RQ5能否设计一种可微训练框架,以联合优化 LUT 函数配置和网络权重,从而适用于 FPGA 部署?

主要发现

  • LUTNet 在多个标准 DNN 模型和数据集上,相比最先进的 BNN 实现,面积效率最高提升 2 倍。
  • 与先前的 BNN 工作相比,能效比最高提升 6.66 倍,主要归因于 LUT 使用量减少和逻辑利用效率提升。
  • 一个 8×8 分块且剪枝率达 64.6% 的 (5,1)-LUTNet CNV 设计,相比一个展开式且剪枝率达 91.1% 的 (4,0)-LUTNet 等效设计,面积缩小 2.78 倍,功耗降低 1.18 倍,且 CIFAR-10 分类精度相当。
  • 尽管展开式 LUTNet 在未剪枝和剪枝状态下相比最先进的 BNN 实现,平均面积减少 1.81 倍,且精度保持在 ±0.300 个百分点以内。
  • 尽管 K-LUT 具备高度灵活性,但大多数学习到的函数仍呈现 XNOR 类似特性,表明当前训练初始化可能使优化过程偏向于熟悉的操作。
  • 与 ReBNet 相比,分块式 LUTNet 的每轮训练时间最多增加 2.58 倍,但这一代价被显著降低的资源占用和更高的能效比所抵消。

更好的研究,从现在开始

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

无需绑定信用卡

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