学位专题

目录>
<

申威平台上卷积神经网络库的实现与优化

舒嘉明
中国科学技术大学
引用
深度卷积神经网络(CNN,Convolution Neural Network)在图像识别领域发挥着至关重要的作用,随着问题复杂性的日益增加,CNN需要更大的模型来提高精度。研究表明,CNN的深度已经从最初ImageNet比赛中的数十层发展到当前的上千层,深度的增加带来计算量的暴增,因此需要更强大的计算能力来训练整个神经网络。神威太湖之光是全世界排名第3的超级计算机,其浮点计算性能由申威26010众核处理器提供,单处理器的峰值双精度浮点计算性能为3.06Tflops,整机理论浮点计算性能达到125Pflops,使用神威太湖之光进行神经网络训练可以缓解当前CNN面临的缺少计算能力的问题,并推动国产处理器在人工智能领域的发展。在NVIDIA GPU和IntelCPU等商用平台上,CNN网络模型的实现依赖于深度学习库,而神威太湖之光缺少一个基本的卷积神经网络库。综上所述,本文在申威处理器上设计并实现了卷积神经网络库swABL-DNN(Sunway Application Boost Library-DNN),实现了一个swABL-DNN测试框架,并提出了面向申威系统结构的并行卷积算法。  本文的主要工作和研究成果包括:  1.swABL-DNN库函数设计与功能介绍。由于cuDNN并不是开源的,本文实现swABL的方法是通过分析典型卷积神经网络和反向传播算法得到swABL-DNN需要包含的库函数,设计与cuDNN(CUDA Deep Neural Network Library)相似的数据结构与API命名规则,最后通过编码实现。swABL-DNN的所有API都支持单精度和双精度浮点计算,它使用4维Tensor来存储数据,通过修改描述符来完成不同功能的核心计算,大部分API是对用户控制缓冲区中的数据进行基本操作,因此可以简单集成到其他框架中。  2.swABL-DNN测试分析。本文设计并实现了基本测试程序用于swABL-DNN功能性测试和库函数分析。测试程序能够存储网络模型并进行训练和预测,测试深度学习库中的API在整个神经网络的时间占比。通过分析发现,swABL-DNN能够支持AlexNet、GoogLeNet、VGG、LeNet-5和U-Net的实现,并且测试结果显示,在AlexNet和U-Net中,卷积层API的执行时间占比都在90%左右。  3.卷积层库函数优化。卷积层库函数的核心是一种特殊形式的批量卷积计算,在商用平台NVDIA GPU和Intel CPU上,这种批量卷积计算被转化成矩阵乘法实现,称之为GEMM(General Matrix Multiply)算法,然而在申威处理器上,GEMM算法效率很低。swCaffe与swDNN提出了一种在批量较大时的并行卷积算法,但对卷积参数存在限制,在不满足参数限制的情况下,它们使用GEMM算法,导致整体性能不高。本文分析GEMM算法在申威处理器上效率不高和swCaffe并行卷积算法参数受限的原因,并针对申威处理器主核+从核阵列的系统架构,实现并优化了无参数限制的并行卷积算法。本文提出的并行卷积算法利用从核阵列将Direct卷积算法并行化,并使用数据重用、软件流水和手动向量化等方法优化算法实现,此算法相较于GEMM算法有4.0x到4.5x的性能提升,但在满足参数限制要求时不如swCaffe并行卷积算法。

卷积神经网络库;并行卷积算法;鲁棒性

中国科学技术大学

硕士

计算机系统结构

韩文廷;安虹

2019

中文

TP183

2019-08-23(万方平台首次上网日期,不代表论文的发表时间)

相关文献
评论
相关作者
相关机构
打开万方数据APP,体验更流畅