[发明专利]基于图形处理器的矩阵转置优化方法有效
申请号: | 201410017822.0 | 申请日: | 2014-01-15 |
公开(公告)号: | CN103761215A | 公开(公告)日: | 2014-04-30 |
发明(设计)人: | 田卓;樊双丽 | 申请(专利权)人: | 北京新松佳和电子系统股份有限公司 |
主分类号: | G06F17/16 | 分类号: | G06F17/16;G06F9/38;G06T1/20 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 宋焰琴 |
地址: | 100038 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 图形 处理器 矩阵 优化 方法 | ||
技术领域
本发明属于通用计算图形处理器技术领域,主要涉及一种基于图形处理器的矩阵转置优化方法。
背景技术
通用计算图形处理器(General Purpose Computing on Graphics Processing Units-GPGPU),是利用显卡图形处理器来处理通用计算任务的技术。图形处理器分担了中央处理器的计算任务,将计算机的处理速度提升成百上千倍,甚至更快。由此而产生了开放计算语言(Open Computing Language)。开放计算语言由各种处理器和软件制造商代表组成的计算工作组管理,它提供了一套标准的应用程序编程接口,让程序员对图形处理器的编程更便捷。
在信号处理,图像显示等工程领域,经常会用到矩阵转置运算,目前各类算法多是基于中央处理器进行串行计算,这种做法消耗了大量的时间,效率较低。图形处理器具有数以千计的处理器核心,同时具有远高于中央处理器的内存带宽,特别适合大规模数据的并行计算。
但是,存储器带宽是影响计算机性能的主要瓶颈之一。处理器的计算能力远远超过内存带宽。目前并没有在图形处理器核心上对矩阵并行化转置进行内存访问优化的运算。
发明内容
(一)本发明的要解决的技术问题:
本发明的目的是提供一种基于图形处理器的矩阵并行转置优化方法,能够在拥有数以千计个核心处理器的图形处理器上实现并行、快速、高效的矩阵转置以及在工程领域的应用。
(二)本发明的技术方案
为达成所述目的,本发明提供基于图形处理器的矩阵转置优化方法,实现该方法的步骤包括:
步骤S1:将输入矩阵存储在中央处理器的磁盘上并按行读入,生成具有R行S列的二维数组,将R行S列的二维数组转化为含有R×S个元素的一维数组;
步骤S2:根据一维数组的大小和输入矩阵数据的类型,计算出一维数组所需要的存储空间;
步骤S3:在图形处理器的全局存储器上为一维数组分配大小相同的两片存储空间;将一维数组中的数据拷贝到图形处理器的全局存储器中的存储空间;
步骤S4:根据图形处理器具有的N维域模型、工作组和多个工作项,设置具有二维域的索引空间;
步骤S5:根据图形处理器内置函数分别对全局存储器中每个工作项的行维度和列维度进行计算,得到全局存储器中每个工作项的行维度和列维度的全局标识符、工作组标识符和局部标识符;
步骤S6:设定输入矩阵数据个数与工作项个数相同,将多个工作项形成多个工作组;
步骤S7:对输入矩阵进行分块并得到矩阵块,以工作组为单位,将每个矩阵块与工作组相对应;
步骤S8:在每个工作组内部的图形处理器的本地存储器中申请一片本地内存;
步骤S9:根据每个工作项的行维度和列维度的全局标识符,以工作组为单位,将图形处理器的全局存储器中输入矩阵的数据复制到图形处理器的本地存储器;
步骤S10:执行图形处理器的本地存储器的同步等待指令,等待同一工作组中的数据全部复制到图形处理器的本地存储器中,在本地存储器中获得同一工作组中的数据;
步骤S11:利用行维度上工作组标识符、工作组的大小和局部标识符计算得到转置后的输出数据在全局存储器中的行索引;利用列维度上工作组标识符、工作组的大小和局部标识符计算得到转置后的输出数据在全局存储器中的列索引;
步骤S12:利用所述输出数据在全局存储器中的行索引、列索引和R行的大小计算得到输出数据在全局存储器中的位置;利用输出数据的行维度的局部标识符、列维度的局部标识符和矩阵块的大小计算得到输出数据在本地存储器中的位置;
步骤S13:将输出数据在本地存储器位置上的数据赋值给输出数据在全局存储器中的一维数组,获得一维数组中的输出矩阵数据,用以实现无冲突的全局存储器合并访问;
步骤S14:将一维数组中的输出矩阵数据拷贝到内存中,对输出矩阵数据按照S行R列的方式进行切分,得到转置后的矩阵,实现矩阵转置在图形处理器平台上的并行、优化。
(三)本发明的有益效果:
本发明的目的在于优化矩阵转置算法的性能,使中央处理器与图形处理器协同计算。利用图形处理器核心内部的共享内存进行线程间的通信,大大提高了算法的效率。同时本发明-开放计算语言(OpenCL:Open Computing Language)架构中将矩阵进行分块处理,在访问全局内存时避免了非合并访问和分区冲突问题。提高了图形处理器的访存带宽。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京新松佳和电子系统股份有限公司,未经北京新松佳和电子系统股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410017822.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:具有视频播放功能的太阳能热水器控制仪
- 下一篇:一种园林景观超声环保净水装置