  As Convolutional Neural Networks (CNNs) are increasingly being employed in
safety-critical applications, it is important that they behave reliably in the
face of hardware errors. Transient hardware errors may percolate undesirable
state during execution, resulting in software-manifested errors which can
adversely affect high-level decision making. This paper presents HarDNN, a
software-directed approach to identify vulnerable computations during a CNN
inference and selectively protect them based on their propensity towards
corrupting the inference output in the presence of a hardware error. We show
that HarDNN can accurately estimate relative vulnerability of a feature map
(fmap) in CNNs using a statistical error injection campaign, and explore
heuristics for fast vulnerability assessment. Based on these results, we
analyze the tradeoff between error coverage and computational overhead that the
system designers can use to employ selective protection. Results show that the
improvement in resilience for the added computation is superlinear with HarDNN.
For example, HarDNN improves SqueezeNet's resilience by 10x with just 30%
additional computations.
