一种提高图形处理单元的矩阵乘计算性能的方法和装置制造方法及图纸

技术编号:17109782 阅读:21 留言:0更新日期:2018-01-24 22:28
本发明专利技术公开了提高图形处理单元的矩阵乘计算性能的方法和装置,该方法包括:采用图形处理单元的共享存储器拷贝在图形处理单元的全局存储器中的两个矩阵中的每个矩阵中的相应矩阵块,以进行矩阵乘计算,直到在图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算为止。当在图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算的时候,将矩阵块的相应元素位置的乘积写入图形处理单元的全局存储器。对于矩阵中频繁读写的元素,充分利用存储器中局部性原理,减少全局存储器访问的次数,并且充分利用图形处理单元的共享存储器的读取快速、性能开销小的优点,减少读取数据所带来的性能开销,提高矩阵乘计算性能。

A method and device for improving the performance of matrix multiplication in graphic processing unit

The present invention discloses improved matrix graphics processing unit by method and device performance calculation, the method includes: using graphics processing units shared memory copy of the corresponding matrix blocks each matrix two matrix in the global memory for graphics processing unit in the calculation for matrix multiplication, matrix blocks all until two matrix in the global memory for graphics processing unit in the matrix multiplication algorithm have been carried out so far. When all matrix blocks in the two matrixes of the graphics processing unit have been computed by matrix multiplication, the product of the corresponding element positions of the matrix block is written to the global memory of the graphics processing unit. For matrix frequent read and write elements, make full use of local memory principle, reduce the number of global memory accesses, and make full use of the advantages of graphic sharing memory read fast, small performance overhead processing unit, reduce the performance overhead caused by the read data, improve the performance of matrix multiplication calculation.

【技术实现步骤摘要】
一种提高图形处理单元的矩阵乘计算性能的方法和装置
本专利技术涉及信息技术,尤指一种提高图形处理单元的矩阵乘计算性能的方法和装置。
技术介绍
随着互联网时代科学技术的发展,当前对大数据计算的需求越来越高,尤其是近两年随着深度学习的快速发展,需要对大量图像集进行计算及处理,以达到更好的图像识别效果。相比之前在游戏、视觉效果中的应用,近几年来,GPU(GraphicsProcessingUnit,图形处理单元)正在成为数据中心、超级计算中心的标准配置,并广泛应用于深度学习领域,其强大的计算能力在很大程度上推动了深度学习研究的发展,因此GPU开始越来越多的运用于通用计算,并且越来越多地应用到科学计算程序的加速研究当中。一般的深度学习模型在借助GPU进行计算时,依靠的往往是传统的GPU编程技术或现有的GPU加速库(例如,cuDNN),但是这些技术手段对于图像处理中经常涉及到的一些复杂计算(例如,图像处理中普遍存在的矩阵乘计算)并没有实现最大限度的性能优化。而当前硬件的发展往往很难赶上软件计算量需求的增长速度,由于硬件本身或编程技术上的限制,完成一个模型的计算可能需要数周的时间,这对深度学习训练和识别效率的发展产生了很大的限制。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种提高图形处理单元的矩阵乘计算性能的方法和装置,其能够提高图形处理单元进行矩阵乘计算的性能。为了达到本专利技术目的,本专利技术提供了一种提高图形处理单元的矩阵乘计算性能的方法,该方法包括:采用图形处理单元的共享存储器拷贝在图形处理单元的全局存储器中的两个矩阵中的每个矩阵中的相应矩阵块,以进行矩阵乘计算,直到在所述图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算为止;当在所述图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算的时候,将矩阵块的相应元素位置的乘积写入所述图形处理单元的全局存储器。进一步地,其中,所述采用图形处理单元的共享存储器拷贝在图形处理单元的全局存储器中的两个矩阵中的每个矩阵中的相应矩阵块,以进行矩阵乘计算,直到在所述图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算为止的步骤,包括:将进行矩阵乘计算的两个矩阵中的每个矩阵中的相应的矩阵块拷贝到共享存储器中,其中,每个矩阵块包括第一数量的元素;采用第一数量的线程分别按照矩阵块的元素位置对拷贝到共享存储器中的每个矩阵中的对应的元素进行矩阵乘计算,以得到矩阵块的相应元素位置的乘积;以及将所得到的矩阵块的相应元素位置的乘积写入寄存器;所述将矩阵块的相应元素位置的乘积写入所述图形处理单元的全局存储器的步骤,包括:当在所述图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算的时候,将在所述寄存器中写入的矩阵块的相应元素位置的乘积写入所述全局存储器。进一步地,所述将进行矩阵乘计算的两个矩阵中的每个矩阵中的相应的矩阵块拷贝到共享存储器中的步骤,包括:根据所述共享存储器的存储空间,确定进行矩阵乘计算的两个矩阵中的每个矩阵中的相应的矩阵块中的元素的数量。进一步地,所述将进行矩阵乘计算的两个矩阵中的每个矩阵中的相应的矩阵块拷贝到共享存储器中的步骤,包括:将所述矩阵块进行转置,以将经转置的矩阵块拷贝到所述共享存储器中。为了达到本专利技术目的,本专利技术还提供了一种提高图形处理单元的矩阵乘计算性能的装置,该装置包括:矩阵乘计算模块,设置成:采用图形处理单元的共享存储器拷贝在图形处理单元的全局存储器中的两个矩阵中的每个矩阵中的相应矩阵块,以进行矩阵乘计算,直到在所述图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算为止;以及乘积写入模块,设置成:当在所述图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算的时候,将矩阵块的相应元素位置的乘积写入所述图形处理单元的全局存储器。进一步地,矩阵乘计算模块包括:矩阵块拷贝子模块,设置成:将进行矩阵乘计算的两个矩阵中的每个矩阵中的相应的矩阵块拷贝到共享存储器中,其中,每个矩阵块包括第一数量的元素;矩阵乘计算子模块,设置成:采用第一数量的线程分别按照矩阵块的元素位置对拷贝到共享存储器中的每个矩阵中的对应的元素进行矩阵乘计算,以得到矩阵块的相应元素位置的乘积;以及寄存器写入子模块,所述寄存器写入子模块设置成:将所得到的矩阵块的相应元素位置的乘积写入寄存器;所述乘积写入模块设置成:当在所述图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算的时候,将在所述寄存器中写入的矩阵块的相应元素位置的乘积写入所述全局存储器。进一步地,所述矩阵块拷贝子模块设置成:根据所述共享存储器的存储空间,确定进行矩阵乘计算的两个矩阵中的每个矩阵中的相应的矩阵块中的元素的数量。进一步地,所述矩阵块拷贝子模块设置成:将所述矩阵块进行转置,以将经转置的矩阵块拷贝到所述共享存储器中。本专利技术的有益效果在于,对于矩阵中频繁读写的元素,一方面能充分利用存储器中局部性原理,减少全局存储器访问的次数,另一方面能充分利用GPU中的共享存储器的读取快速、性能开销小的优点,减少读取数据所带来的性能开销,从而提高GPU的矩阵乘计算性能,有助于提高采用GPU进行深度学习训练和识别的效率。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本专利技术技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本专利技术的技术方案,并不构成对本专利技术技术方案的限制。图1为本专利技术的实施例提供的提高图形处理单元的矩阵乘计算性能的方法的流程图;图2为本专利技术的可选实施例提供的提高图形处理单元的矩阵乘计算性能的方法的流程图;图3为本专利技术的实施例提供的提高图形处理单元的矩阵乘计算性能的装置的框图;图4为本专利技术的可选实施例提供的提高图形处理单元的矩阵乘计算性能的装置的框图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。在本专利技术的一个实施例中,提供了一种提高图形处理单元的矩阵乘计算性能的方法,如图1所示,该方法包括步骤S100和步骤S120。步骤S100,采用图形处理单元的共享存储器拷贝在图形处理单元的全局存储器中的两个矩阵中的每个矩阵中的相应矩阵块,以进行矩阵乘计算,直到在图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算为止。在此,图形处理单元的共享存储器是可以由进行矩阵乘计算的所有线程读取的可读写存储器;图形处理单元的全局存储器存储了需要进行矩阵乘计算的矩阵。共享存储器是一个片上存储器,所以共享存储器读取数据相比于本地存储器和图形处理单元的全局存储器都要快得多,但是共享存储器的存储空间相比于全局存储器往往更小。由于在矩阵计算过程本文档来自技高网...
一种提高图形处理单元的矩阵乘计算性能的方法和装置

【技术保护点】
一种提高图形处理单元的矩阵乘计算性能的方法,其特征在于,包括:采用图形处理单元的共享存储器拷贝在图形处理单元的全局存储器中的两个矩阵中的每个矩阵中的相应矩阵块,以进行矩阵乘计算,直到在所述图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算为止;当在所述图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算的时候,将矩阵块的相应元素位置的乘积写入所述图形处理单元的全局存储器。

【技术特征摘要】
1.一种提高图形处理单元的矩阵乘计算性能的方法,其特征在于,包括:采用图形处理单元的共享存储器拷贝在图形处理单元的全局存储器中的两个矩阵中的每个矩阵中的相应矩阵块,以进行矩阵乘计算,直到在所述图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算为止;当在所述图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算的时候,将矩阵块的相应元素位置的乘积写入所述图形处理单元的全局存储器。2.根据权利要求1所述的方法,其中,所述采用图形处理单元的共享存储器获取拷贝在图形处理单元的全局存储器中的两个矩阵中的每个矩阵中的相应矩阵块,以进行矩阵乘计算,直到在所述图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算为止的步骤,包括:将进行矩阵乘计算的两个矩阵中的每个矩阵中的相应的矩阵块拷贝到共享存储器中,其中,每个矩阵块包括第一数量的元素;采用第一数量的线程分别按照矩阵块的元素位置对拷贝到共享存储器中的每个矩阵中的对应的元素进行矩阵乘计算,以得到矩阵块的相应元素位置的乘积;以及将所得到的矩阵块的相应元素位置的乘积写入寄存器;所述将矩阵块的相应元素位置的乘积写入所述图形处理单元的全局存储器的步骤,包括:当在所述图形处理单元的全局存储器中的两个矩阵中的所有矩阵块均已进行矩阵乘计算的时候,将在所述寄存器中写入的矩阵块的相应元素位置的乘积写入所述全局存储器。3.根据权利要求2所述的方法,其中,所述将进行矩阵乘计算的两个矩阵中的每个矩阵中的相应的矩阵块拷贝到共享存储器中的步骤,包括:根据所述共享存储器的存储空间,确定进行矩阵乘计算的两个矩阵中的每个矩阵中的相应的矩阵块中的元素的数量。4.根据权利要求2所述的方法,其中,所述将进行矩阵乘计算的两个矩阵中的每个矩阵中的相应的矩阵块拷贝到共享存储器中...

【专利技术属性】
技术研发人员:刘姝黄雪
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1