面向gpdsp的矩阵lu分解向量化计算的方法_4

文档序号:8319127阅读:来源:国知局
V..Iim,将每一列的在对角线上的数据,即列首元标记为1M、1ω、Im-1mO
4.根据权利要求3所述的面向GPDSP的矩阵LU分解向量化计算的方法,其特征在于,在所述步骤S5中,将片内共享存储阵列矩阵A中,列首元Im右下方的矩阵记为L’ i,矩阵A中第i行位于上三角C的部分记为Ui,列首元Im右方包括u i部分的矩阵记SLi,列^不包括列首元Im的部分记为列I’ i。
5.根据权利要求1?4中任意一项所述的面向GPDSP的矩阵LU分解向量化计算的方法,其特征在于,所述步骤S3的详细流程为: S3.1:DSP核通过DMA将列1#片内共享存储阵列中传输至片内向量阵列存储器;设初始值为全O的向量寄存器Z2和向量寄存器Z5,以及初始值为{0,1,2,一,p-1}的向量寄存器Z4; S3.2:DSP核的向量处理阵列依次通过向量LOAD指令加载p个元素,存入向量寄存器Z0; S3.3:DSP核的向量处理阵列对上述向量数据Ztl进行向量绝对值操作,结果存入向量寄存器Z1; S3.4:DSP核的向量处理阵列对上述向量数据Z# Z 2的值进行向量比较操作,将比较结果存入向量寄存器Z3; S3.5:根据上述比较结果值Z3,DSP核的向量处理阵列使用向量MOV操作将Z1中比Z2数值更大的数据值更新向量寄存器Z2;DSP核的向量处理阵列将数值更大的数据所对应存储在&中的列元素序号替换存入向量寄存器z 5中; S3.6:DSP核的向量处理阵列使用向量加法操作将向量寄存器Z4的向量数值加P ; 上述步骤中向量寄存器Z4存储所处理列相对应的列元素序号; 重复步骤S3.1至步骤S3.6,直到完成该列的所有元素计算,最终得到P个列元素值以及对应的P个列元素序号值; 53.7:DSP核的向量处理阵列对上述P个列元素值进行数值大小的比较,计算出绝对值最大的列元素值作为列^的列主元,标记为P i,对应的列元素序号值标记为\。
6.根据权利要求1?4中任意一项所述的面向GPDSP的矩阵LU分解向量化计算的方法,其特征在于,所述步骤S4的详细流程为: 54.1:根据列主元PdA列元素序号值Vi,以及矩阵A在片内共享存储阵列中的首地址AA00,计算得出列主元PjZf在行的首地址AP i= AA oo+u* (Vi+i) *N ; S4.2:根据列首元lti]的列元素序号值,以及矩阵A在片内共享存储阵列中的首地址AAqq,计算得出列首元lti]所在行的首地址Al m= AA 00+u*i*N ; S4.3:将片内向量阵列存储器划分为上下两片半区,半区的大小为q/2字节,DSP核使用DMA将列主元PiK在行共N个元素从片内共享存储阵列中传输至片内向量阵列存储器的上半区; S4.4:DSP核使用DMA将列首元I ti]所在行共N个元素从片内共享存储阵列中传输至片内向量阵列存储器的下半区; S4.5:DSP核使用DMA将上述片内向量阵列存储器的下半区的N个元素数据传输至片内共享存储阵列中以APiS首地址的位置; 54.6:DSP核使用DMA将上述片内向量阵列存储器的上半区的N个元素数据传输至片内共享存储阵列中以Alm为首地址的位置。
7.根据权利要求1?4中任意一项所述的面向GPDSP的矩阵LU分解向量化计算的方法,其特征在于,所述步骤S5的详细流程为: 55.1:DSP核使用DMA将列Ii除列首元素I⑴以外的共N_i_l个元素数据从片内共享存储阵列传输到片内向量阵列存储器; S5.2:DSP核使用标量LOAD指令读取片内共享存储阵列内的列首元素Im,存入标量寄存器S。; S5.3:DSP核使用标量浮点除法指令计算丨八⑴值,结果存入标量寄存器S ^,并使用标量广播指令将Stl的数据广播至向量寄存器Z 0; S5.4:DSP核使用向量LOAD指令依次加载上述已经传输至片内向量阵列存储器的该列的其他元素数据,每次加载P个元素,存入向量寄存器Z1; S5.5:DSP核使用向量乘法指令将向量数据Z1与向量数据Z ^相乘,结果存入向量寄存器Z1; S5.6:DSP核使用向量STORE指令将Z1中的向量数据结果存入片内向量阵列存储器中的原位置; 重复步骤S5.4到步骤S5.6,直至列Ii的列消元计算完成; S5.7:DSP核使用DMA将片内向量阵列存储器中更新后的列1^专输至片内共享存储阵列中的原位置。
8.根据权利要求1?4中任意一项所述的面向GPDSP的矩阵LU分解向量化计算的方法,其特征在于,将片内共享存储阵列矩阵A中,列首元Im右下方的矩阵记为L’ i,矩阵A中第i行位于上三角C的部分记为Ui,列首元ImS方包括u肩分的矩阵记为L i,列1不包括列首元Im的部分记为列I’ 1;所述步骤S6的详细流程为: S6.1:DSP核使用DMA将列I’ N_i_l个元素从片内共享存储阵列传输到片内标量存储器; S6.2:将矩阵1^按照规模vlXv2划分为w个分块矩阵,分块矩阵分别记为L i;0, Li l,L12,…,Li^, DSP核分w次循环,将每块分块矩阵传输至片内向量阵列存储器中进行计算,将计算结果传回片内共享存储阵列的原存储位置; 上述矩阵Li的分块规模vl,v2值的确定方法是:vl = N-1, v2 = P ; 上述循环次数w的确定方法是:w = INT[(N-1-l)/p],其中INT表示对方括号中的值向上取整数; 将计算分为w次循环,第j+Ι次计算的分块矩阵记为Lu,矩阵Lu内包括矩阵L’ ^勺分块矩阵记为L’ ^以及行七的部分记为11’ i,将DSP核的片内向量阵列存储器分为上下两片缓冲区,缓冲区的大小为q/2字节,DSP核采用DMA双缓冲策略在片内向量阵列存储器和片内共享存储阵列之间进行数据传输及计算。
9.根据权利要求8所述的面向GPDSP的矩阵LU分解向量化计算的方法,其特征在于,所述步骤S6.2的具体流程为: S6.2.1:DSP核使用DMA将分块矩阵Ly从片内共享存储阵列传输到片内向量存储器的一个缓冲区中; S6.2.2:DSP核启动DMA将下一块矩阵1^」+1从片内共享存储阵列传输到片内向量存储器的另一个缓冲区中; S6.2.3:DSP核在步骤S6.2.2启动DMA的同时,按照L’ i;J= L’i计算更新矩阵 L,i’J; 上述步骤6.2.3按照如下步骤执行更新矩阵L’ u的计算; S6.2.3.1:DSP核使用标量LOAD指获取片内标量存储器列Ii元素,存入标量寄存器S。; S6.2.3.2:DSP核使用标量广播指令将S。数据广播至向量寄存器Z。中; S6.2.3.3:DSP核使用向量LOAD指令加载的p个u’ 1向量数据,存入向量寄存器Z 1; S6.2.3.4:DSP核使用向量LOAD指令加载的p个L’ ^向量数据,存入向量寄存器Z 2; S6.2.3.5:DSP核使用向量乘减指令执行Z2-ZfZtl; S6.2.3.6:DSP核使用向量STORE指令将将计算结果Z2存入片内向量存储器的原位置; 重复步骤S6.2.3.1至步骤S6.2.3.5,直至完成矩阵L’ ^更新计算; S6.2.4:DSP核启动DMA将更新后的矩阵L’i;j从片内向量存储器的缓冲区中传输到片内共享存储阵列的原位置; 重复步骤S6.2.1至步骤S6.2.4,直至完成矩阵L’ i更新计算。
【专利摘要】一种面向GPDSP的矩阵LU分解向量化计算的方法,其步骤为:S1:根据GPDSP的体系结构特征确定最佳的LU分解的矩阵规模N值;S2:DSP核通过DMA从片外DDR存储器将要处理的矩阵数据传输到片内共享存储阵列中;S3:DSP核按照列选主元方法,计算第i列的主元值以及对应的列元素序号值;S4:根据列li的列主元Pi以及对应的列元素序号值Vi对矩阵A内列主元Pi所在的行与列首元l[i]所在的行进行交换;S5:DSP核对列li按照公式li=li/l[i]进行列消元计算,更新列li;S6:DSP核进行更新矩阵panel的计算;S7:判断i是否等于N-1,若不是,令i=i+1,转步骤S3,若是转步骤S8;S8:计算完毕。本发明能充分利用DSP核向量处理阵列的强大并行计算、高带宽向量数据加载能力,显著提高DSP核计算访存比。
【IPC分类】G06F17-16, G06F13-28
【公开号】CN104636315
【申请号】CN201510063817
【发明人】刘仲, 陈书明, 郭阳, 陈海燕, 田希, 陈磊, 胡封林, 刘蓬侠, 刘胜, 雷元武, 扈啸, 陈跃跃, 王耀华
【申请人】中国人民解放军国防科学技术大学
【公开日】2015年5月20日
【申请日】2015年2月6日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1