高性能计算技术也能助推大规模深度学习(百度实践)

更多深度文章,请关注:https://yq.aliyun.com/cloud

作者简介:

Tiffany
Trader
,毕业于圣地亚哥州立大学和加州州立大学,长期致力于高性能计算、云计算、绿色计算新闻报道和分析,2015年开始担任全球知名高性能计算新闻网站HPCwire的总编辑。Tiffany
Trader 的LinkedIn主页Twitter主页

    来自百度硅谷人工智能实验室(SVAIL)的研究人员改进了众所周知的HPC通信技术,提升了通信速度,并且扩大了他们的神经网络训练规模,今天,在知名深度学习社区分享了他们的实现。

    百度改进的这个技术就是OpenMPI算法ring
all-reduce,在百度的语音识别模型(Deep
Speech 2,建立在多个GPU计算节点之上)并行训练中使用了ring
all-reduce算法,百度在今年2月开源了两个软件包,一个是baidu-allreduce c库(一个小型C++库),另一个是tensorflow-allreduce(给tensorflow0.12.1打了一个补丁),使用tensorflow建立的模型可以使用这个新的版本,利用它的跨多设备并行处理能力。相关代码托管在GitHub上,有兴趣的读者点击前面的链接即可。

    百度的SVAIL团队大约两年前开始在他们内部的深度学习框架(名叫Gene
and Majel,为了向著名的星际旅行创立者Gene
Roddenberry和他的第二任妻子Majel
Barrett致敬)上使用这个算法,百度研究人员表示,在HPC领域,大家对这个算法早已是老生常谈,但在人工智能和深度学习领域,这个算法却未被充分利用。

    SVAIL团队成员大都来自高性能计算领域。百度研究科学家Shubho
Sengupta说:“ring
all-reduce算法其实是OpenMPI的一部分,但OpenMPI本身并不是很快,我们在刚用它来进行训练时遇到了不少问题,我们发现它的伸缩能力有限,但我们又很想让它具有良好的伸缩性,因此我们决定研究它的源代码,最终发现这个算法的效率不高,我们就重新实现了这个算法”。

    SVAIL研究人员重写的ring
all-reduce算法性能更好,也更稳定,与OpenMPI最大的差别是,SVAIL实现的算法避免了CPU和GPU之间额外的副本传输。

    Sengupta解释,“OpenMPI在这些矩阵通信时,如果矩阵在GPU内存中,它实际上会复制一份到CPU内存中,这种做法是非常浪费资源的,实际上可以不用复制,只需要编写一个小的内核来减少GPU内存空间即可,当你在一个节点内执行all-reduce,并且所有GPU都在一个PCI根复合体中时这种方法特别有用,在GPU内存空间就可以完成一切任务,就是这么一个简单的想法,最终我们的算法实现比OpenMPI自身的要快得多”。

Ring all-reduce,所有GPU同时发送数据

    SVAIL除了在算法实现上有突破外,他们还注重高速网络(InfiniBand)和软硬一体设计,最终使GPU纵向扩展到128个,具体细节请查阅2015年12月SVAIL团队发布的论文“Deep Speech 2:中英文端到端语音识别”。通过对ring
all-reduce算法的改进,与OpenMPI(v1.8.5)相比,百度SVAIL团队在同等GPU数量的情况下,将速度提升了2.3-21.4倍。

    Sengupta表示,GPU数量很少时速度是最快的,“8颗GPU是快大约20倍,睡着GPU数量的增加,性能反而会有所下降,因为必须通过网络将数据发送给CPU,但在我们内部的框架上,我们可以将GPU数量扩大到128颗,实现线性扩展”。

两种all-reduce算法实现的性能对比(单位:秒)

    Deep Speech 2论文发布后,SVAIL团队开始收到来自社区想了解实现细节的请求,由于这个算法与SVAIL的深度学习框架专利结合得太紧密了,因此,他们就创建了两种实现方法,一个是针对TensorFlow的,另一个就是更通用的。

    领导TensorFlow补丁工作的Gibiansky阐述了他们多管齐下传播信息的方法,“看看这篇博客你就知道了,如果你在使用TensorFlow,可以使用我们提交的补丁版本来训练你的模型,如果你是深度学习的作者,你可以看看我们的C库,并集成它,通过我们内部的尝试结果来看还是非常成功的,我们希望让更多的人受益于此”。

    Sengupta就深挖HPC技术用于深度学习分享了一个有趣的观点, “搞深度学习的人总认为MPI是一项过时的技术,并且好像和深度学习也没什么关系,但我认为使用MPI也可以搭建非常快的集合,并且支持同步梯度下降,使收敛速度更快,不需要用到异步梯度下降就能得到结果”。

    关于百度ring
all-reduce算法的详细解释,请看百度研究院的这篇博客文章,对于百度开源的深度学习框架PaddlePaddle来说,它还使用了其它大量的技术来保证高性能节点的扩展,有兴趣的同学可以到PaddlePaddle的主页去看看。

 

以上为译文。

文章原标题《HPC Technique Propels Deep Learning at Scale

作者:Tiffany Trader,译者:耕牛的人,审校:身形。

文章为简译,更为详细的内容,请查看原文

 

时间: 2024-10-02 04:31:12

高性能计算技术也能助推大规模深度学习(百度实践)的相关文章

大规模深度学习优化技术在PAI平台中的应用及实践

1. 前言 自2012年Deep Learning的代表模型AlexNet在ImageNet大赛中力压亚军,以超过10个百分点的绝对优势夺得头筹之后,依托于建模技术的进步.硬件计算能力的提升.优化技术的进步以及海量数据的累积,Deep Learning在语音.图像以及文本等多个领域不断推进,相较于传统作法取得了显著的效果提升.   工业界和学术界也先后推出了用于Deep Learning建模用途的开源工具和框架,包括Caffe.Theano.Torch.MXNet.TensorFlow.Chai

Google首席科学家韩国大学演讲:大规模深度学习

2016年3月7日,谷歌首席科学家,MapReduce.BigTable等系统的创造者,Jeff Dean受邀韩国大学,演讲主题<大规模深度学习>,这里部分来自highscalability的文字和笔者Youtube上的听录.刚好演讲在AlphaGo和李世石比赛之前,观众也问了他的预测,他只是说训练了5个月的机器跟顶尖高手的差距不好说:还有人问道他喜欢的编程语言(C++爱恨交织,喜欢Go的简洁,Sawzall才是真爱):在Google作为首席一天是怎么过的(要吃好早饭,到处闲逛闲聊,找到那些每

IBM推出云深度学习图形芯片Tesla P100 GPU加速器

IBM加大云托管服务力度,日前宣布推出Nvidia 的Tesla P100 图形处理器(GPU),成为在云里提供Tesla P100 图形处理器的第一大云提供商. IBM在旗下的云平台上推出Tesla P100 GPU,标志着企业可以更迅速.更有效地用Nvidia的加速技术运行大型计算工作负载,如人工智能.深度学习和高性能数据分析等. Nvidia GPU与服务器的中央处理器(CPU)一起可以提高应用程序的性能,因此大型计算数据工作负载可以更快.更高效地运行.各种不同的领域用了GPU后取得突破性

如何在实战路上与时俱进:深度学习最佳实践

自2006年Hinton提出神经网络新的训练方法起,深度学习发展迅速,促使人工智能在图像.语音.自然语言处理等多个领域有了实质性的突破,达到产业应用标准.然而,深度学习作为人工智能领域的一项前瞻技术,实践性强,入门门槛高,关于深度学习的研究与应用,现在仍有很多问题没有找到满意的答案,这些都给深度学习的广泛应用带来挑战.本文旨在提供一份清晰.简洁的深度学习实践说明,以便从事深度学习研究与工程技术人员能够快速掌握深度学习的实际经验. 第一节:深度学习概述 深度学习是模拟人脑进行分析学习的多层神经网络

干货 | 深度学习的实践应用之路

雷锋网按:本文由图普科技编译自<Applying Deep Learning to Real-world Problems>,雷锋网(公众号:雷锋网)独家首发. 近年来,人工智能的崛起可以说是得益于深度学习的成功.驱动深度神经网络突破的三个主要因素分别是:海量的训练数据.强大的计算架构和学术领域的相关进展.因此,深度学习在图像分类.面部识别等任务的表现上不仅超越了传统方法,还超越了人类水平.这一切都为那些使用深度学习解决实际问题的新业务创造了巨大的发展潜力. 在位于柏林的Merantix总部,

【Spark Summit East 2017】使用机器学习注释器和大规模深度学习本体进行语义自然语言理解

本讲义出自David Talby在Spark Summit East 2017上的演讲,主要介绍了一个通过自由文本格式的病人记录给出临床诊断推理和实时的参考意见的端到端系统,该系统的架构是构建在Kafka与Spark Streaming之上的,该系统可以实时地对于数据进行获取和加工,并使用Spark & MLLib进行建模,并通过Elasticsearch使得用户可以低延迟地对于结果进行访问.

深度学习必备手册(下)

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud 请收下这份关于人工智能的根目录--博客整理系列(一) 关于数据科学的那些事--博客整理系列(二) 机器学习必备手册--博客整理系列(三) 扩展眼界的都在这--博客整理系列(四) 深度学习必备手册(上)--博客整理系列(五) 深度学习的概念源于人工神经网络的研究,如果追溯深度学习的概念还是要回到2006年Hinton那篇论文,基于深信度网(DNB)提出非监督贪心逐层训练算法,未解决深层结构相关的优化难题出现的论

基于Hadoop集群的大规模分布式深度学习

前言 在过去的十年里,Yahoo一直持续投资建设和扩展Apache Hadoop集群,到目前为止共有超过4万台服务器和600PB数据分布在19个集群上.正如在2015 Hadoop 峰会上介绍的,我们在自己的服务器上开发了可扩展的机器学习算法,用于分类.排序和计算词向量.目前,Hadoop集群已成为Yahoo大规模机器学习的首选平台. 深度学习(Deep Learning, DL)是雅虎很多产品的核心技术需求.在2015 RE.WORK深度学习峰会上,Yahoo Flickr团队(Simon O

浪潮胡雷钧: KNL+FPGA是加速深度学习的黄金搭档

8月17日,在美国旧金山举行的英特尔信息技术峰会(Intel Developer Forum,简称IDF)上,浪潮首席科学家胡雷钧进行了先进技术报告演讲,他结合当前深度学习应用特点和先进计算技术架构进行分析,认为KNL+FPGA是加速深度学习的黄金搭档.   深度学习在人脸识别.语音识别.精准医疗以及无人驾驶等领域被广泛的应用,近年来在高性能计算技术的支持下,其发展十分迅速.然而,深度学习的发展也面临着众多困境,如深度学习软件扩展性不够高.计算性能不够高.深度学习线上识别能耗大等问题. 在多年的