Publication | Closed Access
A pipelined and scalable dataflow implementation of convolutional neural networks on FPGA
21
Citations
25
References
2017
Year
Unknown Venue
Convolutional Neural NetworkEngineeringMachine LearningHardware AlgorithmComputer ArchitectureData ScienceEmbedded Machine LearningParallel ComputingDeep Learning AlgorithmMachine VisionImplicit ParallelismComputer EngineeringComputer ScienceDeep LearningNeural Architecture SearchFpga DesignComputer VisionDeep Neural NetworksHardware AccelerationConvolutional Neural NetworksDomain-specific AcceleratorParallel ProgrammingScalable Dataflow Implementation
Convolutional Neural Network (CNN) is a deep learning algorithm extended from Artificial Neural Network (ANN) and widely used for image classification and recognition, thanks to its invariance to distortions. The recent rapid growth of applications based on deep learning algorithms, especially in the context of Big Data analytics, has dramatically improved both industrial and academic research and exploration of optimized implementations of CNNs on accelerators such as GPUs, FPGAs and ASICs, as general purpose processors can hardly meet the ever increasing performance and energy-efficiency requirements. FPGAs in particular are one of the most attractive alternative, as they allow the exploitation of the implicit parallelism of the algorithm and the acceleration of the different layers of a CNN with custom optimizations, while retaining extreme flexibility thanks to their reconfigurability. In this work, we propose a methodology to implement CNNs on FPGAs in a modular, scalable way. This is done by exploiting the dataflow pattern of convolutions, using an approach derived from previous work on the acceleration of Iterative Stencil Loops (ISLs), a computational pattern that shares some characteristics with convolutions. Furthermore, this approach allows the implementation of a high-level pipeline between the different network layers, resulting in an increase of the overall performance when the CNN is employed to process batches of multiple images, as it would happen in real-life scenarios.
| Year | Citations | |
|---|---|---|
Page 1
Page 1