Acceleration of Convolutional Neural Network Using FFT-Based Split
  Convolutions
  Convolutional neural networks (CNNs) have a large number of variables and
hence suffer from a complexity problem for their implementation. Different
methods and techniques have developed to alleviate the problem of CNN's
complexity, such as quantization, pruning, etc. Among the different
simplification methods, computation in the Fourier domain is regarded as a new
paradigm for the acceleration of CNNs. Recent studies on Fast Fourier Transform
(FFT) based CNN aiming at simplifying the computations required for FFT.
However, there is a lot of space for working on the reduction of the
computational complexity of FFT. In this paper, a new method for CNN processing
in the FFT domain is proposed, which is based on input splitting. There are
problems in the computation of FFT using small kernels in situations such as
CNN. Splitting can be considered as an effective solution for such issues
aroused by small kernels. Using splitting redundancy, such as overlap-and-add,
is reduced and, efficiency is increased. Hardware implementation of the
proposed FFT method, as well as different analyses of the complexity, are
performed to demonstrate the proper performance of the proposed method.
