unzipFPGA:通过动态重量生成增强基于FPGA的CNN发动机
unzipFPGA: Enhancing FPGA-based CNN Engines with On-the-Fly Weights Generation
摘要:
单计算引擎已成为基于FPGA的卷积神经网络(CNN)的流行设计选择,从而能够在不重新配置结构的情况下部署各种模型。然而,这种灵活性通常会导致内存限制层的性能显著降低,并且由于引擎固定配置上某些层的次优映射而导致资源利用不足。在这项工作中,我们研究了一类模型的CNN引擎设计方面的影响,这些模型引入了预卷积阶段以在运行时间确定权重。我们将这些方法称为动态方法。为了最大限度地减少有限的带宽对内存绑定层的负面影响,我们提出了一种新的硬件组件,使芯片上的动态生成的权重。我们进一步介绍了一个输入选择性处理元件(PE)的设计,平衡次优映射层上的PE之间的负载。最后,我们提出了unzipFPGA,一个框架,训练飞行模型和遍历设计空间,以选择最高性能的CNN引擎配置。定量评估显示,unzipFPGA在受限带宽下的优化现状和修剪CNN引擎的平均加速比为2.14倍和71%,并且性能密度比最先进的基于FPGA的CNN加速器高出3.69倍。
英文摘要:
Single computation engines have become a popular design choice for FPGA-based convolutional neural networks (CNNs) enabling the deployment of diverse models without fabric reconfiguration. This flexibility, however, often comes with significantly reduced performance on memory-bound layers and resource underutilisation due to suboptimal mapping of certain layers on the engine's fixed configuration. In this work, we investigate the implications in terms of CNN engine design for a class of models that introduce a pre-convolution stage to decompress the weights at run time. We refer to these approaches as on-the-fly. To minimise the negative impact of limited bandwidth on memory-bound layers, we present a novel hardware component that enables the on-chip on-the-fly generation of weights. We further introduce an input selective processing element (PE) design that balances the load between PEs on suboptimally mapped layers. Finally, we present unzipFPGA, a framework to train on-the-fly models and traverse the design space to select the highest performing CNN engine configuration. Quantitative evaluation shows that unzipFPGA yields an average speedup of 2.14x and 71% over optimised status-quo and pruned CNN engines under constrained bandwidth and up to 3.69x higher performance density over the state-of-the-art FPGA-based CNN accelerators.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。