【技术实现步骤摘要】
面向GPDSP的大规模矩阵乘法计算的方法
本专利技术主要涉及通用计算数字信号处理器(General-PurposeDigitalSignalProcessor,简称GPDSP),特指一种适用于GPDSP的大规模矩阵乘法计算的方法。
技术介绍
基本线性代数算法库(BasicLinearAlgebraSubroutines,BLAS)是各类科学计算最常用的核心数学算法库之一,工业界针对各自的处理器平台都推出了高度优化的BLAS实现,如IBM的ESSL、Intel的MKL、AMD的ACML等。其中,矩阵乘法(GeneralMatrix-MatrixMultiplication,GEMM)是BLAS库的核心算法。GEMM是典型的计算密集和访存密集型应用,对处理器的运算能力、访存带宽及延迟要求非常高,相关文献研究表明GEMM计算占据高性能基准测试程序(HighPerformanceLinpack,HPL)运算量的90%以上。因此,针对处理器的体系结构特点研究GEMM优化方法对评测该处理器的计算效率、发挥处理器的计算优势和提高应用程序的运行速度均具有很重要的参考价值。分块矩阵乘法方法是提升大规模GEMM性能的主要方法,最典型的研究是Gunnels针对基于Cache的多级存储结构,提出的分层计算的GEMM优化方法,能够降低存储层次间搬运数据的平均开销。面向Cache结构的分块矩阵乘法方法的主要思想是将大矩阵的乘法分割为一系列子矩阵的乘法,设m为Cache的容量,则分块参数中的子矩阵块大小blocksize通常满足约束条件blocksize<=sqrt(m/ ...
【技术保护点】
一种面向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:计算完毕。
【技术特征摘要】
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...
【专利技术属性】
技术研发人员:刘仲,陈书明,万江华,陈磊,田希,彭元喜,陈虎,扈啸,孙永节,陈胜刚,孙海燕,阳柳,张雪萌,马胜,
申请(专利权)人:中国人民解放军国防科学技术大学,
类型:发明
国别省市:湖南;43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。