论文部分内容阅读
随着大数据时代的到来,深度学习迎来了又一个发展的春天。当今,深度神经网络已逐渐成为学术界和工业界的研究热点。深度神经网络的识别准确率已远远超过了传统机器学习算法,并在图像识别、语音识别等领域大放异彩。其中,就包括现如今十分火热的深度置信网络模型。深度置信网络是一个基于无监督学习理念的深度神经网络,由Geffrey Hinton教授提出。深度置信网络普遍运用于图像识别、文字识别等领域,而且均取得了不错的准确率。但是,深度置信网络也常伴随着模型维度过高、数据计算量过大的问题,使得其训练过程往往较为缓慢。而随着计算机硬件技术的不断发展,使用异构计算资源对程序算法做并行优化已成为并行计算领域的主要手段之一。本文针对深度置信网络训练效率慢的问题,提出了面向异构平台的并行优化算法来加速其训练过程。首先,一个好的串行优化算法是并行优化算法的基础,为了更好的研究深度置信网络并行优化算法,本文提出了一种基于单核CPU平台的深度置信网络串行优化算法。为了方便算法后期性能优化,本文使用C语言实现深度置信网络。同时针对深度置信网络串行算法的性能瓶颈,使用BLAS库优化矩阵运算部分,使用循环展开+矩阵运算、空间换时间等策略优化循环结构部分。与串行算法相比,深度置信网络串行优化算法取得了2x的加速。其次,在串行算法研究的基础上,为了解决粗粒度任务模块并行算法设计困难以及异构平台计算资源分配的问题,本文提出了粗粒度任务分解策略与子任务调度策略。通过任务分解策略,使粗粒度模块化任务划分为细粒度子任务,从而更加容易设计并行优化算法;通过子任务调度策略,充分利用异构平台的计算资源,使训练过程中的计算任务负载均衡。最后,为了解决深度置信网络训练慢的问题,本文提出了面向异构平台的深度置信网络并行优化算法。在任务分解策略以及子任务调度策略的基础之上,采用数据并行和任务并行的方法优化各细粒度子任务。本文使用MNIST手写体数据集测试。与串行算法相比,取得了近10x的加速比;与串行优化算法相比,并行算法取得了4.5x的加速比。