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

文档序号:8319127阅读:来源:国知局
5.6,直至列Ii的列消元计算完成;
[0043]S5.7:DSP核使用DMA将片内向量阵列存储器中更新后的列Ii传输至片内共享存储阵列中的原位置。
[0044]作为本发明的进一步改进:将片内共享存储阵列矩阵A中,列首元Im右下方的矩阵记为ΙΛ,矩阵A中第i行位于上三角C的部分记为Ui,列首元1?右方包括1^部分的矩阵记为Li,列Ii不包括列首元I m的部分记为列I’ 1;所述步骤S6的详细流程为:
[0045]S6.1:DSP核使用DMA将列I’决N_i_l个元素从片内共享存储阵列传输到片内标量存储器;
[0046]S6.2:将矩阵1^按照规模vlXv2划分为w个分块矩阵,分块矩阵分别记为L i;0,Li;Li 2,…,Lijw^1, DSP核分w次循环,将每块分块矩阵传输至片内向量阵列存储器中进行计算,将计算结果传回片内共享存储阵列的原存储位置;
[0047]上述矩阵Li的分块规模vl,v2值的确定方法是:vl = N_i,v2 = p ;
[0048]上述循环次数w的确定方法是:w = INT[(N-1_l)/p],其中INT表示对方括号中的值向上取整数;
[0049]将计算分为w次循环,第j+Ι次计算的分块矩阵记为Lu,矩阵Lu内包括矩阵L’ ,的分块矩阵记为L’ i;J,以及行Ui的部分记为U’ i,将DSP核的片内向量阵列存储器分为上下两片缓冲区,缓冲区的大小为q/2字节,DSP核采用DMA双缓冲策略在片内向量阵列存储器和片内共享存储阵列之间进行数据传输及计算。
[0050]作为本发明的进一步改进:所述步骤S6.2的具体流程为:
[0051]S6.2.1:DSP核使用DMA将分块矩阵Ly从片内共享存储阵列传输到片内向量存储器的一个缓冲区中;
[0052]S6.2.2:DSP核启动DMA将下一块矩阵1^」+1从片内共享存储阵列传输到片内向量存储器的另一个缓冲区中;
[0053]S6.2.3:DSP核在步骤S6.2.2启动DMA的同时,按照L’ i;J= L’ ^-1#,i计算更新矩阵L’ ,j;
[0054]上述步骤6.2.3按照如下步骤执行更新矩阵L’ 」的计算;
[0055]S6.2.3.1:DSP核使用标量LOAD指获取片内标量存储器列Ii元素,存入标量寄存器S0;
[0056]S6.2.3.2:DSP核使用标量广播指令将S。数据广播至向量寄存器Z。中;
[0057]S6.2.3.3:DSP核使用向量LOAD指令加载的P个u’ 1向量数据,存入向量寄存器Z1;
[0058]S6.2.3.4:DSP核使用向量LOAD指令加载的p个L’ 向量数据,存入向量寄存器
Z2;
[0059]S6.2.3.5:DSP核使用向量乘减指令执行Z2-ZfZtl;
[0060]S6.2.3.6:DSP核使用向量STORE指令将将计算结果Z2存入片内向量存储器的原位置;
[0061]重复步骤S6.2.3.1至步骤S6.2.3.5,直至完成矩阵L’ ^更新计算;
[0062]S6.2.4:DSP核启动DMA将更新后的矩阵L’i;j从片内向量存储器的缓冲区中传输到片内共享存储阵列的原位置;
[0063]重复步骤S6.2.1至步骤S6.2.4,直至完成矩阵L’ i更新计算。
[0064]与现有技术相比,本发明的优点在于:本发明的面向GPDSP的矩阵LU分解向量化计算的方法,为针对GPDSP体系结构特征、高效的矩阵LU分解向量化计算方法,由DSP核的向量处理阵列采用向量化方法计算串行的列选主元、行交换和列更新计算任务,由DSP核的标量处理器和向量处理阵列紧密协同完成更新列panel的计算,充分发挥GPDSP的DSP核向量处理阵列的强大并行计算和高带宽向量数据加载能力的优势,最终提高矩阵LU分解的计算效率。
【附图说明】
[0065]图1是本发明在具体应用实例中所面向的GPDSP计算系统的简化存储模型示意图。
[0066]图2是本发明在具体应用实例中DSP核进行矩阵LU分解计算的流程示意图。
[0067]图3是本发明在具体应用实例中DSP核进行按列选取主元计算的流程示意图。
[0068]图4是本发明在具体应用实例中DSP核进行更新矩阵panel计算的流程示意图。
【具体实施方式】
[0069]以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
[0070]如图1所示,为本发明在具体应用实例中所面向的GPDSP计算系统的简化存储模型示意图。图中,GPDSP计算系统包含的CPU核单元、DSP核单元和片内共享存储阵列。DSP核包含若干64位向量处理阵列,64位标量处理单兀,片内标量存储器和片内向量阵列存储器。片内共享存储阵列,用于CPU核与DSP核数据共享,并提供高带宽供数支持。片外DDR存储器提供大容量的共享存储。
[0071]设GPDSP中DSP核的向量处理阵列计算单元数量为P个,每个计算单元包括s个MAC部件(乘加部件),DSP核的片内向量阵列存储器容量为q字节,GPDSP的片内共享存储阵列容量为r字节,GPDSP的片外共享DDR存储容量为t字节。
[0072]如图2所示,本发明的面向GPDSP的矩阵LU分解向量化计算的方法,在应用实例中的具体流程为:
[0073]S1:根据GPDSP的体系结构特征确定最佳的LU分解的矩阵规模N值。设所处理的LU分解的矩阵规模为NXN阶非奇异矩阵,每个矩阵元素的数据为u字节。
[0074]上述矩阵规模的N值的确定方法是:设条件(l)2*u*p*s*N彡q ;(2)u*N*N彡r ;按照满足条件(I) (2)取得的最大N值为所需要的N值。
[0075]S2:GPDSP的DSP核通过DMA从片外DDR存储器将需要处理的矩阵数据传输到片内共享存储阵列中。
[0076]上述片内共享存储阵列中的矩阵标记为矩阵A,其规模为NXN阶,首地址记为AA000
[0077]沿左上至右下的对角线方向,将矩阵A划分为上三角区域(不包括对角线数据),标记为C,以及下三角区域(包括对角线数据),标记为D。将下三角矩阵D按照从左至右的方向按列分别记为lo、1 I2-1im,将每一列的在对角线上的数据,即列首元标记为1Μ、
I [I]、I [2]...I [N-1]。
[0078]S3:GPDSP的DSP核按照列选主元方法,计算第i列(初始i = O)的主元值以及对应的列元素序号值。
[0079]S4:GPDSP的DSP核根据上述计算得到的列^的列主元P 及对应的列元素序号值Vi对矩阵A内列主元P i所在的行与列首元I ti]所在的行进行交换。
[0080]S5:GPDSP的DSP核对列^按照公式Ii=I 进行列消元计算,更新列I i。
[0081]将片内共享存储阵列矩阵A中,列首元Im右下方的矩阵记为L’ i,矩阵A中第i行位于上三角C的部分记为Ui,列首元1^右方包括u 1部分的矩阵记为L i,列^不包括列首元Im的部分记为列I’ i。
[0082]S6:GPDSP的DSP核按照V V「I’ ^ui进行更新矩阵panel的计算。
[0083]S7:判断i是否等于N-1,若不是,令i = i+Ι,转步骤S3,若是转步骤S8。
[0084]S8:矩阵A的LU分解计算完毕。DSP核使用DMA将矩阵A从片内共享存储阵列传输到片外DDR存储器的原存储位置。
[0085]在具体应用实例中,如图3所示,上述步骤S3的详细流程为:
[0086]S3.1:DSP核通过DMA将列Ii从片内共享存储阵列中传输至片内向量阵列存储器。设初始值为全O的向量寄存器Z2和向量寄存器Z5,以及初始值为{O,1,2,一,P-1}的向量寄存器Z4。
[0087]S3.2:DSP核的向量处理阵列依次通过向量LOAD指令加载P个元素,存入向量寄存器Ztl。
[0088]S3.3:DSP核的向量处理阵列对上述向量数据Ztl进行向量绝对值操作,结果存入向量寄存器Zp
[0089]S3.4:DSP核的向量处理阵列对上述向量数据21与Z 2的值进行向量比较操作,将比较结果存入向量寄存器Z3。
[0090]S3.5:根据上述比较结果值Z3,DSP核的向量处理阵列使用向量MOV操作将Z1*比Z2数值更大的数据值更新向量寄存器Z 2;dsp核的向量处理阵列将数值更大的数据所对应存储在&中的列元素序号替换存入
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1