[发明专利]面向GPDSP的大规模矩阵乘法计算的方法有效
申请号: | 201510063830.3 | 申请日: | 2015-02-06 |
公开(公告)号: | CN104636316B | 公开(公告)日: | 2018-01-12 |
发明(设计)人: | 刘仲;陈书明;万江华;陈磊;田希;彭元喜;陈虎;扈啸;孙永节;陈胜刚;孙海燕;阳柳;张雪萌;马胜 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16;G06F7/523 |
代理公司: | 湖南兆弘专利事务所(普通合伙)43008 | 代理人: | 周长清 |
地址: | 410073 湖南省长沙市砚瓦池正*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 gpdsp 大规模 矩阵 乘法 计算 方法 | ||
1.一种面向GPDSP的大规模矩阵乘法计算的方法,其特征在于,步骤为:
S1:由GPDSP的CPU核在片外DDR存储器为矩阵A、B和C分配存储空间,并生成初始化数据或者从其他数据来源传输本次计算所需要的数据;
S2:根据GPDSP的体系结构特征确定最佳的分块矩阵乘法所需要的分块大小MB、KB和NB,即令矩阵的M、K、N三个维数对应的分块大小分别标记为MB、KB、NB;
S3:由GPDSP的CPU核根据步骤S2确定的MB、KB、NB值将矩阵A、B和C进行逻辑分块,令mi=INT(M/MB),ki=INT(K/KB),ni=INT(N/NB),其中INT()表示对括号中的值向上取整;矩阵A的子块标记为Aij,1≤i≤mi,1≤j≤ki,矩阵B的子块标记为Bjk,1≤j≤ki,1≤k≤ni,矩阵C的子块标记为Cik,1≤i≤mi,1≤k≤ni;
S4:由GPDSP的CPU核调度DSP核计算子块矩阵的乘加计算:Cik+=Aij*Bjk,1≤i≤mi,1≤j≤ki,1≤k≤ni;
S5:计算完毕;
所述步骤S2中NB的确定方法是NB=p*q;其中,p为DSP核的向量处理阵列计算单元数量,q为每个计算单元的乘加部件MAC数量;
所述步骤S2中MB、KB的确定方法为:设条件(1)MB*KB*w≤s3,(2)(MB*KB*w+KB*NB*w)≤s1,按照满足条件(1)(2)取得的最大MB、KB值为所需要的MB、KB值;其中,DSP核的片内向量阵列存储器容量为s1字节,GPDSP的片内共享存储阵列容量为s3字节,每个矩阵元素的数据为w字节。
2.根据权利要求1所述的面向GPDSP的大规模矩阵乘法计算的方法,其特征在于,所述步骤S4的具体流程为:
S4.1:由GPDSP的CPU核通过DMA将矩阵A的子块Aij加载至片内共享存储阵列中,1≤i≤mi,1≤j≤ki,i,j的初始值均为1;
S4.2:由GPDSP的CPU核调度各个DSP核分别计算子块Aij与矩阵B的子块Bjk的矩阵乘加计算Cik+=Aij*Bjk,1≤k≤ni;
S4.3:由GPDSP的CPU核判断DSP核是否完成子块Aij与矩阵B的所有子块Bjk的矩阵乘加计算Cik+=Aij*Bjk,1≤k≤ni,若是转步骤S4.4,若不是则转步骤S4.2,直至上述DSP核计算任务全部完成;
S4.4:判断j是否等于ki,若不是令j=j+1,转步骤S4.1;若是,则继续判断i是否等于mi,若不是令i=i+1,j=1,转步骤S4.1;若是,转步骤S5。
3.根据权利要求2所述的面向GPDSP的大规模矩阵乘法计算的方法,其特征在于,所述步骤S4.2中共有k=ni次子块矩阵的乘加计算,由CPU核调度各个DSP核依次计算各子块矩阵的乘加计算,每个DSP核接收到计算任务后按照CPU分配的矩阵B和C的逻辑分块由各自核的DMA加载至片内向量存储数据阵列,完成子块矩阵的乘加计算后通知CPU核;CPU核根据子块计算的完成情况派发新的子块矩阵乘加计算任务,直至上述k=ni次子块矩阵的乘加计算全部完成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510063830.3/1.html,转载请声明来源钻瓜专利网。