  Deep convolutional neural networks (CNNs) are the deep learning model of
choice for performing object detection, classification, semantic segmentation
and natural language processing tasks. CNNs require billions of operations to
process a frame. This computational complexity, combined with the inherent
parallelism of the convolution operation make CNNs an excellent target for
custom accelerators. However, when optimizing for different CNN hierarchies and
data access patterns, it is difficult for custom accelerators to achieve close
to 100% computational efficiency. In this work, we present Snowflake, a
scalable and efficient accelerator that is agnostic to CNN workloads, and was
designed to always perform at near-peak hardware utilization. Snowflake is able
to achieve a computational efficiency of over 91% on modern CNN models.
Snowflake, implemented on a Xilinx Zynq XC7Z045 SoC is capable of achieving a
peak throughput of 128G-ops/s and a measured throughput of 100 frames per
second and 120 G-ops/s on the AlexNet CNN model, 36 frames per second and 116G-
ops/s on the GoogLeNet CNN model and 17 frames per second and 122 G-ops/s on
the ResNet-50 CNN model. To the best of our knowledge, Snowflake is the only
implemented system capable of achieving over 91% efficiency on modern CNNs and
the only implemented system with GoogLeNet and ResNet as part of the benchmark
suite.
