基于异构众核处理器的带状矩阵向量乘方法和装置制造方法及图纸

技术编号:39489549 阅读:8 留言:0更新日期:2023-11-24 11:11
本发明专利技术公开了一种基于异构众核处理器的带状矩阵向量乘方法和装置,所述方法基于异构众核处理器的一个加速域来实现;所述异构众核处理器,包括一个通用计算域

【技术实现步骤摘要】
基于异构众核处理器的带状矩阵向量乘方法和装置


[0001]本专利技术涉及高性能计算领域,具体涉及一种基于异构众核处理器的带状矩阵向量乘方法和装置


技术介绍

[0002]目前,带状矩阵向量乘法
(Sparse Matrix Vector Multiplication

SpMV)
作为基本线性代数子程序库
(BLAS)
的关键程序,已被广泛应用于科学模拟

数据分析

深度学习等领域

由于
SpMV
的广泛应用,在各种高性能架构中加速
SpMV
的研究,如多核
CPU,GPGPU

MIC
的研究一直在不断出现

带状矩阵通常采取压缩存储格式,常见的存储格式有:坐标格式
COO(Coordinate)、
压缩行存储格式
CSR(Compressed Sparse Row)、ELL
格式
(ELLPACK)、
切片的
ELL
格式
SELL(Sliced ELL)


[0003]由于能源效率和功率限制,低功耗的嵌入式架构正在被引入异构的高性能计算领域,如数字信号处理器
(DSP)。
基于
CPU

DSP
架构的异构高性能处理器,正逐渐被提出

[0004]如果一个矩阵的非零元素沿主对角线及其相邻的对角线分布,则称为带状矩阵

带状矩阵是一种常见的矩阵类型,有着广泛的应用

通过使用
Reverse Cuthill McKee(RCM)
排序,可以将现有的许多稀疏矩阵转换成带状矩阵,所以充分利用
DSP
特殊架构针对带状矩阵的带状矩阵向量乘运算进行加速是研究的一个重点

现有的
SpMV
计算方法并不适用于加速带状矩阵,这是由于通常带状矩阵自身的非零元分布不规则,传统的
SpMV
计算方法通常会造成较大的访存延迟,导致较大的开销


技术实现思路

[0005]本专利技术所要解决的技术问题在于,提供一种基于异构众核处理器的带状矩阵向量乘方法和装置,解决现有的带状矩阵向量乘中所存在的计算开销大问题

[0006]为了解决上述技术问题,本专利技术实施例第一方面公开了一种基于异构众核处理器的带状矩阵向量乘方法,所述方法基于异构众核处理器的一个加速域来实现,所述异构众核处理器,包括一个通用计算域

若干个加速域和若干个
DDR
内存;所述通用计算域包括若干个通用
CPU
核,所述一个加速域,包括若干个
DSP
核和片上全局共享内存
GSM
,所述一个
DSP
核,包括一个控制核

一个
AM
内存和若干个加速核;所述
DDR
内存
、GSM

AM
内存,三者之间支持
DMA
数据传输;所述方法包括:
[0007]S1
,获取需要进行乘法运算的带状矩阵和向量;
[0008]S2
,将所获取的带状矩阵进行格式转化,将所述向量和格式转化后的带状矩阵存入所述异构众核处理器的内存中;
[0009]S3
,对所述异构众核处理器的内存中带状矩阵和向量进行相乘运算,得到相乘结果

[0010]所述将所获取的带状矩阵和向量进行格式转化,将格式转化后的带状矩阵和向量存入所述异构众核处理器的内存中,包括:
[0011]S21
,将所获取的带状矩阵转化为
SELL
格式带状矩阵
A
,得到对应的
SELL
格式带状矩阵
A
信息;
[0012]S22
,将所述向量和所述
SELL
格式带状矩阵
A
信息,存入所述异构众核处理器的
DDR
内存中;所述
SELL
格式带状矩阵
A
信息,包括所述带状矩阵的非零元值

非零元列索引和基本行块信息;所述带状矩阵
A
,其维度为
m
×
n
;所述向量
X
,其维度为
n
;所述
SELL
格式带状矩阵
A
,包括若干个基本行块;所述基本行块信息,包括非零元值

非零元列索引和行块索引

[0013]所述对所述异构众核处理器的内存中带状矩阵和向量进行相乘运算,得到相乘结果,包括:
[0014]S31
,确定带状矩阵行块数目
N1
;对带状矩阵
A
和向量
X
进行划分处理,得到矩阵行块集合和向量片段集合;所述矩阵行块集合,包括
N1
个行块和对应的行块序号;所述向量片段集合,包括
N1
个向量片段和对应的片段序号;
[0015]S32
,初始化当前计算行块序号
i
=1;
[0016]S33
,确定序号
i
的行块为当前计算行块;利用
DMA
点对点传输方法,将所述当前计算行块和对应的向量
X
的片段,从所述异构众核处理器的
DDR
内存加载到所述加速域的片上全局共享内存
GSM
中;
[0017]S34
,确定所述加速域所包含
DSP
核的数目
coreNUM
,为矩阵行块划分数
coreNUM1
;根据矩阵行块划分数
coreNUM1
,将当前计算行块按行方向均匀划分为
coreNUM1
个子行块,把每个子行块,依次分配给各个
DSP
核进行并行处理;确定子行块包含的基本行块个数
beta

[0018]S35
,每个
DSP
核根据所处理的子行块的基本行块的非零元列索引,将所述非零元列索引对应的向量
X
的片段的元素,由片上全局共享内存
GSM
加载到所述
DSP
核的
AM
内存上;
[0019]S36
,对每个
DSP
核,利用
DMA
点对点传输方法,将其所处理的子行块的基本行块的非零元值,由片上全局共享内存
GSM
加载本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于异构众核处理器的带状矩阵向量乘方法,其特征在于,所述方法基于异构众核处理器的一个加速域来实现;所述异构众核处理器,包括一个通用计算域

若干个加速域和若干个
DDR
内存;所述通用计算域包括若干个通用
CPU
核,所述一个加速域,包括若干个
DSP
核和片上全局共享内存
GSM
,所述一个
DSP
核,包括一个控制核

一个
AM
内存和若干个加速核;所述
DDR
内存
、GSM

AM
内存,三者之间支持
DMA
数据传输;所述方法包括:
S1
,获取需要进行乘法运算的带状矩阵和向量;
S2
,将所获取的带状矩阵进行格式转化,将所述向量和格式转化后的带状矩阵存入所述异构众核处理器的内存中;
S3
,对所述异构众核处理器的内存中带状矩阵和向量进行相乘运算,得到相乘结果
。2.
如权利要求1所述的基于异构众核处理器的带状矩阵向量乘方法,其特征在于,所述将所获取的带状矩阵和向量进行格式转化,将格式转化后的带状矩阵和向量存入所述异构众核处理器的内存中,包括:
S21
,将所获取的带状矩阵转化为
SELL
格式带状矩阵
A
,得到对应的
SELL
格式带状矩阵
A
信息;
S22
,将所述向量和所述
SELL
格式带状矩阵
A
信息,存入所述异构众核处理器的
DDR
内存中;所述
SELL
格式带状矩阵
A
信息,包括所述带状矩阵的非零元值

非零元列索引和基本行块信息;所述带状矩阵
A
,其维度为
m
×
n
;所述向量
X
,其维度为
n
;所述
SELL
格式带状矩阵
A
,包括若干个基本行块;所述基本行块信息,包括非零元值

非零元列索引和行块索引
。3.
如权利要求2所述的基于异构众核处理器的带状矩阵向量乘方法,其特征在于,所述对所述异构众核处理器的内存中带状矩阵和向量进行相乘运算,得到相乘结果,包括:
S31
,确定带状矩阵行块数目
N1
;对带状矩阵
A
和向量
X
进行划分处理,得到矩阵行块集合和向量片段集合;所述矩阵行块集合,包括
N1
个行块和对应的行块序号;所述向量片段集合,包括
N1
个向量片段和对应的片段序号;
S32
,初始化当前计算行块序号
i
=1;
S33
,确定序号
i
的行块为当前计算行块;利用
DMA
点对点传输方法,将所述当前计算行块和对应的向量
X
的片段,从所述异构众核处理器的
DDR
内存加载到所述加速域的片上全局共享内存
GSM
中;
S34
,确定所述加速域所包含
DSP
核的数目
coreNUM
,为矩阵行块划分数
coreNUM1
;根据矩阵行块划分数
coreNUM1
,将当前计算行块按行方向均匀划分为
coreNUM1
个子行块,把每个子行块,依次分配给各个
DSP
核进行并行处理;确定子行块包含的基本行块个数
beta

S35
,每个
DSP
核根据所处理的子行块的基本行块的非零元列索引,将所述非零元列索引对应的向量
X
的片段的元素,由片上全局共享内存
GSM
加载到所述
DSP
核的
AM
内存上;
S36
,对每个
DSP
核,利用
DMA
点对点传输方法,将其所处理的子行块的基本行块的非零元值,由片上全局共享内存
GSM
加载到所述
DSP
核的
AM
内存上;
S37
,每个
DSP
核在其
AM
内存上,对其所分配的子行块与对应向量
X
的片段值进行向量乘运算,得到所述子行块的第一运算结果
Y

S38
,当所有
DSP
核均已计算得到对应子行块的第一运算结果后,对所有子行块的第一运算结果进行合并处理,得到当前计算行块的第二运算结果;判断是否得到所有行块的第二运算结果,若已得到所有行块的第二运算结果,执行
S39
,若未得到所有行块的第二运算结果,对当前计算行块序号
i
加1,执行
S33

S39
,将每个行块的第二运算结果加载到对应的
DSP
核的
DDR
内存,对所有行块的第二运算结果进行合并处理,得到相乘结果
。4.
...

【专利技术属性】
技术研发人员:董德尊李胜国毕德顺张一尘杨肖剑袁璠
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1