美国时间2月22日,百度硅谷人工智能实验室(SVAIL)宣布向深度学习领域开源了 Ring Allreduce算法库,以实现在多个GPU之上更快速地训练神经网络模型。
Ring Allreduce是高性能计算领域的著名算法,但在深度学习领域应用不足。该技术可以实现近乎线性的加速,以及几十个甚至上百个GPU的扩展。比如,运用Ring Allreduce算法,百度硅谷人工智能实验室将神经网络的训练扩展至40个GPU并且训练速度提高31倍。
百度研究员Shubho Sengupta表示:“我们很高兴能开源我们的Ring Allreduce算法库,该库可应用于各大主要的深度学习框架,这将使深度学习研究人员可以在更多GPU上用更快的速度训练自己的模型。”
过去几年里,神经网络迅猛发展,其训练所需的数据量和计算资源也越来越大。为了提供所需的计算能力,更多GPU被用在训练之中。
在多个GPU之上训练神经网络通常比较困难,因为比较普遍的做法是向单个GPU发送数据,这样就形成了通讯瓶颈。而Ring Allreduce算法可以大大减少GPU用于发送数据的时间,用更多的时间进行有效运算,以此来消除瓶颈。
“Ring Allreduce算法让我们可以在神经网络的众多设备和节点之间进行更加高效的梯度分级,这是一种针对带宽优化的算法,能够大大减少运算时间,从而实现更多设备的扩展,同时还能保留同步随机梯度下降的确定性与可预测的收敛性质。百度研究员Andrew Gibiansky表示。
百度Ring Allreduce (https://github.com/baidu-research/baidu-allreduce )C类库可在Github上下载使用。同时Github上还提供与TensorFLow共同使用时所需的补丁 (https://github.com/baidu-research/tensorflow-allreduce)。
特别提醒:本网内容转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。