【技术实现步骤摘要】
面向通用多核DSP的矩阵乘加速方法
本专利技术涉及矩阵乘加速方法,尤指面向通用多核DSP结构的矩阵乘加速方法。
技术介绍
随着通用DSP计算性能的不断攀升和通用DSP的广泛应用,通用多核DSP必将成为高性能计算重要的发展方向。矩阵乘是数值计算中最常用的一类操作,很多应用中都包含矩阵乘的计算过程,面向通用多核DSP设计高效的矩阵乘方法可以有效提高应用的计算速度和提升通用多核DSP的计算效率,以达到通用多核DSP的设计目标。矩阵乘是将被乘矩阵A的一行和乘数矩阵B的一列相乘得到结果矩阵C中的一个元素。面向多核系统的矩阵乘法通常需要将矩阵乘计算过程合理分布在各个处理器计算核之间并行完成计算过程,以提高矩阵乘的运算速度和最大化异构系统的计算效率。由于处理器设计目标和指令集结构的不同,传统的面向通用处理器的矩阵乘实现技术很难满足面向特定应用而设计的处理器DSP(DigitalSignalProcessing,数字信号处理)的性能要求,因此,必须面向DSP体系结构定制高效的矩阵乘,以提高矩阵乘的运算速度,最大限度满足处理器设计目标。随着通用多核DSP计算性能的不断攀升和广泛应用 ...
【技术保护点】
一种面向通用多核DSP的矩阵乘加速方法,其特征在于包括以下步骤:第一步、DSP配置与初始化:1.1 定义矩阵A的维度为M×K,矩阵B的维度为K×N,A和B相乘的结果矩阵C的维度为M×N,M,K,N均为正整数;A的元素为apq(0≤p≤M‑1,0≤q≤K‑1),B的元素为bst(0≤s≤K‑1,0≤t≤N‑1);1.2 查询体系结构手册获取DSP中DSP计算核,即虚拟处理单元VPU的拓扑结构mg×ng,即DSP中有mg×ng个VPU,物理分布为mg行×ng列,依次编号为(0,0),(0,1),…(0,ng‑1),(1,0),(1,1),…(1,ng‑1),……(mg‑1,0) ...
【技术特征摘要】
1.一种面向通用多核DSP的矩阵乘加速方法,其特征在于包括以下步骤:第一步、DSP配置与初始化:1.1定义矩阵A的维度为M×K,矩阵B的维度为K×N,A和B相乘的结果矩阵C的维度为M×N,M,K,N均为正整数;A的元素为apq,0≤p≤M-1,0≤q≤K-1,B的元素为bst,0≤s≤K-1,0≤t≤N-1;1.2查询体系结构手册获取DSP中DSP计算核,即虚拟处理单元VPU的拓扑结构mg×ng,即DSP中有mg×ng个VPU,物理分布为mg行×ng列,依次编号为(0,0),(0,1),…(0,ng-1),(1,0),(1,1),…(1,ng-1),……(mg-1,0),(mg-1,1),…(mg-1,ng-1);1.3查询体系结构手册获取每个VPU拥有的浮点乘累加功能部件VPE的数目me;1.4利用系统软件提供的初始化函数完成DSP初始化;第二步、对矩阵A和矩阵B进行划分,依据VPU的拓扑结构mg×ng将原矩阵乘运算转换为分块矩阵乘运算;第三步、每个VPU同时并行执行如下数据迁移操作:3.1令A块矩阵行变量i'=0;3.2令A块矩阵列变量j'=0;3.3核(i',j')从DSP存储空间读A块矩阵Ai'j'到存储器AM,Ai'j'占用的存储空间记为3.4令B块矩阵列变量k”=0;3.5核(j',k”)从DSP存储空间读B块矩阵Bj'k”到标量数据缓冲区L1D;3.6每个VPU并行执行如下向量乘法操作:3.7获取A块矩阵Ai'j'的维度m'0×k0,1≤m'0≤m,1≤k0≤k;3.8令列长度变量j”=0;3.9初始化向量循环变量v=0;3.10定义向量循环次数表示下取整;3.11初始化广播变量r=0;3.12从A块矩阵Ai'j'的第j”列的第v*me个元素开始连续读取me个元素,组成me维的向量3.13取矩阵Bj'k”第j”行中的第r个元素广播成一个me维的向量3.14向量Va与Vb对应元素相乘,得到矩阵C第j”列连续me个元素的部分乘积,具体相乘规则如下:3.15将3.14得到的矩阵C第j”列连续me个元素的部分乘积传回至AM,这me个元素占据的存储空间记为3.16如果j”>0,转3.17,否则,转3.18;3.17将3.15传回的第j”列连续me个元素的部分乘积与AM中存储的j”-1列连续me个元素的部分乘积对应相加,具体相加方法如下:3.17.1令i3=vme+0;3.17.2Ci'k”(i3,j”)=Ci'k”(i3,j”)+Ci'k”(i3,j”-1),Ci'k”(i3,j”)表示结果矩阵的块矩阵Ci'k”的元素;3.17.3i3=i3+1;3.17.4如果i3≤vme+(me-1),转3.17.2,否则,转3.17.5;3.17.5将3.17.2累加结果传回至阵列存储器,占用的存储空间记为3.18广播变量r=r+1;3.19如果r<k0,转3.12,否则,转3.20;3.20向量循环变量v=v+1;3.21如果v<Vz,转3.11,否则,转3.22;3.22定义向量循环余数vr=m0-v*me;3.23从A块矩阵Ai'j'的第j”列的第v*me个元素开始连续读取vr个元素构成一个me维的向量的前vr个分量,后面me-vr个分量以0补充,组成向量3.24如果v=Vz,转3.13,否则,转3.25;3.25j”=j”+1;3.26如果j”<n0;转3.9,否则,转3.27;3.27k”=k”+1;3.28如果k”≤ng-1,转3.5,否则,转3.29;3.29j'=j'+1;3.30如果j'≤ng-1,转3.3,否则,转3.31;3.31i'=i'+1;3.32如果i≤mg-1,转3.2,否则,转第四步;第四步、依据数据分布原理,将各VPU中阵列存储器的结果归并组成结果矩阵C=A×B的计算结果;第五步、结束。2.如权利要求1所述的面向通用多核DSP的矩阵乘加速方法,其特征在于对矩阵A和矩阵B进行划分的方法是:2.1将M*K的矩阵A采用矩阵划分方法划分为mg×ng个A块矩阵,A块矩阵表示为Aij,0≤i≤mg-1,0≤j≤ng-1,...
【专利技术属性】
技术研发人员:迟利华,刘杰,甘新标,晏益慧,徐涵,胡庆丰,蒋杰,李胜国,王庆林,皇甫永硕,崔显涛,周陈,
申请(专利权)人:中国人民解放军国防科学技术大学,
类型:发明
国别省市:湖南;43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。