论文部分内容阅读
随着深度学习和异构计算的不断发展,在多个领域中基于异构计算的深度学习已经取得了突破性的成绩,如图像识别和语音识别。截止目前,最智能的机器学习方法就是深度学习,而CNN是深度学习里最重要的一个模型,其研究意义和商业价值巨大。同时由于GPU的强大计算能力被挖掘出来,现如今广泛采用GPU来进行CNN的训练。但是由于存在CNN的训练时间长和单张GPU卡甚至单台GPU服务器(含多张GPU卡)的显存都无法装载单个模型副本的问题,因此需要采用多台GPU服务器的集群来并行训练CNN。在GPU集群并行训练的方法中,如何在硬件设施确定的情况下,确定模型切分方案和数据并行个数将是本文的研究重点。本文首先对现有的CNN并行方法进行调研,然后提出了最优化的模型并行和数据并行方案。以该方案为基础设计了一个基于异构计算的CNN并行框架,该框架总体上采用Master/Slave架构,其中Master是调度器,主要工作是计算出最优化方案以及调度计算任务。Slave分为W-slave和P-slave。W-salve是执行真正的CNN训练任务的载体,P-slave是负责参数更新工作的参数服务器。最后详细介绍了最优化模型并行和数据并行方案的实现。本文的主要工作为以下几点:1.通过对当前深度学习的并行方案进行调研,在硬件设施确定的情况下,针对模型切分和数据并行的个数提出了自己的最优化模型并行和数据并行方案。2.对基于异构计算的CNN并行框架进行架构设计。框架整体采用Master/Slave架构,参数更新采用异步更新方式。3.设计并实现本文提出的在硬件环境确定的情况下,计算确定单个模型副本切分的子模型个数和模型副本个数的最优化方案。最后对最优化方案进行仿真测试。仿真测试分为单张GPU卡能装载单个模型副本和单张GPU卡不能装载单个模型副本两种情况。仿真结果表明本文提出的最优化方案能够在硬件环境确定的情况下,计算出最优的模型副本切分的子模型个数和模型副本个数,找到最大的训练预估时间加速比,从而可以在实际训练时利用该种并行方案来缩短训练时间。