(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211359341.9
(22)申请日 2022.11.02
(71)申请人 北京红山 微电子技 术有限公司
地址 100176 北京市北京经济技 术开发区
荣华中路22号院1号楼3 0层3001
(72)发明人 毛二坤 郭继正 赵丽娟 邬文俊
朱勤
(74)专利代理 机构 北京超凡宏宇专利代理事务
所(特殊普通 合伙) 11463
专利代理师 刘广
(51)Int.Cl.
G06F 9/30(2006.01)
G06F 9/50(2006.01)
G06F 17/16(2006.01)
(54)发明名称
复数矩阵运算的硬件加速方法、 装置、 芯片
及存储介质
(57)摘要
本申请提供一种复数矩阵运算的硬件加速
方法、 装置、 芯片及存储介质, 属于芯片处理技术
领域。 该方法包括: 读取计算数据并通过缓存单
元以复数矩阵的格式存储计算数据; 确定各组运
算复数矩阵中乘数复数矩阵的元素, 以及被乘数
复数矩阵的元素, 每个元素含实部和虚部; 将各
组运算复数矩阵中的乘数实部数据、 乘数虚部数
据、 被乘数实部数据以及被乘数虚部数据输入至
运算复数矩 阵对应的双点乘计算模块进行点乘
计算, 得到点乘结果; 将各双点乘计算模块输出
的点乘结果输入至累加计算模块进行累加计算
得到目标输出结果。 本申请可以显著提高复数矩
阵运算的效率, 提高计算性能, 降低访存 带宽, 降
低计算功耗。
权利要求书3页 说明书16页 附图11页
CN 115408061 A
2022.11.29
CN 115408061 A
1.一种复数矩阵运算的硬件加速方法, 其特征在于, 应用于计算芯片中的硬件加速器,
所述硬件加速器包括: 控制单元、 缓存 单元以及计算单元, 所述计算单元包括多个双点乘计
算模块以及累加计算模块, 所述方法包括:
读取计算数据并通过所述缓存单元以复数矩阵的格式存储所述计算数据, 以矩阵的格
式存储的计算数据包括: 至少一组运算复数矩阵, 各所述运算复数矩阵中包括乘数复数矩
阵和被乘数复数矩阵, 所述乘数复数矩阵和所述被乘数复数矩阵为可相乘 矩阵;
确定各组运算复数矩阵中所述乘数复数矩阵的元素, 以及所述被乘数复数矩阵的元
素, 每个元素含实部和虚部;
将各组运算复数矩阵中的所述乘数实部数据、 所述乘数虚部数据、 所述被乘数实部数
据以及所述被乘数虚部数据输入至所述运算复数矩阵对应的双点乘计算模块进行点乘计
算, 得到点乘结果;
将各双点乘计算模块输出的所述点乘结果输入至所述累加计算模块进行累加计算得
到目标输出 结果。
2.如权利要求1所述的复数矩阵运算的硬件加速方法, 其特征在于, 各所述双点乘计算
模块包括: 第一 点乘子模块和第二 点乘子模块;
所述将各组运算复数矩阵中的所述乘数实部数据、 所述乘数虚部数据、 所述被乘数实
部数据以及所述被乘数虚部数据输入至所述运算复数矩阵对应的双点乘计算模块进行点
乘计算, 得到点乘结果, 包括:
将各组运算复数矩阵中所述乘数实部数据、 所述被乘数实部数据以及所述被乘数虚部
数据输入至所述第一 点乘子模块进行运 算, 得到第一 点乘结果;
将各组运算复数矩阵中所述被乘数实部数据、 所述乘数虚部数据以及所述被乘数虚部
数据输入至所述第二 点乘子模块进行运 算, 得到第二 点乘结果。
3.如权利要求2所述的复数矩阵运算的硬件加速方法, 其特征在于, 各所述双点乘计算
模块还包括: 第一选择子模块; 在进行点乘计算的过程中, 包括两个连续的计算周期;
所述将各组运算复数矩阵中所述乘数实部数据、 所述被乘数实部数据以及所述被乘数
虚部数据输入至所述第一 点乘子模块进行运 算, 得到第一 点乘结果, 包括:
将各组运算复数矩阵中所述被乘数实部数据以及所述被乘数虚部数据输入至所述第
一选择子模块, 将各组运 算复数矩阵中所述乘数实部数据输入至所述第一 点乘子模块;
在第一计算周期中, 控制所述第 一选择子模块将所述被乘数实部数据发送给所述第 一
点乘子模块与所述乘数实部数据进行运 算, 得到第一计算周期的第一计算结果;
在第二计算周期中, 控制所述第 一选择子模块将所述被乘数虚部数据发送给所述第 一
点乘子模块与所述乘数实部数据进行运 算, 得到第二计算周期的第一计算结果;
将所述第一计算周期的第一计算结果和所述第二计算周期的第一计算结果作为所述
第一点乘结果。
4.如权利要求2所述的复数矩阵运算的硬件加速方法, 其特征在于, 各所述双点乘计算
模块还包括: 第二选择子模块; 在进行点乘计算的过程中, 包括两个连续的计算周期;
所述将各组运算复数矩阵中所述被乘数实部数据、 所述乘数虚部数据以及所述被乘数
虚部数据输入至所述第二 点乘子模块进行运 算, 得到第二 点乘结果, 包括:
将各组运算复数矩阵中所述被乘数实部数据以及所述被乘数虚部数据输入至所述第权 利 要 求 书 1/3 页
2
CN 115408061 A
2二选择子模块, 将各组运 算复数矩阵中所述乘数虚部数据输入至所述第二 点乘子模块;
在第一计算周期中, 控制所述第 二选择子模块将所述被乘数虚部数据发送给所述第 二
点乘子模块与所述乘数虚部数据进行运 算, 得到第一计算周期的第二计算结果;
在第二计算周期中, 控制所述第 二选择子模块将所述被乘数实部数据发送给所述第 二
点乘子模块与所述乘数虚部数据进行运 算, 得到第二计算周期的第二计算结果;
分别对所述第一计算周期的第二计算结果和所述第二计算周期的第二计算结果进行
处理, 得到所述第二 点乘结果。
5.如权利要求4所述的复数矩阵运算的硬件加速方法, 其特征在于, 所述分别对所述第
一计算周期的第二计算结果和所述第二计算周期的第二计算结果进行 处理, 得到所述第二
点乘结果, 包括:
通过使能信号控制所述第一计算周期的第二计算结果和所述第二计算周期的第二计
算结果进行取反处理得到第一计算周期取反后的计算结果以及第二计算周期取反后的计
算结果;
对所述第一计算周期取反后的计算结果进行加一处理, 得到第 一计算周期加一后的计
算结果;
将所述第一计算周期加一后的计算结果和所述第二计算周期取反后的计算结果作为
所述第二 点乘结果。
6.如权利要求1所述的复数矩阵运算的硬件加速方法, 其特征在于, 所述读取计算数据
并通过所述缓存单 元以矩阵的格式存 储所述计算数据之前, 所述方法还 包括:
确定所述计算数据中各个矩阵行列的大小;
若存在矩阵行列的大小大于预设矩阵行列 大小的目标矩阵, 对所述目标矩阵进行矩阵
分割处理, 所述预设矩阵行列大小小于或者等于所述计算单元可运算矩阵行列大小的上
限。
7.如权利要求1所述的复数矩阵运算的硬件加速方法, 其特征在于, 所述通过所述缓存
单元以矩阵的格式存 储所述计算数据, 包括:
对于每组运 算复数矩阵, 按照如下 方式进行存 储:
通过所述缓存单 元按照行优先存 储的方式进行 连续存储得到所述乘数复数矩阵;
通过所述缓存单元按照列优先存储的方式进行连续存储得到所述被乘数复数矩阵, 其
中, 所述乘数复数矩阵的列 与所述被乘数复数矩阵的行相等。
8.一种复数矩阵运算硬件加速装置, 其特征在于, 应用于计算芯片中的硬件加速器, 所
述硬件加速器包括: 控制单元、 缓存单元以及计算单元, 所述计算单元包括多个双点乘计算
模块以及累加计算模块, 所述装置包括: 读取模块、 确定模块、 点乘计算模块以及累加计算
模块;
所述读取模块, 用于读取计算数据并通过所述缓存单元以复数矩阵的格式存储所述计
算数据, 以矩阵的格式存储的计算数据包括: 至少一组运算复数矩阵, 各所述运算复数矩阵
中包括乘数复数矩阵和被乘数复数矩阵, 所述乘数复数矩阵和所述被乘数复数矩阵为可相
乘矩阵;
所述确定模块, 用于确定各组运算复数矩阵中所述乘数复数矩阵的乘数实部数据、 乘
数虚部数据以及所述被乘数复数矩阵的被乘数实部数据和被乘数虚部数据;权 利 要 求 书 2/3 页
3
CN 115408061 A
3
专利 复数矩阵运算的硬件加速方法、装置、芯片及存储介质
文档预览
中文文档
31 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共31页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-24 01:00:27上传分享