gpu并行和openmp联合_训练速度提升超3倍!斯坦福推出全新深度学习并行计算框架FlexFlow...

e8c485345f8aab18db63c3028622853e.png 作者 | Zhihao Jia, Matei Zaharia, Alex Aiken 编译 | Alex 编辑 | Linda AI 前线导读:现有的深度学习框架通常使用模型并行或数据并行来解决深度神经网络(DNN)的并行计算问题,但这两种策略往往会导致模型无法达到最优结果。今年 ACM 的 SysML 大会上,斯坦福大学 Matei 团队在论文《Beyond Data and Model Parallelism for Deep Neural Networks》中提出了一种新的 DNN 并行化策略搜索空间——SOAP。SOAP 从样本(Sample)、运算符(Operator)、属性(Attribute)以及参数(Parameter)四个维度度寻找更好的 DNN 并行化策略。
为了加速这个搜索过程,该论文同时提出了一个新的深度学习引擎——FlexFlow。 与目前最先进的方法相比,FlexFlow 能够将训练吞吐量提高 3.3 倍并且可以达到更高的精度。 作者还比较了 FlexFlow 和 TensorFlow 在 Inception-V3 上进行端到端训练时的性能, FlexFlow 比 TensorFlow 减少了 38% 的训练时间。我们对该方法做了梳理与总结,本文是 AI 前线第 82 篇论文导读。 更多优质内容请关注微信公众号“AI 前线”(ID:ai-front) 1 背景介绍

随着深度学方法的发展,DNN 模型变得越来越大,这导致了 DNN 的计算成本也变得越来越高。因此,对于 DNN 的实际应用,分布式异构 DNN 训练集群成为了标准化的做法。尽管深度学习模型以及硬件集群变得越来越复杂,但是用于并行化训练的框架(例如,TensorFlow、Caffe2 以及 MXNet)却仅用了一些简单的并行化方法,并且其优化结果往往并不是最理想的。

最常用的神经网络并行化可分为数据并行和模型并行。数据并行的基本思想是使用多个设备上的模型副本同时对数据子集进行训练,并在迭代结束时同步跨副本的模型参数。数据并行对于计算密集型且参数量少的运算具有高效性,例如卷积操作。但对于参数量大的运算操作则不能得到最优的结果,例如嵌入操作。而模型并行则是让分布式系统种不同的设备负责网络模型的不同部分,例如将卷积操作分给一部分 GPU 而嵌入操作分给另一部分 GPU 或 CPU 设备。

254fe58e96c10d0017645de23dcffb92.png图 1:左半部分为模型并行,不同的机器负责模型中的不同运算模块;右图为数据并行,在不同的设备上创建了完整的模型副本对数据子集进行处理。

去年的 PMLR 上,这篇论文的作者 Zhihao Jia 就提出了一种基于线性计算图的 CNN 逐层并行化方法——OptCNN(相关文献:https://arxiv.org/pdf/1802.04924.pdf)。OptCNN 使用动态编程的方法联合优化每种运算,但是没有考虑不同运算之间的并行性。此外,OptCNN 不适用于大部分的语言模型,包括针对机器翻译、推荐系统等趋向于 RNN 或其他非线性的深度神经网络。

针对上述问题,SOAP 从扩展搜索空间和模拟运行两方面出发,与现有的 Metropolitan-Hastings 马尔可夫蒙特卡洛方法(MCMC)相结合寻找模型在并行系统下的最优解。其中,作者通过扩展可行解集合的方法将模型的最优化搜索空间扩展为 SOAP 搜索空间,以期在更多可能的潜在并行策略中寻找最优的一种情况。此外,使用 FlexFlow 构建的执行模拟器(execution simulator)可以在 S

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值