  The need to train DNN models on end-user devices (e.g., smartphones) is
increasing with the need to improve data privacy and reduce communication
overheads. Unlike datacenter servers with powerful CPUs and GPUs, modern
smartphones consist of a diverse collection of specialized cores following a
system-on-a-chip (SoC) architecture that together perform a variety of tasks.
We observe that training DNNs on a smartphone SoC without carefully considering
its resource constraints can not only lead to suboptimal training performance
but significantly affect user experience as well. In this paper, we present
Swan, a neural engine to optimize DNN training on smartphone SoCs without
hurting user experience. Extensive large-scale evaluations show that Swan can
improve performance by 1.2 - 23.3x over the state-of-the-art.
