基于多机多卡的卷积神经网络性能优化

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:wensiuu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着深度学习在各个领域的普及,神经网络参数的规模越来越大,训练的周期也越来越长,多GPU加速成了必然的硬件解决方案。为了最大化多GPU的硬件利用率,本文研究和实现了深度学习的GPU优化策略,包括单机单卡和多机多卡方案。本文在单机单卡方面的主要工作与贡献包括:单机单卡方面,本文详细地介绍了神经网络常用结构以及加速细节,维护了名为"CUDA-CNN"的开源项目。该项目已经支持包括卷积层,池化层,Softmax层,分支层,合并层,NIN层,Inception层以及多种数据扩展方法等。此外,该项目在MNIST数据集上取得公开结果中最高的准确率99.81%。本文在多机多卡方面的主要工作与贡献包括:首先,主要研究如何提高系统的负载均衡能力以及减少并行开销。通过实验证明,在单位时间内,每个GPU分别迭代fetchi次后,再将残差和汇总到参数服务器,这种方法除了减少通信频率之外,又能够根据GPU的计算能力分配不同的规模的任务,提高了系统的负载均衡能力。此外,本文引入了热启动技术,通过动态的修改参数同步频率,有效地提高了训练前期的收敛速度。其次,详细设计了多机卡的任务调度器。首先,为了避免人为分析程序并行性所带来的遗漏或者错误风险,本文沿用Purine中的二分图技术。由于二分图中包含了所有操作之间的数据依赖关系信息,调度器可以自动分析任务的并行性,最大化异步操作:其次,为了减少并行开销,本文在调度器中引入线程池和任务队列,将使用同类型硬件的计算任务放在同一个线程池或者任务队列中,有效地减少了线程的创建和销毁频率,减少由资源竞争引起的并行开销。最后,通过引入CUDA的事件机制来支持调度器的同步操作。最后,实验表明,在单机多卡环境中, Npruine性能比Purine提高了23.7%,与此同时,两个计算能力不相同的GPU利用率都达到96%左右。此外,Purine在使用四个节点的集群上,性能不但没有增加,反而仅是单个节点性能表现的47%。经过优化和改进,新架构Npurine能够在廉价网络连接的集群上运行,其性能是Purine的12.34倍。
其他文献
笔式协同交互,是人机交互技术(Human-Computer Interaction,简写HCI)的一类形式,是把笔作为媒介来进行交互和沟通,通过采用专门的数字笔在特定的输入设备上书写笔迹来达到协
计算机应用正朝着数据密集型发展。同时,随着物联网的兴起,越来越多的物品被接入到互联网,产生了新的海量数据并通过云端进行上传和下载。而近年来,用户生成的内容也增长了15
随着物联网及新型定位技术的发展,室内定位成为可能,室内位置服务与移动对象数据管理也成为了近年来的研究热点。以往面向室外空间的移动对象数据管理在数据集、算法、系统等
作为信息管理的进一步发展,知识管理对于提升企业竞争力具有重要意义。企业中存在的非结构化信息是重要的知识源,具有数据量大、增长速度快等特点。如何获取、管理并应用海量
C语言以其对底层机器操控的灵活性,在操作系统、嵌入式软件、底层驱动等要求高效的软件设计领域得到广泛应用。然而出于灵活性和效率的考虑,C语言赋予程序员对计算机完全掌控的
随着互联网的出现及其近年来的飞速发展,人们开始进入信息爆炸的时代。通过互联网阅读新闻成为人们越来越重要的手段,面对如此浩瀚的互联网新闻,如何快速、准确的从这些海量
随着下一代电信网和Internet技术的快速发展,网络基础设施逐步完善,网络带宽不断增加,为多种业务(语音、数据和多媒体等)的广泛开展提供了良好的硬件环境。企业间业务共享、
随着市场经济不断发展,企业间多元化竞争日趋激烈,企业想在激烈的竞争中处于不败之地,就必须考虑如何降低传统成本。而采购、库存、生产配比等环节是大多数企业,尤其是生产装
本文研究题目来源于国家“十一五”科技支撑计划课题“勘察设计企业信息化关键技术研究与应用”子课题“基于SOA技术的勘探设计企业应用软件架构系统”。  在Web服务环境中
随着信息技术的不断发展,网络的不安全因素也随之增加。虽然传统的安全设备和安全检测方法得到了广泛的应用,但都没有从宏观的角度为网络管理员提供清晰的网络安全状态信息。