论文部分内容阅读
由于深度学习在图像识别、语音识别、自然语言处理等领域表现突出,已经成为学术界和工业界的研究热点。神经网络中通常包含大量可训练的参数,因此训练出一个性能良好的神经网络需要耗费大量时间。另一方面,为了能从海量的数据中学习到更有价值的特征,深度神经网络的层次正不断加深,进一步增加了网络训练的耗时。如何提高网络的训练速度、缩短网络的训练周期已经成为深度学习领域的一个重要研究方向。近年来,图形处理器GPU的通用计算技术得到了迅速的发展,现在主流GPU的浮点运算能力已经是主流CPU的十多倍。GPU由于其强大的并行计算能力、高吞吐量等优势已经成为高性能计算领域的主流加速器。基于以上分析,对现有的并行加速算法进行了充分研究后,本文借鉴了将卷积运算展开成矩阵运算的思想,基于CUDA计算框架实现了对深度学习算法的并行加速,进一步提高了 GPU的并行效率。本文的主要工作如下:1)分析了神经网络的基本思想、网络结构,并对传统人工神经网络中的反向传播算法进行了详细研究。重点研究了卷积神经网络的稀疏连接和权值共享的特性,对卷积神经网络中的卷积计算、池化处理以及梯度计算过程进行了详细完整地推导,为深度神经网络的并行化实现提供理论指导。研究了 GPU的硬件性能以及CUDA的线程结构、存储结构和编程模型。2)采用卷积运算展开成矩阵运算的思想以及ReLu激活函数等方法,基于CUDA平台,在GPU上设计并实现了卷积神经网络中的卷积层、采样层、全连接层和激活层的前向计算、反向传播以及参数更新过程,然后给出了神经网络的搭建步骤以及参数初始化方法,最后描述了神经网络的训练过程。3)利用已经实现的隐藏层分别构建出LeNet-5、CIFAR-10和AlexNet这三种规模不同的神经网络。然后分别基于MNIST数据集、CIFAR-10数据集和ImageNet数据集在CPU和GPU上对三种神经网络进行训练,并分析网络中各网络层的前向计算和反向传播时间。三个神经网络在准确率没有下降的情况下,在GPU上的加速比分别为8.1,33.5和48.9,和当前的深度学习计算框架相比,本文提出的并行加速方法也存在一定的优势。