Litcius/Paper detail

End-to-End Optimization of Deep Learning Applications

Atefeh Sohrabizadeh, Jie Wang, Jason Cong

202039 citationsDOIOpen Access PDF

Abstract

The irregularity of recent Convolutional Neural Network (CNN) models such as less data reuse and parallelism due to the extensive network pruning and simplification creates new challenges for FPGA acceleration. Furthermore, without proper optimization, there could be significant overheads when integrating FPGAs into existing machine learning frameworks like TensorFlow. Such a problem is mostly overlooked by previous studies. However, our study shows that a naive FPGA integration into TensorFlow could lead to up to 8.45x performance degradation. To address the challenges mentioned above, we propose several SW/HW co-design approaches to perform the end-to-end optimization of deep learning applications. We present a flexible and composable architecture called FlexCNN. It can deliver high computation efficiency for different types of convolution layers using techniques including dynamic tiling and data layout optimization. FlexCNN is further integrated into the TensorFlow framework with a fully-pipelined software-hardware integration flow. This alleviates the high overheads of TensorFlow-FPGA handshake and other non-CNN processing stages. We use OpenPose, a popular CNN-based application for human pose recognition, as a case study. Experimental results show that with the FlexCNN architecture optimizations, we can achieve 2.3x performance improvement. The pipelined integration stack leads to a further 5x speedup. Overall, the SW/HW co-optimization produces a speedup of 11.5x and results in an end-to-end performance of 23.8FPS for OpenPose with floating-point precision, which is the highest performance reported for this application on FPGA in the literature.

Topics & Concepts

Computer scienceSpeedupConvolutional neural networkField-programmable gate arrayPruningDeep learningParallel computingArtificial intelligenceComputer architectureFloating pointHandshakeConvolution (computer science)Computer engineeringEnd-to-end principleMachine learningArtificial neural networkEmbedded systemOverhead (engineering)AlgorithmOperating systemAgronomyBiologyAdvanced Neural Network ApplicationsCCD and CMOS Imaging SensorsAdvanced Image and Video Retrieval Techniques
End-to-End Optimization of Deep Learning Applications | Litcius