TL;DR
This paper introduces logic shrinkage, a method for automatically pruning FPGA netlists by learning the optimal number of inputs per LUT, leading to more efficient neural network inference on FPGAs without sacrificing accuracy.
Contribution
It proposes a novel fine-grained netlist pruning technique that automatically learns LUT input counts, improving FPGA neural network efficiency over prior manual or random approaches.
Findings
Achieves 1.54x area and 1.31x energy efficiency improvements on CIFAR-10
Reduces post-synthesis area by 2.67x on ImageNet with Bi-Real Net
Enables FPGA implementations previously deemed infeasible
Abstract
FPGA-specific DNN architectures using the native LUTs as independently trainable inference operators have been shown to achieve favorable area-accuracy and energy-accuracy tradeoffs. The first work in this area, LUTNet, exhibited state-of-the-art performance for standard DNN benchmarks. In this paper, we propose the learned optimization of such LUT-based topologies, resulting in higher-efficiency designs than via the direct use of off-the-shelf, hand-designed networks. Existing implementations of this class of architecture require the manual specification of the number of inputs per LUT, K. Choosing appropriate K a priori is challenging, and doing so at even high granularity, e.g. per layer, is a time-consuming and error-prone process that leaves FPGAs' spatial flexibility underexploited. Furthermore, prior works see LUT inputs connected randomly, which does not guarantee a good choice…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
MethodsPruning
