  In the twilight of Moore's law, GPUs and other specialized hardware
accelerators have dramatically sped up neural network training. However,
earlier stages of the training pipeline, such as disk I/O and data
preprocessing, do not run on accelerators. As accelerators continue to improve,
these earlier stages will increasingly become the bottleneck. In this paper, we
introduce "data echoing," which reduces the total computation used by earlier
pipeline stages and speeds up training whenever computation upstream from
accelerators dominates the training time. Data echoing reuses (or "echoes")
intermediate outputs from earlier pipeline stages in order to reclaim idle
capacity. We investigate the behavior of different data echoing algorithms on
various workloads, for various amounts of echoing, and for various batch sizes.
We find that in all settings, at least one data echoing algorithm can match the
baseline's predictive performance using less upstream computation. We measured
a factor of 3.25 decrease in wall-clock time for ResNet-50 on ImageNet when
reading training data over a network.
