Systimator: A Design Space Exploration Methodology for Systolic Array
  based CNNs Acceleration on the FPGA-based Edge Nodes
  The evolution of IoT based smart applications demand porting of artificial
intelligence algorithms to the edge computing devices. CNNs form a large part
of these AI algorithms. Systolic array based CNN acceleration is being widely
advocated due its ability to allow scalable architectures. However, CNNs are
inherently memory and compute intensive algorithms, and hence pose significant
challenges to be implemented on the resource-constrained edge computing
devices. Memory-constrained low-cost FPGA based devices form a substantial
fraction of these edge computing devices. Thus, when porting to such
edge-computing devices, the designer is left unguided as to how to select a
suitable systolic array configuration that could fit in the available hardware
resources. In this paper we propose Systimator, a design space exploration
based methodology that provides a set of design points that can be mapped
within the memory bounds of the target FPGA device. The methodology is based
upon an analytical model that is formulated to estimate the required resources
for systolic arrays, assuming multiple data reuse patterns. The methodology
further provides the performance estimates for each of the candidate design
points. We show that Systimator provides an in-depth analysis of
resource-requirement of systolic array based CNNs. We provide our resource
estimation results for porting of convolutional layers of TINY YOLO, a CNN
based object detector, on a Xilinx ARTIX 7 FPGA.
