[论文解读] Virtualizing Deep Neural Networks for Memory-Efficient Neural Network Design
本文提出了一种运行时内存管理器——虚拟化深度神经网络(vDNN),通过在GPU和CPU内存之间透明地卸载激活值,实现了对更大规模深度神经网络(DNN)的训练,将内存使用量最高降低83%,并使在单张12 GB GPU上训练批量大小为256的VGG-16成为可能,仅造成与内存容量匹配系统相比22%的性能损失。
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 memory usage of AlexNet by 61% and OverFeat by 83%, 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 K40 GPU card containing 12 GB of memory, with 22% performance loss compared to a hypothetical GPU with enough memory to hold the entire DNN.
研究动机与目标
- 为克服GPU内存容量限制,这些限制会制约训练过程中深度神经网络(DNN)的规模和批量大小。
- 实现在内存受限(如12 GB)的单张GPU上训练更大、更深的DNN(如VGG-16)而无需多GPU配置。
- 通过自动化管理GPU和CPU内存空间中的内存,减少对手动内存调优和架构折衷的需求。
- 在将中间激活值卸载至CPU内存的同时保持高训练效率,最大限度减少性能下降。
提出的方法
- vDNN系统通过动态管理内存,在训练过程中识别并将其不常访问的激活值从GPU内存卸载至CPU内存。
- 它使用运行时内存管理器,监控内存访问模式,并应用虚拟内存抽象,将GPU和CPU内存视为统一的地址空间。
- 该系统采用基于页的内存管理策略,类似于操作系统的虚拟内存机制,实现DNN激活张量在GPU和CPU内存之间的交换。
- 该方法可与现有深度学习框架无缝集成,无需重写模型,从而实现透明的内存虚拟化。
- 该方法利用了并非所有激活值都需同时存在的事实,基于访问频率选择性地驱逐和检索张量。
实验结果
研究问题
- RQ1能否有效将虚拟内存抽象应用于深度神经网络训练,以减轻GPU内存压力?
- RQ2在不产生不可接受的性能成本的前提下,通过将激活值卸载至CPU内存,DNN中的内存使用量可降低到何种程度?
- RQ3该方法能否使如VGG-16这类内存密集型大型模型在单张内存受限的GPU上训练?
- RQ4在相同条件下,虚拟化DNN的性能与完全驻留在GPU上的版本相比如何?
主要发现
- vDNN通过智能地将激活值卸载至CPU内存,将AlexNet的平均内存使用量降低了61%。
- 对于OverFeat,内存降低幅度达到83%,显著减少了GPU内存占用。
- vDNN使在仅配备12 GB内存的单张NVIDIA K40 GPU上训练批量大小为256的VGG-16成为可能(该模型原本需要28 GB GPU内存),性能达到内存容量匹配系统的78%。
- 与具备足够内存的理想GPU相比,内存虚拟化导致的性能损失为22%,证明了该方法的实用可行性。
- 该方法使研究人员无需进行架构折衷或使用多GPU配置,即可探索更大规模的模型和更大的批量大小。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。