热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

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

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

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的主页去看看。

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

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


推荐阅读
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 图像分割技术在人工智能领域中扮演着关键角色,其中语义分割、实例分割和全景分割是三种主要的方法。本文对这三种分割技术进行了详细的对比分析,探讨了它们在不同应用场景中的优缺点和适用范围,为研究人员和从业者提供了有价值的参考。 ... [详细]
  • 在稀疏直接法视觉里程计中,通过优化特征点并采用基于光度误差最小化的灰度图像线性插值技术,提高了定位精度。该方法通过对空间点的非齐次和齐次表示进行处理,利用RGB-D传感器获取的3D坐标信息,在两帧图像之间实现精确匹配,有效减少了光度误差,提升了系统的鲁棒性和稳定性。 ... [详细]
  • 深入解析 Unity URP/SRP 渲染管线:匠心打造的全面指南
    本文深入探讨了Unity中的URP、SRP和HDRP渲染管线,详细解析了它们之间的关系及各自的特点。首先介绍了SRP的基本概念及其在Unity渲染架构中的作用,随后重点阐述了URP和HDRP的设计理念与应用场景。文章还分析了SRP诞生的背景,解释了为何Unity需要引入这一灵活的渲染框架,以满足不同项目的需求。通过对比URP和HDRP,读者可以更好地理解如何选择合适的渲染管线,以优化项目的性能和视觉效果。 ... [详细]
  • 本文提供了PyTorch框架中常用的预训练模型的下载链接及详细使用指南,涵盖ResNet、Inception、DenseNet、AlexNet、VGGNet等六大分类模型。每种模型的预训练参数均经过精心调优,适用于多种计算机视觉任务。文章不仅介绍了模型的下载方式,还详细说明了如何在实际项目中高效地加载和使用这些模型,为开发者提供全面的技术支持。 ... [详细]
  • 如何在Linux系统中部署TensorFlow的详细指南
    本文详细介绍了在Linux系统中部署TensorFlow的过程。作者基于北京大学曹建教授的MOOC课程进行学习,但由于课程内容较旧,环境配置方面遇到了不少挑战。经过多次尝试,最终成功解决了这些问题,并总结了一套详细的安装指南,帮助初学者快速上手TensorFlow。 ... [详细]
  • 基于TensorFlow的鸢尾花数据集神经网络模型深度解析
    基于TensorFlow的鸢尾花数据集神经网络模型深度解析 ... [详细]
  • 超分辨率技术的全球研究进展与应用现状综述
    本文综述了图像超分辨率(Super-Resolution, SR)技术在全球范围内的最新研究进展及其应用现状。超分辨率技术旨在从单幅或多幅低分辨率(Low-Resolution, LR)图像中恢复出高质量的高分辨率(High-Resolution, HR)图像。该技术在遥感、医疗成像、视频处理等多个领域展现出广泛的应用前景。文章详细分析了当前主流的超分辨率算法,包括基于传统方法和深度学习的方法,并探讨了其在实际应用中的优缺点及未来发展方向。 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 在Windows命令行中,通过Conda工具可以高效地管理和操作虚拟环境。具体步骤包括:1. 列出现有虚拟环境:`conda env list`;2. 创建新虚拟环境:`conda create --name 环境名`;3. 删除虚拟环境:`conda env remove --name 环境名`。这些命令不仅简化了环境管理流程,还提高了开发效率。此外,Conda还支持环境文件导出和导入,方便在不同机器间迁移配置。 ... [详细]
  • 自回归与非自回归模型如何融合?预训练模型BANG提供可能解决方案
    近年来,预训练技术的快速发展显著提升了自然语言生成的性能。然而,自回归模型和非自回归模型在生成质量和效率上各有优劣。微软研究院提出了一种新的预训练模型BANG,通过巧妙地结合两者的优点,提供了一种有效的解决方案。该模型不仅在生成质量上表现出色,还在推理速度上实现了显著提升,为自然语言生成任务带来了新的可能性。 ... [详细]
  • 【高效构建全面的iOS直播应用】(美颜功能深度解析)
    本文深入探讨了如何高效构建全面的iOS直播应用,特别聚焦于美颜功能的技术实现。通过详细解析美颜算法和优化策略,帮助开发者快速掌握关键技术和实现方法,提升用户体验。适合对直播应用开发感兴趣的开发者阅读。 ... [详细]
  • 本文详细介绍了在Windows操作系统上使用Python 3.8.5编译支持CUDA 11和cuDNN 8.0.2的TensorFlow 2.3的步骤。文章不仅提供了详细的编译指南,还分享了编译后的文件下载链接,方便用户快速获取所需资源。此外,文中还涵盖了常见的编译问题及其解决方案,确保用户能够顺利进行编译和安装。 ... [详细]
  • TensorFlow中文社区—下载与安装 转自:http:www.tensorfly.cntfdocget_startedos_setup.html下载与安装你可以使用我们提供的二 ... [详细]
  • PyThon_Swift 势必取代 Python?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Swift势必取代Python?相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
choojo深呼吸
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有