高性能计算技术也能助推大规模深度学习

栏目: 编程工具 · 发布时间: 7年前

内容简介:高性能计算技术也能助推大规模深度学习

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(给tensorflow 0.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的主页去看看。

高性能计算技术也能助推大规模深度学习

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Lighttpd

Lighttpd

Andre Bogus / Packt Publishing / 2008-10 / 39.99

This is your fast guide to getting started and getting inside the Lighttpd web server. Written from a developer's perspective, this book helps you understand Lighttpd, and get it set up as securely an......一起来看看 《Lighttpd》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具