本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

【j2开奖】「人工智能研学社· ML系统与架构小组」第一期:如何在单块GPU上训练超大型深度学习模型(2)

时间:2017-04-16 18:14来源:本港台现场报码 作者:118开奖 点击:
在后向过程中,vDNN 采用一种更具侵略性的策略,这是由于相较于特征图,梯度图不存在「稍后重用」的问题。因此一旦生成了相关的权值更新,它们就可

在后向过程中,vDNN 采用一种更具侵略性的策略,这是由于相较于特征图,梯度图不存在「稍后重用」的问题。因此一旦生成了相关的权值更新,它们就可以被释放(相较于那些映射,这些权值更新是很小的)。

优化策略:内存管理器 CUDA 流

vDNN 实现的关键是使用一个 cuda 流来管理内存分配/释放、卸载和预取。以下是一些细节:

传统的 cuda 内存分配/释放(cudaMalloc & cudaFree)是同步性 API。由于这两个操作随着训练过程需要不断地被执行,同步性 API 并不够高效。

如同分配/释放操作,卸载 API 也需要是异步性的。当 vDNN 选择卸载特征图的一个张量时,vDNN 的内存管理器流(memory manager stream of vDNN)将在主机上分配一个页锁定的内存区域,并且通过 PCIe 发出一个非阻塞传输(a non-blocking transfer)将其传输至 CPU。这些特征图张量在正向过程中为只读的,因此这个传输过程可以在计算中被安全地覆盖。当依赖于其传输和计算都完成后,相关的张量可以被释放。只有当前层的卸载完成时,才能进行下一层的处理。

预取操作是在反向处理中从 CPU 返回到 GPU 以得到之前被卸载的特征图。和上面的操作类似,预取操作也需要是异步性的。由于在预取和相同层的计算之间存在数据依赖,vDNN 将同时异步开始当前层的计算以及前一层的预取。

成本:为了节省内存的性能损失在哪里?

最显著的潜在性能损失来自于由卸载/预取引入的隐式依赖(implicit dependency)。我们考虑这样一种情况:当数据传输比正向计算需要花费更长的时间时,卸载/预取操作将会带来性能损失。下图表清晰地表明这种情况(图 9:卸载和预取的性能影响 (Minsoo Rhu et al. 2016))

  

【j2开奖】「人工智能研学社· ML系统与架构小组」第一期:如何在单块GPU上训练超大型深度学习模型

相似情形也可能在反向过程中发生。

问题的形式化:在限制内存预算的情况下,如何获得最佳性能?

如上所述,在时间和空间之间有一个权衡,并且在前的章节中我们已经看到这个权衡是产生作用的。想象一下你正在 12GB 的 GPU 上使用 128 的批量(这需要 14GB 内存如果没有使用卸载/预取)训练 VGG-16。假设我们可以使用上面提到的想法,把内存使用压缩到只有 2GB,那么仅使用了大约 2GB 的内存也许很浪费,因为你本可以利用空闲的 10GB 空间来减少性能损失(这里忽略能耗方面的成本)。因此,我们可以这种方式重新形式化这个问题:在限制内存预算的情况下,如何获得最佳性能?

配置时间-空间权衡:决定一个层是否应该被卸载/预取(offloaded/prefetched),以及应该选择哪种卷积算法。

从这个问题的形式化中我们可以看出,我们往往并不需要把内存使用压缩到极致,有些层完全可以不被卸载/预取。为了取得最佳配置,我们需要为每个层决定两件事:一个是我们是否需要卸载/预取,一个是我们在前向/反向传播过程中该选择哪个算法(更快收敛的算法需要更大的存储空间)。

通常,靠近输入的层有较长重用度(reuse)距离。因此,首先卸载/预取这些层比较好。于是,我们并不需要为每一层决定是否使用(这个选择总量随层级数成指数增长)。我们只需要选择一层作为基准,与之相比更加靠近输入层的都进行卸载/预取,其余层将其张量保留在 GPU 上。

为每层决定算法也并不可行(同样选择总量随层级数成指数增长)。我们可以通过例如强制多层使用相同的算法(gemm 或 fft 等算法)来缩小我们的可选备用空间。这将原本指数级大小的选择数降为线性大小。

经过上面的处理,现在我们的配置选择空间已经足够小,这样我们可以尽情搜索以确定最佳配置方案。下面的图表说明了我们的配置空间:

  

【j2开奖】「人工智能研学社· ML系统与架构小组」第一期:如何在单块GPU上训练超大型深度学习模型

左上角表示最节省内存的配置(卸载/预取每一层,并使用最慢的算法),右下角表示性能最优的配置(当然,真实的配置空间应该是网格,可行模型与不可行模型之间的边界应改成阶梯状,不过这一图表足以表明整个搜索空间的大致分布特征)。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容