参与:黄小天、李泽南 美国橡树岭国家实验室的「Titan」超级计算机是「美洲虎」的继任者。它由 18688 块 AMD Opteron 6274 16 核 CPU 与 18688 块英伟达 Tesla K20X GPU 组成,在世界超级计算机性能排名中位列第三(17590 TFlop/s,j2直播,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 需要稳定,atv直播,但神经网络相比大多数 HPC 应用更能容忍错误,」Patton 说道。「在未来,我们希望能在节点和磁盘通信中使用同样的 I/O,这样当数据集更大时就不需要超大带宽了。」 除了在 Titan 中部署深度神经网络之外,研究小组还探索了适用于不同数据集的自动设计神经网络。在此之前,用于图像识别的神经网络不能用于识别语音,但该实验组部署在超过 5000 块 GPU 上的自动设计代码可以在不同任务中都达到 80% 的准确率。 (责任编辑:本港台直播) |