前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前沿 | 18000块GPU的深度学习机器:橡树岭实验室即将推出Summit超级计算机

前沿 | 18000块GPU的深度学习机器:橡树岭实验室即将推出Summit超级计算机

作者头像
机器之心
发布2018-05-07 11:56:46
6940
发布2018-05-07 11:56:46
举报
文章被收录于专栏:机器之心机器之心

选自Nextplatform

作者:Nicole Hemsoth

机器之心编译

参与:黄小天、李泽南

美国橡树岭国家实验室的「Titan」超级计算机是「美洲虎」的继任者。它由 18688 块 AMD Opteron 6274 16 核 CPU 与 18688 块英伟达 Tesla K20X GPU 组成,在世界超级计算机性能排名中位列第三(17590 TFlop/s,2016 年 11 月排名)。在近几年的发展中,该实验室的研究小组一直致力于使用多 GPU 优化深度神经网络的计算,为深度学习任务提供优化。橡树岭实验室的探索为机器学习硬件架构的发展指出了一个方向,在 Titan 之后,这家实验室正计划在 2017 年底推出「Summit」超级计算机。

在单个 GPU 或在带有 4 到 8 个 GPU 的单个系统上部署(scale)神经网络是一件事;但是让其通过数千个节点,却完全是另外一件事。绝大多数深度学习研究中心具备用来训练的相对较小的 GPU 集群,但肯定没有橡树岭国家实验室的 Titan 超级计算机这样的庞然大物。

过去在单一模型的运行中,对机器学习部署性(scalability)的强调经常聚焦在节点数量上。这对一些应用有帮助,但是随着神经网路逐渐整合进现有工作流程(包括 HPC 工作流程在内),就会出现另一种看待部署性的方式。来自 HPC 应用领域的经验很有趣,比如天气预报模型,它不是通过整个(monolithic)模型预测天气,而是聚合大型超级计算机并行运算的总体结果以给出最佳预测。在神经网络中使用这种聚合方法可部署数千个节点,并从聚合的平均值中得到最终结果。这种聚合在不需要精确度(不止一种方式)的领域可以接受,但它不适用于 HPC 计算。

这一方法已经被用在橡树岭国家实验室的 Titan 超级计算机上,橡树岭有大量的 GPU,因而在深度学习训练方面实力强大。包含 18688 块 Tesla K20X GPU 的 Titan 超级计算机已被证明在大量的科学模拟方面很有用,并在深度学习框架(包括 Caffe)方面具备双重功能,以提升 HPC 模仿(分类、噪音过滤等)能力。实验室的下一代超级计算机「Summit」(预计于 2017 年底推出)配备有 Nvidia Volta Tesla 图像协处理器、高带宽内存、可更快速传递数据的 NVLink 以及 IBM Power9 CPU,从而使 GPU 更加强大。

ORNL 研究员将这一聚合方法用于神经网络,并可在机器中的所有 GPU 上扩展这些网络。即使对那些被做出以在大型超级计算机运行的大量模拟的类型来说,这也是一个值得注意的壮举。有趣的是尽管框架可能来自深度学习(ORNL 情况中的 Caffe),节点到节点的通信却根植于 HPC 之中。正如我们之前所言,MPI 仍是 InfiniBand-连接的节点之间快速通信的最佳方法,并且正如其他地方的研究者,ORNL 已经将 MPI 大规模地用于了深度学习。

现在,这个团队正使用每个个体节点训练一个单独的深度学习网络,但是所有这些不同的网络需要相同的数据如果训练来自同一数据集。问题是如何几乎同时给 18000 多块 GPU 输入相同数据,且这个系统并非专门为此设计。答案是可分配和分发数据的自定义 MPI 层。Titan 的后继者,即将推出的 Summit 超级计算机将在每个节点上运行 6 块 Volta GPU。HPC 应用团队正在解决的另一个问题是多 GPU 部署。

我们不是在多节点上部署一个单独的深度学习网络,而是部署网络的聚合,或者由数十甚至数千个不同网络组成的群体,并通过通信在多节点之间部署它们。有了这些 5 到 7 个相当相似的深度学习网络的聚合,我们就可获得结果并取平均值。如果我们有数万个网络且彼此各不相同,我们也会观察如何部署这些聚合以获得跟好结果。

最终,MPI 在深度学习的部署依赖于系统和 MPI 的吞吐量,因为神经网络中包含数千个节点,而在训练中数据将会进行同步迭代。其中,每次迭代都会使网络中的多个神经元更新,所以如果神经网络在不同的节点中有交汇,整个网络就会产生交流。这本身就很大了,但我们还要考虑到从硬盘中提取和传输数据的延迟(尽管 burst 缓冲在这里可以发挥作用)。「还有一些新方法可以改善 MPI 的鲁棒性,但同时也限制了通信交流的特性。HPC 需要稳定,但神经网络相比大多数 HPC 应用更能容忍错误,」Patton 说道。「在未来,我们希望能在节点和磁盘通信中使用同样的 I/O,这样当数据集更大时就不需要超大带宽了。」

除了在 Titan 中部署深度神经网络之外,研究小组还探索了适用于不同数据集的自动设计神经网络。在此之前,用于图像识别的神经网络不能用于识别语音,但该实验组部署在超过 5000 块 GPU 上的自动设计代码可以在不同任务中都达到 80% 的准确率。

「算法是可以进化的,所以我们可以设计深度学习网络的参数来发展这种自动化,」橡树岭实验室的计算分析科学家 Robert Patton 说道。「我们可以找来一个新的数据集,对神经网络进行训练,生成一个表现良好的模型。」

在开始研究自动生成的神经网络之后,橡树岭的研究者们一直在与其他重点实验室配合进行从大规模神经网络中进行数据分类和去除噪音的研究。其中包括费米国家实验室,两家实验室展开了高能物理方面的研究,实验有关中微子和亚原子粒子的区分。「模拟产生了大量的数据,常规方法很难对其进行处理,甚至将其存储在硬盘里都很困难。」Patton 说道。「我们希望在模拟的数据中实时找到有趣的东西,然后将部分高分辨率数据的快照收集起来以供后期分析。」

「Summit」关注橡树岭实验室里各个团队在应用已有 HPC 设备实现深度学习时面临的挑战,研究如何最大限度地发挥手头上的硬件。

「我们在 2012 年开始关注深度学习,GPU 在最近几年的发展中占据着重要的位置,因为它让研究者们的开发速度大大提升,」Patton 解释道。「在解决完最重大的问题后,到 2014 年,我们开始思考如果一块 GPU 能够加快深度学习的速度,那么 18000 块 GPU 会是什么样呢?于是 Titan 超级计算机出现了。」

虽然像 Titan 这样混合 GPU 与 CPU 强大性能的超级计算机具有很大规模,但它们并不是为深度学习打造的。Summit 硬件架构的革新在突破瓶颈前还有很长一段路要走,但硬件的正确组合方式可能会催生一些非典型的架构——如神经形态芯片设备,或专门加速模型训练或预测的芯片。「现在,如果我们想在 HPC 的应用里实时进行机器学习运算,我们仍会受困于训练。我们需要从硬盘中加载数据进行处理,如果数据没有全部读出,训练就不能进行,所以我们都对 Summit 非常期待,它能让我们更快地将数据从硬盘注入各个节点,这意味着更厚、更密集的神经网络,拥有更高的存储容量。」Patton 说道。

「昂贵的 HPC 系统需要花费大量资源来从噪音中获取有价值的信息,」Patton 说道。「问题在于,这个过程意味着放弃大量有效数据。例如在材料科学这样的领域中,科学家们很难使用到 90% 以上的数据,因为其中噪音过多,而又缺乏工具应对。」Patton 表示这就是他的团队正在寻求整合可卸载的全新架构,如神经形态芯片和量子计算机的原因。

原文链接:https://www.nextplatform.com/2017/03/28/scaling-deep-learning-beyond-18000-gpus/

本文为机器之心编译,转载请联系本公众号获得授权。

✄------------------------------------------------

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档