【技术实现步骤摘要】
矩阵乘运算方法、装置和电子设备
[0001]本申请涉及数据处理
,具体而言,涉及一种矩阵乘运算方法
、
装置和电子设备
。
技术介绍
[0002]基础线性代数子程序库(
Basic Linear Algebra Subprograms
,
BLAS
)是一系列线性代数运算函数的接口标准,这里的线性代数运算是指例如矢量的线性组合,矩阵乘以矢量,矩阵乘以矩阵等
。
不同的企业
、
平台
、
设计者可以写出不同版本的
BLAS
库来实现同样类型的接口功能,但对于同样的接口,各自所用的内部实现算法不同,这一点导致在不同架构设备上不同版本的
BLAS
表现性能会存在差异
。
[0003]其中,通用矩阵乘(
General Matrix Multiplication
,
Gemm
)是两个矩阵 a (mk)、b (kn) 相乘得到新的矩阵
c (mn) 的线性代数运算,该过程理论上需要
mnk
次乘法和
mnk
次加法运算,当矩阵的元素数据量
m, n, k 很大(比如超过
1024
)时,运算量会非常巨大,运算速度较慢
。
技术实现思路
[0004]有鉴于此,本申请实施例提供了一种矩阵乘运算方法
、
装置和电子设备,以改善进行
B ...
【技术保护点】
【技术特征摘要】
1.
一种矩阵乘运算方法,其特征在于,应用于电子设备,所述电子设备上设置有加速运算器,所述加速运算器包括:多个加速处理单元,该方法包括:分别将待进行矩阵乘运算的第一输入数据和第二输入数据拆分为多个第一数据单元和多个第二数据单元;基于拆分得到的所述多个第一数据单元和所述多个第二数据单元,为每个加速处理单元分配待处理的多个目标数据单元组,每个目标数据单元组包括用于进行矩阵乘运算的一个第一数据单元和一个第二数据单元;采用所述每个加速处理单元,分别对各自被分配的所述多个目标数据单元组进行矩阵乘运算,得到所述每个加速处理单元各自对应的多个输出数据单元;根据所述多个加速处理单元中所有加速处理单元的多个输出数据单元,确定所述第一输入数据和所述第二输入数据的运算结果;所述基于拆分得到的所述多个第一数据单元和所述多个第二数据单元,为每个加速处理单元分配待处理的多个目标数据单元组,包括:对所述多个第一数据单元和所述多个第二数据单元进行组合,得到多个数据单元组;获取每个数据单元组中的第一数据单元在所述第一输入数据中的第一索引以及所述每个数据单元组中的第二数据单元在所述第二输入数据中的第二索引;根据所述第一索引和所述第二索引,从所述多个数据单元中为所述每个加速处理单元分配所述多个目标数据单元组
。2.
根据权利要求1所述的方法,其特征在于,所述根据所述第一索引和所述第二索引,从所述多个数据单元中为所述每个加速处理单元分配所述多个目标数据单元组,包括:根据所述第一索引和所述第二索引,确定所述每个数据单元组对应的输出数据单元的第三索引;根据所述第三索引,从所述多个数据单元组中为所述每个加速处理单元分配所述多个目标数据单元组
。3.
根据权利要求2所述的方法,其特征在于,所述根据所述第三索引,从所述多个数据单元组中为所述每个加速处理单元分配所述多个目标数据单元组,包括:根据所述第三索引和所述多个加速处理单元的数量进行求余,得到余数;根据所述余数,从所述多个数据单元组中为所述每个加速处理单元分配所述多个目标数据单元组
。4.
根据权利要求1所述的方法,其特征在于,所述分别将待进行矩阵乘运算的第一输入数据和第二输入数据拆分为多个第一数据单元和多个第二数据单元,包括:若所述第一输入数据和所述第二输入数据满足预设均分条件,则将所述第一输入数据均分为所述多个第一数据单元,以及将所述第二输入数据均分为所述多个第二数据单元
。5.
根据权利要求1所述的方法,其特征在于,所述分别将待进行矩阵乘运算的第一输入数据和第二输入数据拆分为多个第一数据单元和多个第二数据单元,包括:若所述第一输入数据和所述第二输入数据中的至少一个输入数据不满足预设均分条件,则将所述至少一个输入数据拆分为前
p
‑1个数据单元以及第
p
个数据单元,其中,所述前
p
‑1个数据单元的数据形状相等,且所述前
p
‑1个数据单元和所述第
p
个数据单元的数据形状...
【专利技术属性】
技术研发人员:姜沛,
申请(专利权)人:上海登临科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。