I. Introduction
Modern computing platforms, from servers to mobile and embedded devices, are energy constrained. Techniques for improving their energy efficiency can yield several benefits. They can reduce the energy footprint of data centers and as a result operating costs and environmental impact. They can increase uptime for mobile devices, and they can boost the capability of all systems by allowing them to perform more computations per unit of time. Improving energy efficiency is imperative for deep learning workloads as they are particularly compute and memory intensive. More so, given that the trend has been towards neural network models that require more computations and memory.