论文部分内容阅读
目前,深度神经网络在图像处理、语音识别和自然语言处理领域发挥着极其重要的作用,然而由于学习的数据量庞大,直接导致实验过程中模型的学习速度很慢。过去,一般会通过增加机器数量来实现快速学习。如今,随着图形处理器(Graphics Processing Unit,GPU)的内存和计算能力的提升,越来越多的用到GPU进行计算。但是模型的增大又受到单个GPU内存太小的限制,经常因为更大的模型在GPU上无法储存,致使在单GPU上不能训练拥有较多参数的神经网络。针对当前深度神经网络模型训练效率低下的问题,提出了在深度神经网络学习的过程中采用多GPU上模型并行训练的方法。为了优化模型并行训练,提高模型训练速度,从以下三个方面进行了优化。要实现深度神经网络模型的并行计算,首先要将一个计算模型拆分成两个模型分片分别存储在两个GPU上,使两个模型能够在两个GPU上并行计算;优化模型并行计算的顺序,在深度神经网络模型训练的过程中,不同的地方使用不同的并行方案,在深度神经网络的卷积层中使用数据并行,而在全连接层中使用模型并行;再次优化模型在训练过程中访存读取数据的性能,在模型并行结构中加入一个数据转化层来实现GPU上的数据整合或者交换;最后针对训练数据集太大的问题我们使用Mini-batch并行训练的方法来优化数据处理。采用多GPU加速深度神经网络的模型并行优化设计方案,同时结合在模型并行训练中对数据的并行处理,从而实现了对深度神经网络模型并行训练的加速。在Linux操作系统以及CUDA的编程环境下,实验主要使用MNIST、CIFAR10、以及CAR数据集对算法进行了对比测试,实验结果表明,采用多GPU的模型并行训练方法与caffe的方法相比,在训练准确率相当的前提下,训练的效率提高了20%至30%,深度学习方法的损失也较之小;最后,深度神经网络模型并行训练的方法最终也成功的应用到了车型识别的系统之中。