paper-with-me

홈 › Papers

A Distributed Data-Parallel PyTorch Implementation of the Distributed Shampoo Optimizer for Training Neural Networks At-Scale

2023-09-12 · Hao-Jun Michael Shi, Tsung-Hsien Lee, Shintaro Iwasaki, Jose Gallego-Posada, Zhijing Li, Kaushik Rangadurai, Dheevatsa Mudigere, Michael Rabbat

Shampoo is an online and stochastic optimization algorithm belonging to the AdaGrad family of methods for training neural networks. It constructs a block-diagonal preconditioner where each block consists of a coarse Kronecker product approximation to full-matrix AdaGrad for each parameter of the neural network. In this work, we provide a complete description of the algorithm as well as the performance optimizations that our implementation leverages to train deep networks at-scale in PyTorch. Our implementation enables fast multi-GPU distributed data-parallel training by distributing the memory and computation associated with blocks of each parameter via PyTorch's DTensor data structure and performing an AllGather primitive on the computed search directions at each iteration. This major performance enhancement enables us to achieve at most a 10% performance reduction in per-step wall-clock time compared against standard diagonal-scaling-based adaptive gradient methods. We validate our implementation by performing an ablation study on training ImageNet ResNet50, demonstrating Shampoo's superiority over standard training recipes with minimal hyperparameter tuning.

📄 PDF Abstract BibTeX arXiv:2309.06497

Code (3)

facebookresearch/optimizers/tree/main/distributed_shampoo 공식 구현 pytorch
mlcommons/submissions_algorithms jax
yorkerlin/remove-the-square-root pytorch

Tasks

GPUStochastic Optimization

Methods 이 논문이 사용한 방법론

AdaGrad AdaGrad is a stochastic optimization method that adapts the learning rate to the parameters. It performs smaller updates for parameters associated with frequently occurring…

Similar Papers 제목 키워드 기반

PyTorch Distributed: Experiences on Accelerating Data Parallel Training

2020-06-28 · Shen Li, Yanli Zhao, Rohan Varma, Omkar Salpekar 외

This paper presents the design, implementation, and evaluation of the PyTorch distributed data parallel module. PyTorch is a widely-adopted scientific computing package used in deep learning research and applications. Re…

A Linear Algebraic Approach to Model Parallelism in Deep Learning

2020-06-04 · Russell J. Hewett, Thomas J. Grady II

Training deep neural networks (DNNs) in large-cluster computing environments is increasingly necessary, as networks grow in size and complexity. Local memory and processing limitations require robust data and model paral…

Deep Learning

OneFlow: Redesign the Distributed Deep Learning Framework from Scratch

2021-10-28 · Jinhui Yuan, Xinqi Li, Cheng Cheng, Juncheng Liu 외

Deep learning frameworks such as TensorFlow and PyTorch provide a productive interface for expressing and training a deep neural network (DNN) model on a single device or using data parallelism. Still, they may not be fl…

Deep Learning

TorchBeast: A PyTorch Platform for Distributed RL

2019-10-08 · Heinrich Küttler, Nantas Nardelli, Thibaut Lavril, Marco Selvatici 외

TorchBeast is a platform for reinforcement learning (RL) research in PyTorch. It implements a version of the popular IMPALA algorithm for fast, asynchronous, parallel training of RL agents. Additionally, TorchBeast has s…

OpenAI GymReinforcement LearningReinforcement Learning (RL)

SimpleFSDP: Simpler Fully Sharded Data Parallel with torch.compile

2024-11-01 · Ruisi Zhang, Tianyu Liu, Will Feng, Andrew Gu 외

Distributed training of large models consumes enormous computation resources and requires substantial engineering efforts to compose various training techniques. This paper presents SimpleFSDP, a PyTorch-native compiler-…