  Hardware reliability is adversely affected by the downscaling of
semiconductor devices and the scale-out of systems necessitated by modern
applications. Apart from crashes, this unreliability often manifests as silent
data corruptions (SDCs), affecting application output. Therefore, we need
low-cost and low-human-effort solutions to reduce the incidence rate and the
effects of SDCs on the quality of application outputs. We propose Artificial
Neural Networks (ANNs) as an effective mechanism for online error detection. We
train ANNs using software fault injection. We find that the average overhead of
our approach, followed by a costly error correction by re-execution, is 6.45%
in terms of CPU cycles. We also report that ANNs discover 94.85% of faults
thereby resulting in minimal output quality degradation. To validate our
approach we overclock ARM Cortex A53 CPUs, execute benchmarks on them and
record the program outputs. ANNs prove to be an efficient error detection
mechanism, better than a state of the art approximate error detection mechanism
(Topaz), both in terms of performance (12.81% CPU overhead) and quality of
application output (94.11% detection coverage).
