A Quadratic Synchronization Rule for Distributed Deep Learning

Xinran Gu, Kaifeng Lyu, Sanjeev Arora, Jingzhao Zhang, Longbo Huang
10/1/2023

No official code found. Best implementation: hmgxr128/QSR (5 stars, MIT, last commit 2024-03-20).

Abstract

In distributed deep learning with data parallelism, synchronizing gradients at each training step can cause a huge communication overhead, especially when many nodes work together to train large models. Local gradient methods, such as Local SGD, address this issue by allowing workers to compute locally for $H$ steps without synchronizing with others, hence reducing communication frequency. While $H$ has been viewed as a hyperparameter to trade optimization efficiency for communication cost, recent research indicates that setting a proper $H$ value can lead to generalization improvement. Yet, selecting a proper $H$ is elusive. This work proposes a theory-grounded method for determining $H$, named the Quadratic Synchronization Rule (QSR), which recommends dynamically setting $H$ in proportion to $\frac{1}{\eta^2}$ as the learning rate $\eta$ decays over time. Extensive ImageNet experiments on ResNet and ViT show that local gradient methods with QSR consistently improve the test accuracy over other synchronization strategies. Compared with the standard data parallel training, QSR enables Local AdamW on ViT-B to cut the training time on 16 or 64 GPUs down from 26.7 to 20.2 hours or from 8.6 to 5.5 hours and, at the same time, achieves $1.16\%$ or $0.84\%$ higher top-1 validation accuracy.

View on arXivView PDF

Code Implementations(1)

hmgxr128/QSRCommunity63%
MIT

Code for the paper "A Quadratic Synchronization Rule for Distributed Deep Learning"

50Shell, PythonOct 18, 20232 years agoMIT
communication-efficientdistributed-computinglocalsgd

Similar Papers

Cite this paper

@article{gu2023quadratic,
  title  = {A Quadratic Synchronization Rule for Distributed Deep Learning},
  author = {Xinran Gu and Kaifeng Lyu and Sanjeev Arora and Jingzhao Zhang and Longbo Huang},
  year   = {2023},
  eprint = {2310.14423},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/2310.14423},
  journal = {ICLR 2023 2023}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2310.14423.svg)](https://codeofpaper.com/paper/2310.14423)

Discussion