[发明专利]面向GPDSP的大规模矩阵乘法计算的方法有效
申请号: | 201510063830.3 | 申请日: | 2015-02-06 |
公开(公告)号: | CN104636316B | 公开(公告)日: | 2018-01-12 |
发明(设计)人: | 刘仲;陈书明;万江华;陈磊;田希;彭元喜;陈虎;扈啸;孙永节;陈胜刚;孙海燕;阳柳;张雪萌;马胜 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16;G06F7/523 |
代理公司: | 湖南兆弘专利事务所(普通合伙)43008 | 代理人: | 周长清 |
地址: | 410073 湖南省长沙市砚瓦池正*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 gpdsp 大规模 矩阵 乘法 计算 方法 | ||
技术领域
本发明主要涉及通用计算数字信号处理器(General-Purpose Digital Signal Processor,简称GPDSP),特指一种适用于GPDSP的大规模矩阵乘法计算的方法。
背景技术
基本线性代数算法库(Basic Linear Algebra Subroutines,BLAS)是各类科学计算最常用的核心数学算法库之一,工业界针对各自的处理器平台都推出了高度优化的BLAS实现,如IBM的ESSL、Intel的MKL、AMD的ACML等。其中,矩阵乘法(General Matrix-Matrix Multiplication,GEMM)是BLAS库的核心算法。GEMM是典型的计算密集和访存密集型应用,对处理器的运算能力、访存带宽及延迟要求非常高,相关文献研究表明GEMM计算占据高性能基准测试程序(High Performance Linpack,HPL)运算量的90%以上。因此,针对处理器的体系结构特点研究GEMM优化方法对评测该处理器的计算效率、发挥处理器的计算优势和提高应用程序的运行速度均具有很重要的参考价值。
分块矩阵乘法方法是提升大规模GEMM性能的主要方法,最典型的研究是Gunnels针对基于Cache的多级存储结构,提出的分层计算的GEMM优化方法,能够降低存储层次间搬运数据的平均开销。面向Cache结构的分块矩阵乘法方法的主要思想是将大矩阵的乘法分割为一系列子矩阵的乘法,设m为Cache的容量,则分块参数中的子矩阵块大小blocksize通常满足约束条件blocksize<=sqrt(m/3),使得子矩阵计算时的数据访问能够全部在Cache中命中,该部分的计算能以接近峰值的性能进行,从而提高整个大矩阵乘法的计算性能。
在专利申请号为201310725118.6的文献(处于实审阶段)中提供了一种通用计算数字信号处理器(General-Purpose Digital Signal Processor,简称GPDSP),它包含CPU核单元和DSP核单元,CPU核单元主要用于负责包括存储管理、文件控制、进程调度、中断管理任务在内的通用事务管理以及提供对通用操作系统的完整支持;DSP核单元包含若干强大计算能力的64位向量处理阵列,用于支持高密集运算任务的解算。传统的面向Cache结构的分块矩阵乘法方法不适合GPDSP的非Cache的向量阵列存储访存模式和向量处理阵列并发向量处理的体系结构特征,难以发挥GPDSP向量计算优势。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种原理简单、操作方便、能充分利用GPDSP的CPU核通用计算和DSP核向量处理阵列强大并行计算、高带宽向量数据加载能力,显著提高DSP核计算访存比的面向GPDSP的大规模分块矩阵乘法计算的方法。
为解决上述技术问题,本发明采用以下技术方案:
一种面向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。
作为本发明的进一步改进:所述步骤S2中MB、KB的确定方法为:设条件(1)MB*KB*w≤s3,(2)(MB*KB*w+KB*NB*w)≤s1,按照满足条件(1)(2)取得的最大MB、KB值为所需要的MB、KB值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510063830.3/2.html,转载请声明来源钻瓜专利网。