发明名称 基于图形处理器的矩阵转置优化方法
摘要 本发明是基于图形处理器的矩阵转置优化方法,包括将R行S列的输入矩阵转化为一维数组并分配存储空间且拷贝数据;设置二维索引空间;计算工作项的全局标识符、工作组标识符和局部标识符;对矩阵分块并与工作组相对应;在工作组内申请本地内存且将数据复制到本地存储器中并同步等待数据复制完成;计算转置后数据在全局存储器中的行和列索引;计算输出数据在全局存储器及本地存储器中的位置;将本地存储器数据赋值给全局存储器中的一维数组,实现无冲突存储器合并访问;将一维数组拷贝到内存中形成S行R列的转置后的矩阵。本发明实现合并访问和矩阵转置的并行计算,提高程序的执行效率。
申请公布号 CN103761215B 申请公布日期 2016.08.24
申请号 CN201410017822.0 申请日期 2014.01.15
申请人 北京新松佳和电子系统股份有限公司 发明人 田卓;樊双丽
分类号 G06F17/16(2006.01)I;G06F9/38(2006.01)I;G06T1/20(2006.01)I 主分类号 G06F17/16(2006.01)I
代理机构 中科专利商标代理有限责任公司 11021 代理人 宋焰琴
主权项 一种基于图形处理器的矩阵转置优化方法,其特征在于,所述方法包括如下步骤:步骤S1:将输入矩阵存储在中央处理器的磁盘上并按行读入,生成具有R行S列的二维数组,将R行S列的二维数组转化为含有R×S个元素的一维数组;步骤S2:根据一维数组的大小和输入矩阵的数据类型,计算出一维数组所需要的存储空间;步骤S3:在图形处理器的全局存储器上为一维数组分配大小相同的两片存储空间;将一维数组中的数据拷贝到图形处理器的全局存储器中的存储空间;步骤S4:根据图形处理器具有的N维域模型、工作组和多个工作项,设置具有二维域的索引空间;步骤S5:根据图形处理器内置函数分别对全局存储器中每个工作项的行维度和列维度进行计算,得到全局存储器中每个工作项的行维度和列维度的全局标识符、工作组标识符和局部标识符;步骤S6:设定输入矩阵数据个数与工作项个数相同,将多个工作项形成多个工作组;步骤S7:对输入矩阵进行分块并得到矩阵块,以工作组为单位,将每个矩阵块与工作组相对应;步骤S8:在每个工作组内部的图形处理器的本地存储器中申请一片本地内存;步骤S9:根据每个工作项的行维度和列维度的全局标识符,以工作组为单位,将图形处理器的全局存储器中输入矩阵的数据复制到图形处理器的本地存储器;步骤S10:执行图形处理器的本地存储器的同步等待指令,等待同一工作组中的数据全部复制到图形处理器的本地存储器中,在本地存储器中获得同一工作组中的数据;步骤S11:利用行维度上工作组标识符、工作组的大小和局部标识符计算得到转置后的输出数据在全局存储器中的行索引;利用列维度上工作组标识符、工作组的大小和局部标识符计算得到转置后的输出数据在全局存储器中的列索引;步骤S12:利用所述输出数据在全局存储器中的行索引、列索引和R行的大小计算得到输出数据在全局存储器中的位置;利用输出数据的行维度的局部标识符、列维度的局部标识符和矩阵块的大小计算得到输出数据在本地存储器中的位置;步骤S13:将输出数据在本地存储器位置上的数据赋值给输出数据在全局存储器中的一维数组,获得一维数组中的输出矩阵数据,用以实现无冲突的全局存储器合并访问;步骤S14:将一维数组中的输出矩阵数据拷贝到内存中,对输出矩阵数据按照S行R列的方式进行切分,得到转置后的矩阵,实现矩阵转置在图形处理器平台上的并行、优化。
地址 100038 北京市海淀区北小马厂6号华天大厦1018室