一种图形处理器上基于延迟修正的批量矩阵求逆方法技术

技术编号:28561305 阅读:17 留言:0更新日期:2021-05-25 17:56
本发明专利技术涉及一种图形处理器上基于延迟修正的批量矩阵求逆方法,该方法包括以下步骤:产生需要批量求逆的矩阵数据;依次将所述矩阵数据从主机内传输到图形处理器全局内存;在所述图形处理器上建立Grid列条和Block块与矩阵的对应关系;所述图形处理器按照延迟修正方式完成求逆矩阵的批量求逆,并将批量求逆后,得到的逆矩阵从图形处理器的全局内存传会主机内存。本发明专利技术可以减少对全局内存的访问和加快数据的读写速度,减少访存次数的列交换方法,相比静态分配方法,性能得到明显提升。

【技术实现步骤摘要】
一种图形处理器上基于延迟修正的批量矩阵求逆方法
本专利技术属于基于图形处理器的批量矩阵求逆技术,具体涉及一种图形处理器上基于延迟修正的批量矩阵求逆方法。
技术介绍
将大量的复杂重复的任务交给图形处理器来处理,从而可以大大加快了数据处理的速度。相比于CPU处理器,图形处理器由于存在大量线程使得对批量任务的处理有着巨大的优势。批量矩阵求逆问题广泛出现于机器学习、数据挖掘、图像和信号处理中,由于需要处理的矩阵规模较小但数量巨大,这给图形处理器上批量处理技术带来巨大挑战。目前的求逆技术采用了一种称为及时修正的技术,该技术将全局内存中需要处理的当前列条块数据读到寄存器,然后进行计算处理,处理完成后再写回到全局内存,及时修正技术存在着较大的全局内存的数据读写量,而对于图像处理器上批量小矩阵求逆问题,影响批处理性能的主要因素是数据的读写量,而不是数据处理时间。目前及时修正批处理求逆技术方案如下:在采用及时修正技术时,如图1所示,首先从全局内存中将当前列条块读到寄存器,然后进行当前列条块内的计算,计算完成后再将列条块写回到全局内存。这时对全局内存的数据读写量为2×(i×NB)×NB。然后与U12来修正列条块右边的部分此时的对全局内存中矩阵W的数据读写量为2×(i×NB)×(n-i×NB)。整个修正尾部矩阵的过程共对矩阵U的上三角部分进行了一次访问,对全局内存中的矩阵U的数据读取量约则整个及时修正的求U-1的块算法对全局内存的读写量约为:为了减少批量处理过程中及时修正技术存在的全局内存的读写次数多和数据量大问题,我们专利技术了延迟修正技术。该技术相比及时修正的技术,将数据读写数量减少了50%,从而图形处理器的批量处理能力提升了1倍左右。同时,为了加快图形处理器对全局内存的数据读写速度,采用了更多利用寄存器和共享内存的优化方法和减少访存次数.并且为了避免线程的闲置和sharedmeomery等资源浪费,提出了按需申请资源的动态方法,相较于一次性分配资源的静态法性能得到明显提升
技术实现思路
本专利技术的目的在于,减少批量处理过程中及时修正技术存在的全局内存的读写次数多和数据量大问题。为实现上述目的,本专利技术提供了一种图形处理器上基于延迟修正的批量矩阵求逆方法,该方法包括以下步骤:产生需要批量求逆的矩阵数据;依次将所述矩阵数据从主机内传输到图形处理器全局内存;在所述图形处理器上建立Grid列条和Block块与矩阵的对应关系;所述图形处理器按照延迟修正方式完成求逆矩阵的批量求逆,并将批量求逆后,得到的逆矩阵从图形处理器的全局内存传会主机内存。优选地,延迟修正方式步骤,包括:初始化寄存器中的当前列条块;将上三角矩阵U的子矩阵U01和U11从全局内存中读到共享内存;在求解当前第i个列条块W01之前,首先用当前列条块左边已经求解出前i-1个列条块W00的结果与上三角矩阵U的子矩阵U01来修正当前第i个列条块W01,修正完成后再求解当前列条块,然后再向右进行下一个列条块的求解,直到最后一个列条块,求解结果存入寄存器中;将寄存器中的列条块的求解结果传回全局内存。优选地,对于Block内线程的配置,采用1-D结构;1-D结构中一个线程对应矩阵的一行。优选地,在图形处理器内实现LU分解之后的批量求逆算法时,采取了Thread-Block级并行块方法,由于一个线程对应矩阵的一行,并且列条块内每行的求解相互独立,因此可将当前列条块存储在线程的私有寄存器中。优选地,求逆块算法包括列条块求逆和尾部矩阵修正两个阶段,求逆算法采用了更多利用寄存器和共享内存的优化方法,并设计了减少访存数据量的列交换方法。优选地,采用一次性分配GPU资源造成的线程闲置和共享内存,设计了运行时按需分配线程、共享内存图形处理器资源的动态资源分配方法。本专利技术相比及时修正的技术,可将数据读写数量减少了50%,从而图形处理器的批量处理能力提升了1倍左右。同时,为了加快图形处理器对全局内存的数据读写速度,采用了更多利用寄存器和共享内存的优化方法和减少访存次数。并且为了避免线程的闲置和sharedmeomery等资源浪费,提出了按需申请资源的动态方法,相较于一次性分配资源的静态法性能得到明显提升。附图说明图1为现有技术图形处理器上及时求逆流程示意图;图2为图形处理器上延时修正批量求逆技术流程图;图3为本专利技术实施例提供的一种图形处理器上基于延迟修正的批量矩阵求逆方法流程示意图;图4为图形处理器上Grid和Block与批量矩阵的对应关系示意图;图5为在图形处理器及时修正(a)和延时修正(b)求逆流程示意图。具体实施方式下面结合附图与具体实施方式对本专利技术作进一步详细描述。图3为本专利技术实施例提供的一种图形处理器上基于延迟修正的批量矩阵求逆方法流程示意图。如图1所示,该方法包括步骤S101-S104:步骤S101,产生需要批量求逆的矩阵数据。步骤S102,依次将所述矩阵数据从主机内传输到图形处理器全局内存。步骤S103,在所述图形处理器上建立Grid列条和Block块与矩阵的对应关系。具体地,在图形处理器上实现批量矩阵求逆算法时,如图4所示一个Block对应一个矩阵。而对于Block内线程的配置,可以是1-D的也可以是2-D的。由于2-D线程结构需要使用n×n个线程对应矩阵的n×n个元素,限制了CUDA运行时每个SM(StreamingMultiprocessor)同时调度多个Block的能力。另外对于大多数矩阵规模而言,采用2-D结构的线程个数通常会超出每个Warp的线程数目(32),这会导致在线程需要共享数据时会2-D比1-D结构更多必要的同步点。并且,当采用2-D结构对当前列条块进行处理时,由于一个线程对应矩阵的一个元素,这会造成条块外的线程处于空闲状态,导致线程利用率较低。另外,1-D结构中一个线程对应矩阵的一行,这使得每个线程被分配更多的任务,指令级并行性更好,因此本专利技术实施例采用了如图4所示的1-D结构。假设批量矩阵已经存储于图形处理器的全局内存上,并且矩阵元素是按照列主序存储,共有bs个矩阵。步骤S104,所述图形处理器按照延迟修正方式完成求逆矩阵的批量求逆,并将批量求逆后,得到的逆矩阵从图形处理器的全局内存传会主机内存。具体地,在图形处理器上实现批量LU分解算法时,采用了一个Block对应一个矩阵的Thread-Block级并行方法。通过使用块算法,只需将要处理的当前列条块放在共享内存中,而不是将整个矩阵放在共享内存中,这样处理的矩阵规模就不受共享内存大小的限制。在图形处理器内实现LU分解之后的批量求逆算法时,同样采取了Thread-Block级并行块方法.由于一个线程对应矩阵的一行,并且列条块内每行的求解相互独立,因此可将当前列条块存储在线程的私有寄存器中,加快数据的读写速度。LU分解之后的求逆块算法包括列条块求逆和尾部矩阵修正两个阶段。为了本文档来自技高网
...

【技术保护点】
1.一种图形处理器上基于延迟修正的批量矩阵求逆方法,其特征在于,包括以下步骤:/n产生需要批量求逆的矩阵数据;/n依次将所述矩阵数据从主机内存传输到图形处理器全局内存;/n在所述图形处理器上建立Grid列条和Block块与矩阵的对应关系;/n所述图形处理器按照延迟修正方式完成求逆矩阵的批量求逆,并将批量求逆后,得到的逆矩阵从图形处理器的全局内存传会主机内存。/n

【技术特征摘要】
1.一种图形处理器上基于延迟修正的批量矩阵求逆方法,其特征在于,包括以下步骤:
产生需要批量求逆的矩阵数据;
依次将所述矩阵数据从主机内存传输到图形处理器全局内存;
在所述图形处理器上建立Grid列条和Block块与矩阵的对应关系;
所述图形处理器按照延迟修正方式完成求逆矩阵的批量求逆,并将批量求逆后,得到的逆矩阵从图形处理器的全局内存传会主机内存。


2.根据权利要求1所述的方法,其特征在于,所述延迟修正方式步骤,包括:
初始化寄存器中的当前列条块;
将上三角矩阵U的子矩阵U01和U11从全局内存中读到共享内存;
在求解当前第i个列条块W01之前,首先用当前列条块左边已经求解出前i-1个列条块W00的结果与上三角矩阵U的子矩阵U01来修正当前第i个列条块W01,修正完成后再求解当前列条块,然后再向右进行下一个列条块的求解,直到最后一个列条块,求解结果存入寄存器中;<...

【专利技术属性】
技术研发人员:赵永华刘世芳黄荣锋
申请(专利权)人:中国科学院计算机网络信息中心
类型:发明
国别省市:北京;11

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

1