Hardware and Software Optimizations for Accelerating Deep Neural
  Networks: Survey of Current Trends, Challenges, and the Road Ahead
  Currently, Machine Learning (ML) is becoming ubiquitous in everyday life.
Deep Learning (DL) is already present in many applications ranging from
computer vision for medicine to autonomous driving of modern cars as well as
other sectors in security, healthcare, and finance. However, to achieve
impressive performance, these algorithms employ very deep networks, requiring a
significant computational power, both during the training and inference time. A
single inference of a DL model may require billions of multiply-and-accumulated
operations, making the DL extremely compute- and energy-hungry. In a scenario
where several sophisticated algorithms need to be executed with limited energy
and low latency, the need for cost-effective hardware platforms capable of
implementing energy-efficient DL execution arises. This paper first introduces
the key properties of two brain-inspired models like Deep Neural Network (DNN),
and Spiking Neural Network (SNN), and then analyzes techniques to produce
efficient and high-performance designs. This work summarizes and compares the
works for four leading platforms for the execution of algorithms such as CPU,
GPU, FPGA and ASIC describing the main solutions of the state-of-the-art,
giving much prominence to the last two solutions since they offer greater
design flexibility and bear the potential of high energy-efficiency, especially
for the inference process. In addition to hardware solutions, this paper
discusses some of the important security issues that these DNN and SNN models
may have during their execution, and offers a comprehensive section on
benchmarking, explaining how to assess the quality of different networks and
hardware systems designed for them.
