Most of the existing work on FPGA acceleration of Convolutional Neural Network (CNN) focus on employing a single strategy (algorithm, dataflow, etc.) across all the layers. Such an approach does not achieve optimal latency on complex and deep CNNs. Emerging CNNs have diverse per-layer computation characteristics including parallelism, arithmetic intensity, locality, and memory footprint. Per-layer strategy selection and fine-grained tuning are required to achieve low end-to-end latency. However, specialized hardware modules dedicated to each layer limit the per-layer utilization and adversely affect end-to-end latency. In this paper, we address these problems by an algorithm-architecture co-optimization framework, DYNAMAP, consisting of (1) a unified hardware overlay that can be reused across layers, supporting dynamic mapping of all three families of popular convolution algorithms, and further allowing flexible dataflow switching to maximize hardware utilization for each layer; (2) a novel software Design Space Exploration (DSE) flow that customizes the hardware overlay and chooses optimal strategy mapping. We show that the algorithm mapping space increases exponentially with network depth, and while the optimal algorithm selection problem is NP-hard in general, by exploiting the series-parallel structure of CNN models, we demonstrate a polynomial-time solution for optimal algorithm mapping. DYNAMAP is optimized for any CNN, including those having diverse computation and memory requirements across the layers. We demonstrate DYNAMAP using two state-of-the-art CNNs - GoogleNet and Inception-V4. The generated accelerators achieve up to $2.8\times$ and $1.4\times$ speedups, respectively, wrt inference latency compared with the state-of-the-art FPGA implementations.
翻译:新建的CNN 具有不同的单层计算特征,包括平行、算术强度、地点和记忆足迹。 要实现低端到终端的硬度, 需要逐级战略选择和微调。 然而, 专门为每个层配置的专门硬件模块, 限制了每层的利用率, 并对端到端的硬度产生不利影响。 在本文中, 我们通过一个算法- 结构共同优化框架( DYNAMA)来解决这些问题。 新兴的CNN 具有不同的单层计算特性, 包括平行、 计算强度、 地点和记忆足迹。 需要从每层选择端到端的硬度。 然而, 专门为每个层配置的专用硬件模块( ALG) 限制每层的利用率, 并对端到端到端的平衡。 我们通过智能智能的智能智能智能的网络( DYNAMA ), 正在通过一个动态的模型来提高整个系统运行。