论文部分内容阅读
近年来,深度学习已经在图像分析、自然语言处理、语音识别、视频分类等领域取得了令人瞩目的成功。但是,深度学习依赖于强大的计算能力,优化深度学习的系统框架以降低算力需求对于深度学习的应用有重要的作用。众核处理器体系结构在深度学习领域有广泛应用,如何在众核处理器上实现计算任务的负载平衡是一个有价值的问题。本文主要研究在众核处理器架构上训练深度学习模型时,如何有效划分模型对应的计算图并实现负载均衡。本文设计了面向众核处理器的计算图自动划分算法。本文首先分析了图划分问题,明确了图划分算法的最终目标是缩短深度学习模型的运行时间,并且需要考虑负载均衡、通信代价和存储上限这三个因素,由此得出子图的运算量、存储量和路由量可以影响划分效果。其次,对图划分问题进行马尔可夫决策过程的建模,提取当前计算图的子图划分情况与核资源分配情况作为强化学习中的状态,调整相邻两个核之间的层数分配作为强化学习中的动作,计算图在众核处理器上的运行时间和存储情况作为强化学习中的奖励。再次,根据基于策略的强化学习算法设计并实现了图划分算法,对马尔可夫决策过程模型进行求解。最后将使用图划分算法自动划分的结果与人类专家的手动划分结果进行对比。本文中的算法能够将计算图自动划分为子图,并为每一个子图分配核资源,优化深度学习模型在众核处理器运行的时间。本文实现了计算图自动划分的原型系统。首先对原型系统进行需求分析,总结出上传待划分模型、构造计算图、划分计算图、保存即时结果、查看划分结果五个功能性需求。其次,对原型系统进行设计与实现。在系统实现部分重点使用了 Relay中间表示。Relay中间表示是一种普遍应用的深度学习编译器的中间表示,可以转化为计算图形式,系统中实现构建深度学习计算图的部分扩展了 Relay中间表示对深度学习框架Caffe的支持,可以将Caffe的模型转化成计算图。系统也实现了读入计算图信息直接生成计算图的功能。利用计算图自动划分算法进行划分子图之后,可以将划分结果展示给用户。文章最后通过系统的测试与分析,证明该系统能够对深度学习计算图进行自动划分并展示结果。