  Convolutional Neural Networks (CNNs), one of the most representative
algorithms of deep learning, are widely used in various artificial intelligence
applications. Convolution operations often take most of the computational
overhead of CNNs. The FFT-based algorithm can improve the efficiency of
convolution by reducing its algorithm complexity, there are a lot of works
about the high-performance implementation of FFT-based convolution on many-core
CPUs. However, there is no optimization for the non-uniform memory access
(NUMA) characteristics in many-core CPUs. In this paper, we present a
NUMA-aware FFT-based convolution implementation on ARMv8 many-core CPUs with
NUMA architectures. The implementation can reduce a number of remote memory
access through the data reordering of FFT transformations and the three-level
parallelization of the complex matrix multiplication. The experiment results on
a ARMv8 many-core CPU with NUMA architectures demonstrate that our NUMA-aware
implementation has much better performance than the state-of-the-art work in
most cases.
