[发明专利]一种深度学习汇编优化中的寄存器冲突避免方法有效
申请号: | 201611132248.9 | 申请日: | 2016-12-09 |
公开(公告)号: | CN106598688B | 公开(公告)日: | 2019-10-18 |
发明(设计)人: | 许建卫;窦晓光;刘立 | 申请(专利权)人: | 曙光信息产业(北京)有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京德恒律治知识产权代理有限公司 11409 | 代理人: | 章社杲;卢军峰 |
地址: | 100193 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 深度 学习 汇编 优化 中的 寄存器 冲突 避免 方法 | ||
本发明公开了一种深度学习汇编优化中的寄存器冲突避免方法,该寄存器冲突避免方法解决的技术问题在于:提供一种规则简单、能够合理使用不同bank中的寄存器从而提高效率的深度学习汇编优化中的寄存器冲突避免方法;采用的技术方案为:一种深度学习汇编优化中的寄存器冲突避免方法,所述深度学习采用Kepler显卡进行加速,汇编优化时,包括以下步骤:将两条以上的计算指令与一条数据传输指令均匀混合在一起,以隐藏访存时间;进行矩阵乘法计算时,从四个或三个寄存器存储体内进行取数。
技术领域
本发明属于深度学习算法的技术领域,具体涉及一种深度学习汇编优化中的寄存器冲突避免方法。
背景技术
深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。其概念由Hinton等人于2006年提出。基于深度置信网络(DBN)提出非监督贪心逐层训练算法,为解决深层结构相关的优化难题带来希望,随后提出多层自动编码器深层结构。此外Lecun等人提出的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能,图1为卷积神经网络的计算流程示意图。
深度学习的应用越来越广泛,算法也越来越成熟。各种开源软件框架被开发出来,如Caffe、Neon、TensorFlow、Theano、Torch等。各种算法的基本思路都大同小异,关键还在于性能。我们知道,深度学习是一种计算密集型的应用,而且用于训练的数据往往都是海量数据,因此,如果采用普通的CPU串行程序来计算一个实际问题,则往往耗费大量时间,数日甚至数月。因此,采用GPU(图形处理器,Graphics Processing Unit)等众核加速器进行加速,则成为了唯一的选择。现在主流的深度学习开发训练平台一般都用NVIDIA的显卡。为了加快训练速度,一般选择在配备多个GPU的高性能计算机或集群上面进行训练。
对深度学习的GPU程序并行化是一项非常常见的工作,其并行方式分为模型并行和数据并行,目前较多见的是数据并行。GPU上代码要达到较好的加速比,必须进行细致的优化,常用的优化方法有:a、优化GPU各级存储使用方法以及方式,尽量保证访问对齐与合并,减小访存开销;b、尽可发掘并行度,使用较多的线程块和线程,能够隐藏访存,提高计算峰值;c、使用流处理,特别是batch(批处理)模式的卷积神经网络天然就具有这种流式特点。但是即便使用了上述所有优化,一般而言,计算的峰值性能也很难超过百分之五十。这是由于再优化的方法也必须通过编译器去生成指令流,而这显然是开发者难以控制的,从而导致任何CUDA(Compute Unified Device Architecture,由NVIDIA推出的运算平台)层面的优化无法控制指令的实时运行情况。因此,为了进一步提高性能,越来越多的开发者直接从GPU产生的汇编代码层面上去进行优化。例如Nervana Systems开发团队,就针对Maxwell显卡做了汇编级优化,峰值性能从百分之五十左右提高到了百分之九十八。
Maxwell是目前最为前沿的GPU卡,深度学习的GPU加速程序在该卡上得到了极大的加速。但是目前市面上,较为多见的还是Kepler卡,而且硬件的升级可能仍然需要一段时间,但是这种汇编优化的工作在Kepler上却是空白。
发明内容
针对相关技术中存在的不足,本发明所要解决的技术问题在于:提供一种规则简单、能够合理使用不同bank中的寄存器从而提高效率的深度学习汇编优化中的寄存器冲突避免方法。
为解决上述技术问题,本发明采用的技术方案为:一种深度学习汇编优化中的寄存器冲突避免方法,所述深度学习采用Kepler显卡进行加速,汇编优化时,包括以下步骤:将两条以上的计算指令与一条数据传输指令均匀混合在一起,以隐藏访存时间;进行矩阵乘法计算时,从四个或三个寄存器存储体内进行取数。
优选地,所述计算指令为FFMA指令。
优选地,所述数据传输指令为LDS指令。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于曙光信息产业(北京)有限公司,未经曙光信息产业(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611132248.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种脚本预热方法和装置
- 下一篇:一种中文通用编码方法