[发明专利]面向CPU+DSP异构系统的矩阵乘加速方法有效

专利信息
申请号: 201410544785.9 申请日: 2014-10-15
公开(公告)号: CN104317768A 公开(公告)日: 2015-01-28
发明(设计)人: 刘杰;迟利华;甘新标;晏益慧;徐涵;胡庆丰;蒋杰;李胜国;王庆林;皇甫永硕;崔显涛;周陈 申请(专利权)人: 中国人民解放军国防科学技术大学
主分类号: G06F15/16 分类号: G06F15/16;G06F17/16
代理公司: 国防科技大学专利服务中心 43202 代理人: 郭敏
地址: 410073 湖*** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种面向CPU+DSP异构系统的矩阵乘加速方法,目的是面向CPU+DSP异构系统提出一种高效协同的矩阵乘加速方法,以提高矩阵乘的运算速度和最大化CPU+DSP异构系统的计算效率。技术方案是先初始化参数并对CPU+DSP异构系统信息配置,依据主处理器CPU和加速器DSP设计目标和计算性能的差异,将分配给计算结点待处理的数据划分给CPU和DSP协同处理,然后CPU和DSP并行进行数据传输与协同计算,得到个块矩阵C(i-1)(j-1),最后将块矩阵C(i-1)(j-1)归并,组成M×N的结果矩阵C。采用本发明可使得CPU在负责数据传输和程序控制的同时积极与DSP协同完成矩阵乘计算,且数据传输与协同计算重叠,提高了CPU+DSP异构系统的矩阵乘运算速度和计算资源利用率。
搜索关键词: 面向 cpu dsp 系统 矩阵 加速 方法
【主权项】:
一种面向CPU+DSP异构系统的矩阵乘加速方法,其特征在于包括以下步骤:第一步、初始化参数并对CPU+DSP异构系统信息配置,具体步骤如下:1.1定义矩阵A的维度为M×K,矩阵B的维度为K×N,则A与B相乘的结果矩阵C的维度为M×N,M,K,N均为正整数;1.2查询CPU+DSP异构计算系统体系结构文档获取计算节点配置,即一个计算节点由C颗CPU和D颗DSP组成;1.3查询CPU+DSP异构计算系统体系结构文档获取计算结点的拓扑结构m×n,即,CPU+DSP异构系统由m×n个计算节点组成,每行有n个计算节点,每列有m个计算节点;1.4依据计算结点中DSP的个数,将DSP分别标识为0,1,…d,…(D‑1),0≤d<D;1.5依据CPU+DSP异构计算系统提供的基础软件工具集中的相关函数完成DSP初始化;1.6查询CPU+DSP异构计算系统体系结构文档,获取各处理器体系结构信息,即每个计算结点中用于数据传输和流程控制的CPU核个数pcl、用于计算的CPU核个数pct、每个用于计算的CPU核拥有的浮点乘累加功能部件的数目m及主频f,每个DSP单元拥有的浮点乘累加功能部件的数目m'及主频f';1.7计算主处理器的理论计算峰值Rpeak=pct*m*f;1.8计算加速器的理论计算峰值R'peak=D*m'*f';1.9确定矩阵数据划分因子η=R'peak/Rpeak;第二步、依据主处理器CPU和加速器DSP设计目标和计算性能的差异,将分配给计算结点待处理的数据划分给CPU和DSP协同处理,具体方法如下:2.1将M*K的矩阵A划分成m*K的块矩阵Ai表示上取整,具体分块方法如下:2.1.1令i=1;2.1.2选取矩阵A的第(i‑1)*m+1行至第i*m行组成块矩阵Ai;2.1.3i=i+1;2.1.4若转2.1.2,否则,转2.1.5,进行尾部处理;2.1.5选取矩阵A的第(i‑1)*m+1行至第M行组成块矩阵Ai;2.2将K*N的矩阵B划分成K*n的子块矩阵Bj表示上取整,具体分块方法如下:2.2.1令j=1;2.2.2选取矩阵B的第(j‑1)*n列至第j*n列组成块矩阵Bj;2.2.3j=j+1;2.2.4若转2.2.2,否则,转2.2.5,进行尾部处理;2.2.5选取矩阵B的第(j‑1)*n列至第N列组成块矩阵Bj;2.3依据矩阵数据划分因子η将块矩阵Bj划分为1Bj2Bj两个子矩阵,具体方法如下:2.3.1令j=1;2.3.2依据矩阵数据划分因子η将块矩阵Bj划分为1Bj2Bj两个子矩阵,子矩阵1Bj的维度为K*n12Bj的维度为K*n2,并且n1,n2满足公式(1):2.3.3j=j+1;2.3.4若转2.3.2,否则,转第三步;第三步、CPU和DSP并行进行数据传输与协同计算,具体方法如下:3.1令i=1,j=1;3.2采用CPU+DSP异构系统数据传输函数将块矩阵数据Ai2Bj传输至DSP端存储空间,具体步骤如下:3.2.1在DSP端申请大小为size=M×k×sizeof(aij)的存储空间,sizeof(aij)表示矩阵A中元素aij的存储长度,单位为字节;3.2.2采用CPU+DSP异构系统提供的数据传输函数将块矩阵Ai传输至DSP端存储空间,将DSP端存储空间中存储块矩阵Ai的空间称为3.2.3i=i+1;3.2.4在DSP端申请大小为size=k*n2×sizeof(bij)的存储空间,sizeof(bij)表示矩阵B中元素bij的存储长度为多少字节;3.2.5采用CPU+DSP异构系统提供的数据传输函数将子矩阵2Bj传输至DSP端存储空间,将DSP端存储空间中存储块矩阵2Bj的空间称为3.2.6j=j+1;3.3采用3.2.1和3.2.2所述方法传输块矩阵数据Ai传输至3.4采用3.2.4和3.2.5所述方法传输块子矩阵数据2Bj传输至3.5CPU和DSP同时并行执行以下操作:3.5.1用于数据传输和流程控制的CPU核上的主线程负责CPU和DSP之间的通信和交互,同时,主线程创建两个子线程Tc和Td分别控制CPU端和DSP端的矩阵计算;3.5.2Tc调用矩阵乘库函数完成A(i‑1)×1B(j‑1)的矩阵计算,其计算结果为结果矩阵C的块矩阵C(i‑1)(j‑1)的子矩阵1C(i‑1)(j‑1);3.5.3Td调用面向DSP体系结构的矩阵库函数完成A(i‑1)×2B(j‑1)的矩阵计算,其计算结果为结果矩阵C的块矩阵C(i‑1)(j‑1)的子矩阵2C(i‑1)(j‑1);3.5.4主线程将子矩阵2C(i‑1)(j‑1)传回至CPU端存储空间;3.5.5释放3.5.6由子矩阵1C(i‑1)(j‑1)组成块矩阵C(i‑1)(j‑1)第1至第n1列,由子矩阵2C(i‑1)(j‑1)组成块矩阵C(i‑1)(j‑1)第n1+1至第N列,其中,n1+n2=N;3.6j=j+1;3.7如果转3.4,否则,转3.8,进行尾部计算;3.8释放3.9i=i+1;3.10如果转3.3,否则,转第四步;第四步、将个块矩阵C(i‑1)(j‑1)归并,组成M×N的结果矩阵C,具体方法如下:4.1令i=1,j=1;4.2由块矩阵C(i‑1)(j‑1)的第1至第m行的第1列至第n列组成结果矩阵C的第(i‑1)*m+1行至i*m行的第(j‑1)*n+1列至第j*n列;4.3j=j+1;4.4如果转4.2,否则,转4.5,进行列尾部处理;4.5由块矩阵C(i‑1)(j‑1)的第1至第m行的第1列至第N‑(i‑1)*n列组成结果矩阵C的第(i‑1)*m+1行至第i*m行的第(j‑1)*n+1列至第N列;4.6i=i+1;4.7如果转4.2,否则,转4.8,进行行尾部处理;4.8由块矩阵C(i‑1)(j‑1)的第1行第M‑(i‑1)*m行的第1列至第N‑(i‑1)*n列组成结果矩阵C的第(i‑1)*m+1行至第M行的第(j‑1)*n+1列至第N列;第五步、结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201410544785.9/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top