论文部分内容阅读
随着计算资源类型的日益丰富,在同一系统下,可以根据子任务的特点将其分配给相应类型的计算资源,这种异构系统的思想一经推出便受到业界和学界的广泛关注。从联网式的异构系统、板级的异构平台,直至近年来推出的片上异构系统,异构系统的融合力度不断加大。为了进一步规范异构系统、提升异构平台的通用性,异构系统架构(Heterogeneous System Architecture,HSA)基金会发布了HSA 1.0技术标准。遵循上述标准,从2015年开始,AMD公司相继发布了多款支持HSA标准的片上CPU-GPU异构系统——加速处理单元(Accelerated Processing Unit,APU),为异构计算技术的进一步推广提供了实践平台。同时,在研究过程中,我们也发现由于HSA标准及其实践平台的研究尚处于初级阶段,还需要通过深入发掘应用负载的特点甄别其所需的硬件资源,才能彰显此类异构系统架构的优势。卷积神经网络(Convolutional Neural Network,CNN)算法的特点突出,其中矩阵运算量大和单层网络上神经元独立性强的特点,适合利用GPU加速运算,另外层间的任务调度需要CPU负责完成,因此CPU-GPU异构系统非常适合加速卷积神经网络。然而在系统级和板级CPU-GPU异构平台上,卷积神经网络算法的实现需要频繁地在CPU和GPU之间交换数据,降低了系统的工作效率。本文基于支持HSA标准的APU平台,利用其共享内存的特性对卷积神经网络的算法进行优化,减少了数据传输的消耗,并且利用HSA架构可以灵活的进行任务调度。结合HSA标准的技术特点,本文将围绕卷积神经网络的训练过程和任务模型进行研究。本文的主要工作和研究成果如下:1.基于HSA异构编程模型的特点,本文研究了卷积神经网络训练的过程,根据单层神经网络上神经元相互独立的特点,将卷积运算和池化操作转化成矩阵运算,并研究了异构系统架构下的网络训练过程的关键问题,提出了一种批量更新权值相的训练优化方案,实验证明在保持准确率的情况下,优化了训练过程的设计方案可以较好的提升算法的执行效率。2.鉴于HSA异构编程模型实现的卷积神经网络中CPU的资源利用率较低,本文在CPU参与运算的基础上定义了任务模型,对卷积神经网络训练过程按照任务模型进行分类。论文研究了任务分配过程中的关键问题,系统归纳并提出了任务分配的设计方案。经过实验对比,相比于资源利用率较低的实现方案,该设计方案能够获得更高的加速比,加速比达到了1.24,是一种高效可行的优化方法。