[发明专利]面向通用多核DSP的矩阵乘加速方法有效
申请号: | 201410541958.1 | 申请日: | 2014-10-15 |
公开(公告)号: | CN104346318A | 公开(公告)日: | 2015-02-11 |
发明(设计)人: | 迟利华;刘杰;甘新标;晏益慧;徐涵;胡庆丰;蒋杰;李胜国;王庆林;皇甫永硕;崔显涛;周陈 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 国防科技大学专利服务中心 43202 | 代理人: | 郭敏 |
地址: | 410073 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种面向通用多核DSP的矩阵乘加速方法,目的是提高矩阵乘的运算速度和最大化通用多核DSP的计算效率。技术方案是先对进行DSP配置并初始化:然后对矩阵A和矩阵B进行划分,依据VPU的拓扑结构mg×ng将原矩阵乘运算转换为分块矩阵乘运算;接着每个VPU同时并行执行数据迁移操作;最后依据数据分布原理,将各VPU中AM的结果归并组成结果矩阵C=A×B的计算结果。采用本发明可以提高通用多核DSP结构的矩阵乘运算速度和通用多核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),(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.2 Ci'k″(i3,j″)=Ci'k″(i3,j″)+Ci'k″(i3,j″‑1),Ci'k″(i3,j″)表示结果矩阵的块矩阵Ci'k″的元素;3.17.3 i3=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.21;3.20 向量循环变量v=v+1;3.21 如果v<Vz,转3.11,否则,转3.23;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.26;3.25 j″=j″+1;3.26 如果j″<n0;转3.9,否则,转3.28;3.27 k″=k″+1;3.28 如果k″≤ng‑1,转3.5,否则,转3.30;3.29 j'=j'+1;3.30 如果j'≤ng‑1,转3.3,否则,转3.32;3.31 i'=i'+1;3.32 如果i≤mg‑1,转3.2,否则,转第四步;第四步、依据数据分布原理,将各VPU中阵列存储器的结果归并组成结果矩阵C=A×B的计算结果;第五步、结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410541958.1/,转载请声明来源钻瓜专利网。
- 上一篇:手机保护型健康理疗型珍珠包
- 下一篇:电磁信号屏蔽多功能珍珠包