vDNN: Virtualized deep neural networks for scalable, memory-efficient neural network design

Minsoo Rhu, Natalia Gimelshein, Jason Clemons, Arslan Zulfiqar, Stephen W. Keckler

2016 · 330 citations · 34 references

Concepts

TL;DR

Current deep learning frameworks require users to tune memory so that a DNN fits into GPU DRAM, limiting flexibility and forcing the use of suboptimal architectures or multi‑GPU setups. This work proposes a runtime memory manager that virtualizes DNN memory usage. The manager allows simultaneous use of GPU and CPU memory during training, enabling larger networks to fit within a single device. The resulting vDNN reduces GPU memory usage by up to 95% on AlexNet, OverFeat, and GoogLeNet, and enables training of VGG‑16 with batch size 256 on a single 12 GB Titan X with only an 18% performance loss compared to an ideal GPU.

Abstract

The most widely used machine learning frameworks require users to carefully tune their memory usage so that the deep neural network (DNN) fits into the DRAM capacity of a GPU. This restriction hampers a researcher's flexibility to study different machine learning algorithms, forcing them to either use a less desirable network architecture or parallelize the processing across multiple GPUs. We propose a runtime memory manager that virtualizes the memory usage of DNNs such that both GPU and CPU memory can simultaneously be utilized for training larger DNNs. Our virtualized DNN (vDNN) reduces the average GPU memory usage of AlexNet by up to 89%, OverFeat by 91%, and GoogLeNet by 95%, a significant reduction in memory requirements of DNNs. Similar experiments on VGG-16, one of the deepest and memory hungry DNNs to date, demonstrate the memory-efficiency of our proposal. vDNN enables VGG-16 with batch size 256 (requiring 28 GB of memory) to be trained on a single NVIDIA Titan X GPU card containing 12 GB of memory, with 18% performance loss compared to a hypothetical, oracular GPU with enough memory to hold the entire DNN.

References

34