Intel 、斯坦福大学和美国国家能源研究科学计算中心(NERSC,National Energy Research Scientific Computing Center)近期宣布实现了首个15 千万亿次浮点运算(PetaFLOPS)计算能力的超级计算集群。该工作成果以论文发表,名为“以15 千万亿次FLOPS 运行深度学习:科学数据的监督和半监督分类”( Deep Learning at 15PF: Supervised and Semi-Supervised Classification for Scientific Data )。据论文介绍,该工作使用由 9622 个 1.4GHz Intel 至强融核(Phi)处理器所组成的集群,以物理和气象数据集为训练数据做深度学习运算,达到了11.41 至13.47 千万亿次FLOPS 的平均持久性能,峰值性能在采用单精度时达15.07 千万亿次FLOPS。实验使用的是NERSC 的Cori Phase-II 超级计算集群,该集群有9668 个节点,每个节点有68 核,每个核支持4 个硬件线程(相当于每个节点272 核),整个集群支持2,629,696 个线程。
在论文中,深度学习运算的实现组合使用了 Intel Caffe 、 Intel Math Kernel Library (Intel MKL)和 Intel Machine Learning Scaling Library (Intel MLSL)。
论文给出的最突出贡献是达到了 75% 的扩展因子,在具有 9600 个节点的集群上取得了 7205 倍的加速。完全扩展(即 100% 扩展,或线性扩展)时可达 9600 倍的加速。
这一结果的取得要部分归功于斯坦福大学计算机科学系 Christopher Ré教授研究小组的工作。该研究小组的工作提出了对人工神经网络(ANN,Artificial Neural Network)参数同步更新和异步更新的支持。
同步屏障(Synchronisation Barrier)通常是机器学习等算法在并行化时所面对的一个严重障碍。当多个节点同步地计算一个任务时,任一节点的短暂挂机将延缓并阻塞所有计算中的节点。这在分布式系统中被为“拖后者(Straggler)效应”。困扰同步系统的另一个问题是,如果批处理的计算规模下降,那么同步系统的性能也会随之下降。在大规模并发集群中,正如上面所介绍的集群,这将构成严重的问题。百度提供的 DeepBench 基准测试框架表明,当批处理的规模下降时,峰值 FLOPS 性能可下降 25~30%。整体性能下降的时间复杂度符合 O(log(M)),其中 M 是集群中节点个数。
另一方面,异步深度学习系统需要更多次的迭代(因此也需要更多的计算)才能收敛到一个解。这是由于不好的统计效率所导致的,该问题被称为“过时”(Staleness)问题。此外,异步系统还具有无法收敛到一个解的风险。针对该问题,Christopher Ré研究小组的 Ioannis Mitliagkas 指出,在目标函数是正确的情况下,如果参数调优存在错误,很可能无法收敛。
两种模型各具缺点和高效之处,这启发研究人员引入了一种混合方法解决问题。在该方法中,数个节点组成一个小规模的计算组,同一计算组中的各个节点是同步工作的,目标是对模型做一次更新。各个计算组与一个中心化的参数服务器做异步交互,很好地利用了同步方式和异步方式。
该混合方法抑制了“拖后者效应”。相比于同步方式,它提供了至少 1.66 倍到最高 10 倍的速度增加。此外,采用该方法的系统表现出强可扩展性(strong scaling)的特性,可扩展到1024 个节点,其中同步方式在512 个节点的规模停止扩展。强可扩展性是指在保持问题规模一定的情况下增加处理器的数量,Mitliagkas 指出,强可扩展性是机器学习问题中的常见用例。
该算法已进一步用于解决实际的科学问题。一个应用就是学习如何从背景事件中分离出罕见的新粒子信号,该应用可用于理解宇宙的本质。其它的应用还包括气象数据中的特性识别,这使得研究人员可以标定气候改变中发生极端气候的频率和强度。
查看英文原文: NERSC Scales Scientific Deep Learning to 15 Petaflops
评论