communication quantization for data- parallel training of...

24
LLNL-PRES-708391 This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under contract DE-AC52-07NA27344. Lawrence Livermore National Security, LLC Communication Quantization for Data- parallel Training of Deep Neural Networks MLHPC 2016 Nikoli Dryden 1,3 , Tim Moon 2,3 , Sam Ade Jacobs 3 , Brian Van Essen 3 1 University of Illinois at Urbana-Champaign 2 Stanford University 3 Lawrence Livermore National Laboratory November 14, 2016

Upload: others

Post on 27-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-708391 This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under contract DE-AC52-07NA27344. Lawrence Livermore National Security, LLC

Communication Quantization for Data-parallel Training of Deep Neural NetworksMLHPC 2016

Nikoli Dryden1,3, Tim Moon2,3, Sam Ade Jacobs3, Brian Van Essen3 1 University of Illinois at Urbana-Champaign 2 Stanford University 3 Lawrence Livermore National Laboratory

November 14, 2016

Page 2: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-7083912

▪ Training DNNs is very intensive

▪ Datasets continue to become larger and larger

▪ Let’s try to take advantage of HPC resources

Motivation

Page 3: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-7083913

▪ Quantize gradient updates and use a custom communication algorithm

▪ Reduces bandwidth during data-parallel training

▪ Outperform baseline for large layers (1.76x)

▪ Code available: https://github.com/LLNL/lbann

Summary

Page 4: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-7083914

Rank 0 - N0 Rank 1 - N1 Rank 2 - N2 Rank 3 - N3

Model M0 - Input Layer

Model M0 - Layer H0

Model M0 - Layer H1

Rank 1 - N5 Rank 2 - N6 Rank 3 - N7Rank 0 - N4

Model M1 - Input Layer

Model M1 - Layer H0

Model M1 - Layer H1

Peer-wise communication

DP0 MB0Input Data Partition 0 from Lustre

DP0 MB1 DP0 MB2 DP0 MB3 DP1 MB0Input Data Partition 1 from Lustre

DP1 MB1 DP1 MB2 DP1 MB3

Model Replica 0 Model Replica 1

Page 5: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-7083915

▪ Communication-computation imbalance

▪ You spend more time communicating than doing useful work!

▪ Bandwidth-dominated regime

▪ Existing work more focused on heterogeneous cloud infrastructure, not HPC

Why is this hard?

Page 6: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-7083916

Quantization

▪ Map a large set of values to a smaller set

▪ Quantized data is reconstructed using a pre-computed dictionary

▪ Introduces some amount of quantization error

▪ In our case: map 32-bit floats (gradient updates) to 1 bit

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Page 7: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-7083917

▪ Trade increased (local) computation for reduced data movement

▪ Existing approaches:

▪ One-bit quantization [F. Seide et al. 1-bit stochastic gradient descent and its application to data-parallel distributed training of speech DNNs. INTERSPEECH 2014]

▪ Threshold quantization [N. Strom. Scalable distributed DNN training using commodity GPU cloud computing. INTERSPEECH 2015]

▪ New: Adaptive quantization

Quantization algorithms

Page 8: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-7083918

▪ Aggressively quantize every update to 1 bit

▪ Compute column-wise means of non-negative/negative gradient updates

▪ Gradient updates ≥ 0 → µ+ Gradient updates < 0 → µ-

▪ Encoded as a 0 or 1 bit, data volume reduced 32x with packing

▪ Introduces error feedback to correct quantization error

One-bit quantization

Page 9: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-7083919

One-bit quantization: visual

dW0,0 … …

dW1,0

dW2,0

µ+ / µ-

Neu

rons

Features

Page 10: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-70839110

▪ Aggressive quantization introduces error

▪ Ignoring it leads to poor models or divergence

▪ Instead retain the quantization error locally and add it to the gradient updates in the next mini-batch before quantization

▪ Ensures the full gradient signal is—eventually—used, just over multiple updates

Error feedback

Page 11: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-70839111

▪ Instead of sending every update, send only the largest

▪ User chooses a fixed threshold τ in advance

▪ Gradient updates ≥ τ → τGradient updates ≤ -τ → -τ

▪ Encoded as 0 or 1 bit

▪ Error feedback used to reduce error

▪ Other updates are fed into error feedback but not used

▪ Updates are now sparse: each quantized gradient is sent as a 31-bit index and a 1-bit quantized value

Threshold quantization

Page 12: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-70839112

Threshold quantization: visual

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

τ

Page 13: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-70839113

▪ Motivation

1. Threshold quantization can be fast with a good τ

2.… But τ is hard to choose in practice

3.… And τ/-τ are not great reconstruction values

4.One-bit quantization seems to be more consistent

5. And has no parameters to choose

▪ Adaptive quantization tries to get the best of both worlds

Adaptive quantization

Page 14: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-70839114

▪ User chooses a fixed proportion of updates to send

▪ Algorithm determines the appropriate thresholds τ+, τ- to achieve this

▪ Then determines the mean µ+ of the updates greater than τ+ and the mean µ- of the updates less than τ-

▪ Gradient updates ≥ τ+ → µ+ Gradient updates < τ- → µ-

▪ Error feedback used to reduce error

▪ Updates are sparse and use the same format as threshold quantization

Adaptive quantization

Page 15: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-70839115

▪ One-bit and adaptive:

▪ Approximate some computations using random sampling

▪ Threshold and adaptive:

▪ Delta and Golomb-Rice coding for additional compression to reduce data volume

Additional optimizations

Page 16: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-70839116

▪ Key communication operation for updates

▪ MPI_Allreduce is good in theory, but not in practice

▪ Uses default algorithm with custom datatypes

▪ Troublesome to associate reconstruction dictionaries

▪ Does not handle changing data sizes well

▪ Implement using pairwise exchange reduce-scatter then ring-based allgather

▪ O((p-1/p)nβ) versus O(nlog(p)β) (default) bandwidth

▪ [R. Thakur et al. “Optimization of collective communication operations in MPICH.” IJHPC, 2005]

Allreduce

Page 17: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-70839117

Quantization benchmark

▪ Uniformly random square matrices

▪ 128 nodes, 2 processes/node

▪ Simulates gradient updates with 128-way data parallelism

▪ Adaptive quantization superior for large matrices: 1.76x faster for largest matrix

Page 18: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-70839118

▪ MNIST handwritten digit dataset

▪ 3 4096-neuron fully-connected hidden layers

▪ ReLU activations

▪ Adagrad optimizer

▪ 16 nodes, 192 ranks

▪ 4-way data parallelism

▪ 48-way model parallelism

Test setup

Page 19: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-70839119

Data volume reduction

▪ Bytes sent in each mini-batch during training

▪ Adaptive quantization closely follows one-bit quantization (expected)

▪ Threshold quantization is degenerate and sends very little data (using best τ we found)

Page 20: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-70839120

Communication time

▪ Total time spent in the allreduce in each mini-batch

▪ Times in line with the quantization benchmark

▪ Threshold quantization sends very little data, so is much faster

Page 21: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-70839121

Accuracy

▪ Important that quantization does not degrade accuracy

▪ Normal, one-bit, and adaptive quantization lead to comparable accuracies

▪ Threshold accuracy is comparable to that of a single model replica

Test accuracy (%) after 20 epochs

Normal 98.51One-bit 98.49

Threshold 98.12Adaptive 98.53

Page 22: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-70839122

Layer scaling

▪ Increase neurons in each layer: 1.18x faster for largest layer

▪ Validates the quantization benchmark in a more realistic training situation

▪ Adaptive quantization has the advantage for larger problems

Page 23: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural

LLNL-PRES-70839123

▪ Bandwidth reduction through quantization and custom communication routines help scale data parallel training

▪ Adaptive quantization is fast and easy to tune

▪ Next steps:

▪ Further optimization

▪ Convolutional layers and GPUs

▪ Larger datasets (ImageNet)

Discussion

Page 24: Communication Quantization for Data- parallel Training of ...ornlcda.github.io/MLHPC2016/papers/3_Dryden.pdf · Communication Quantization for Data-parallel Training of Deep Neural