  Recent Deep Neural Networks (DNNs) managed to deliver superhuman accuracy
levels on many AI tasks. Several applications rely more and more on DNNs to
deliver sophisticated services and DNN accelerators are becoming integral
components of modern systems-on-chips. DNNs perform millions of arithmetic
operations per inference and DNN accelerators integrate thousands of
multiply-accumulate units leading to increased energy requirements. Approximate
computing principles are employed to significantly lower the energy consumption
of DNN accelerators at the cost of some accuracy loss. Nevertheless, recent
research demonstrated that complex DNNs are increasingly sensitive to
approximation. Hence, the obtained energy savings are often limited when
targeting tight accuracy constraints. In this work, we present a dynamically
configurable approximate multiplier that supports three operation modes, i.e.,
exact, positive error, and negative error. In addition, we propose a
filter-oriented approximation method to map the weights to the appropriate
modes of the approximate multiplier. Our mapping algorithm balances the
positive with the negative errors due to the approximate multiplications,
aiming at maximizing the energy reduction while minimizing the overall
convolution error. We evaluate our approach on multiple DNNs and datasets
against state-of-the-art approaches, where our method achieves 18.33% energy
gains on average across 7 NNs on 4 different datasets for a maximum accuracy
drop of only 1%.
