1.一种面向向量处理器的低位宽数据矩阵向量化转置方法,其特征在于,包括:将低位宽数据矩阵存储在双倍速率同步动态随机存储器中;调用直接存储器访问操作,将所述低位宽数据矩阵从所述双倍速率同步动态随机存储器加载到片上阵列存储器空间;在所述阵列存储器空间中,对加载到所述片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵;其中,所述低位宽数据矩阵 的维度为 ;其中,所述调用直接存储器访问操作,将低位宽数据矩阵从双倍速率同步动态随机存储器加载到片上阵列存储器空间,包括:调用直接存储器访问操作,将所述低位宽数据矩阵 的子矩阵 加载到片上阵列存储器空间中,变为 ,其中 、 , 和 的大小均由阵列存储器的空间大小来决定,其中L表示向量处理单元中向量处理部件的数量。
2.根据权利要求1所述的方法,其特征在于,所述在所述阵列存储器空间中,对加载到所述片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵,包括:步骤1、初始化i=0,其中,i表示M维上的块index;步骤2、初始化j=0,其中,j表示N维上的块index;步骤3、将所述阵列存储器空间中的低位宽数据矩阵的大小为 的子块矩阵 的数据加载到4个向量寄存器VR0、VR1、VR2和VR3中;步骤4、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR4中;步骤5、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR6中;步骤6、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR5中;步骤7、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR7中;步骤8、将向量寄存器VR4和向量寄存器VR5中的数据以地址取模方式交错地存回阵列存储器空间 ;步骤9、将阵列存储器空间中位置 大小为 的数据加载到向量寄存器VR0和向量寄存器VR1中;步骤10、将向量寄存器VR6和向量寄存器VR7中的数据以地址取模方式交错地存回阵列存储器空间 ;步骤11、将阵列存储器空间中位置 大小为 的数据加载到向量寄存器VR2和向量寄存器VR3中;步骤12、初始化k=0,其中,K表示向量处理部件的index;步骤13、通过设置向量单元的Mask状态开启第k个与k+1个向量处理部件,其他向量处理部件均关闭,将向量寄存器VR0-VR1中对应第k和k+1个向量处理部件的数据存储回阵列存储器空间对应位置;将向量寄存器VR2和向量寄存器VR3中对应第k和k+1个向量处理部件的数据存储回阵列存储器空间对应位置;步骤14、令k = k + 2;步骤15、判断k是否小于L,若是,则返回步骤13,若否,则执行步骤16;步骤16、通过设置向量单元的Mask状态,开启所有L个向量处理部件;步骤17、令j = j + 1;步骤18、判断j是否小于 ,若是,则返回步骤3,若否,则执行步骤19;步骤19、令i = i + 1;步骤20、判断i是否小于 ,若是,则返回步骤2,若否,则执行步骤21;步骤21、调用直接存储器访问操作,将所述转置后的矩阵 的子矩阵 从所述阵列存储器空间存储至双倍速率同步动态随机存储器指定位置;步骤22、判断 的子矩阵是否处理完毕,若否,则循环执行以上加载、转置步骤,直到完成 所有子矩阵的转置。
3.一种面向向量处理器的低位宽数据矩阵向量化转置系统,其特征在于,包括:存储模块,用于将低位宽数据矩阵存储在双倍速率同步动态随机存储器中;加载模块,用于调用直接存储器访问操作,将所述低位宽数据矩阵从所述双倍速率同步动态随机存储器加载到片上阵列存储器空间;转置处理模块,用于在所述阵列存储器空间中,对加载到所述片上阵列存储器空间后的矩阵进行转置处理,得到转置后的矩阵;其中,所述低位宽数据矩阵 的维度为 ;其中,所述加载模块具体用于:调用直接存储器访问操作,将所述低位宽数据矩阵 的子矩阵 加载到片上阵列存储器空间中,变为 ,其中 、 , 和 的大小均由阵列存储器的空间大小来决定,其中L表示向量处理单元中向量处理部件的数量。
4.根据权利要求3所述的系统,其特征在于,所述转置处理模块具体用于:步骤1、初始化i=0,其中,i表示M维上的块index;步骤2、初始化j=0,其中,j表示N维上的块index;步骤3、将所述阵列存储器空间中的低位宽数据矩阵的大小为 的子块矩阵 的数据加载到4个向量寄存器VR0、VR1、VR2和VR3中;步骤4、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR4中;步骤5、基于向量寄存器VR0和向量寄存器VR1,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR6中;步骤6、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行低打包操作,将低打包后结果存储在向量寄存器VR5中;步骤7、基于向量寄存器VR2和向量寄存器VR3,L个向量处理部件进行高打包操作,将高打包后结果存储在向量寄存器VR7中;步骤8、将向量寄存器VR4和向量寄存器VR5中的数据以地址取模方式交错地存回阵列存储器空间 ;步骤9、将阵列存储器空间中位置 大小为 的数据加载到向量寄存器VR0和向量寄存器VR1中;步骤10、将向量寄存器VR6和向量寄存器VR7中的数据以地址取模方式交错地存回阵列存储器空间 ;步骤11、将阵列存储器空间中位置 大小为 的数据加载到向量寄存器VR2和向量寄存器VR3中;步骤12、初始化k=0,其中,K表示向量处理部件的index;步骤13、通过设置向量单元的Mask状态开启第k个与k+1个向量处理部件,其他向量处理部件均关闭,将向量寄存器VR0-VR1中对应第k和k+1个向量处理部件的数据存储回阵列存储器空间对应位置;将向量寄存器VR2和向量寄存器VR3中对应第k和k+1个向量处理部件的数据存储回阵列存储器空间对应位置;步骤14、令k = k + 2;步骤15、判断k是否小于L,若是,则返回步骤13,若否,则执行步骤16;步骤16、通过设置向量单元的Mask状态,开启所有L个向量处理部件;步骤17、令j = j + 1;步骤18、判断j是否小于 ,若是,则返回步骤3,若否,则执行步骤19;步骤19、令i = i + 1;步骤20、判断i是否小于 ,若是,则返回步骤2,若否,则执行步骤21;步骤21、调用直接存储器访问操作,将所述转置后的矩阵 的子矩阵 从所述阵列存储器空间存储至双倍速率同步动态随机存储器指定位置;步骤22、判断 的子矩阵是否处理完毕,若否,则循环执行以上加载、转置步骤,直到完成 所有子矩阵的转置。