Pipe-BD: Pipelined Parallel Blockwise Distillation

Hongsun Jang, Jaewon Jung, Jaeyong Song, Joonsang Yu, Youngsok Kim +1 more
1/29/2023
cs.LGcs.DC

No official code found. Best implementation: hongsunjang/pipe-bd (12 stars, MIT, last commit 2023-07-13).

Abstract

Training large deep neural network models is highly challenging due to their tremendous computational and memory requirements. Blockwise distillation provides one promising method towards faster convergence by splitting a large model into multiple smaller models. In state-of-the-art blockwise distillation methods, training is performed block-by-block in a data-parallel manner using multiple GPUs. To produce inputs for the student blocks, the teacher model is executed from the beginning until the current block under training. However, this results in a high overhead of redundant teacher execution, low GPU utilization, and extra data loading. To address these problems, we propose Pipe-BD, a novel parallelization method for blockwise distillation. Pipe-BD aggressively utilizes pipeline parallelism for blockwise distillation, eliminating redundant teacher block execution and increasing per-device batch size for better resource utilization. We also extend to hybrid parallelism for efficient workload balancing. As a result, Pipe-BD achieves significant acceleration without modifying the mathematical formulation of blockwise distillation. We implement Pipe-BD on PyTorch, and experiments reveal that Pipe-BD is effective on multiple scenarios, models, and datasets.

View on arXivView PDF

Code Implementations(1)

hongsunjang/pipe-bdCommunity100%
MIT

[DATE 2023] Pipe-BD: Pipelined Parallel Blockwise Distillation

121Shell, PythonJan 23, 20233 years agoMIT

Similar Papers

Cite this paper

@article{jang2023pipebd,
  title  = {Pipe-BD: Pipelined Parallel Blockwise Distillation},
  author = {Hongsun Jang and Jaewon Jung and Jaeyong Song and Joonsang Yu and Youngsok Kim and Jinho Lee},
  year   = {2023},
  eprint = {2301.12443},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2301.12443v1}
}

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/2301.12443.svg)](https://codeofpaper.com/paper/2301.12443)

Discussion