Horovod: fast and easy distributed deep learning in TensorFlow
It provides a practical solution for researchers and engineers to scale deep learning training efficiently with minimal effort, though it is incremental as it builds on existing distributed training concepts.
The paper tackles the problem of high communication overhead and code modification complexity in distributed deep learning with TensorFlow by introducing Horovod, a library that uses ring reduction for efficient inter-GPU communication and requires only minimal code changes, achieving up to 90% scaling efficiency on 256 GPUs.
Training modern deep learning models requires large amounts of computation, often provided by GPUs. Scaling computation from one GPU to many can enable much faster training and research progress but entails two complications. First, the training library must support inter-GPU communication. Depending on the particular methods employed, this communication may entail anywhere from negligible to significant overhead. Second, the user must modify his or her training code to take advantage of inter-GPU communication. Depending on the training library's API, the modification required may be either significant or minimal. Existing methods for enabling multi-GPU training under the TensorFlow library entail non-negligible communication overhead and require users to heavily modify their model-building code, leading many researchers to avoid the whole mess and stick with slower single-GPU training. In this paper we introduce Horovod, an open source library that improves on both obstructions to scaling: it employs efficient inter-GPU communication via ring reduction and requires only a few lines of modification to user code, enabling faster, easier distributed training in TensorFlow. Horovod is available under the Apache 2.0 license at https://github.com/uber/horovod