朱泓睿 元国军 姚成吉 谭光明 王 展 户忠哲, 张晓扬, 安学军
1(中国科学院计算技术研究所 北京 100190)
2(中国科学院大学 北京 100049)
3(北京旷视科技有限公司 北京 100080)(zhuhongrui@ncic.ac.cn)
随着近年来深度学习算法在各类任务中取得比传统机器学习算法更好的效果,深度学习已广泛应用于图像识别[1]、音频识别[2]和自然语言处理[3]等领域.深度学习及相关交叉领域[4]的研究热度逐年提升,并在业界取得不少实际成果,应用范围也越来越广.
为了在实际应用中取得更好的训练效果,深度学习训练的数据集越来越大.标准训练物体识别的ImageNet数据集包含约128万张图片,总大小超过150GB;面向其他采用高分辨率图像或者视频专业领域的数据集甚至会高达TB乃至PB级别.另一方面神经网络结构也越来越复杂,网络层数和参数的数量不断增加,从以前的5~8层的神经网络增加到现在的上百层,甚至超过千层的神经网络也被提出并使用.
数据集规模和网络层数的增加使得深度学习的训练过程需要耗费大量的存储和计算资源.由于单台机器的算力有限,故而导致整体训练时间过长.举例来说,目前使用一块NVIDIA P100 GPU以标准数据集ImageNet[5]来训练神经网络ResNet-50[6],完成90个Epoch完整周期,就需要花费14天的时间[7].这样长耗时的训练给神经网络训练调试和研究带来了诸多不便.
为了减少深度学习训练时间,近年来以分布式计算为主的加速方法被越来越多地应用在深度学习领域.分布式的深度学习采用多台GPU服务器……