全网唯一标准王
(19)国家知识产权局 (12)发明 专利 (10)授权公告 号 (45)授权公告日 (21)申请 号 202211298722.0 (22)申请日 2022.10.24 (65)同一申请的已公布的文献号 申请公布号 CN 115373630 A (43)申请公布日 2022.11.22 (73)专利权人 北京麟卓信息科技有限公司 地址 100085 北京市海淀区西三 旗昌临801 号27号3层310、 312 (72)发明人 杜凯 温研  (51)Int.Cl. G06F 7/544(2006.01) G06F 15/78(2006.01) G06F 17/16(2006.01) (56)对比文件 CN 112149816 A,2020.12.2 9US 2020201642 A1,2020.0 6.25 US 20210 67952 A1,2021.0 3.04 CN 113313243 A,2021.08.27 CN 103530276 A,2014.01.2 2 郭东等.设计关联矩阵智能分解方法. 《计算 机工程与设计》 .201 1,(第01期), 刘仲等.面向多 核向量处 理器的矩阵乘法向 量化方法. 《计算机学报》 .2017,(第10期), 审查员 郭明华 (54)发明名称 一种面向异构芯片的矩阵乘法运算过程优 化方法 (57)摘要 本发明公开了一种面向异构芯片的矩阵乘 法运算过程优化方法, 通过根据矩阵乘法运算相 关矩阵的结构和异构芯片的硬件参数确定计算 过程中相关参数的优化范围及方式, 从而实现了 对分块优化、 访存合并、 循环展 开、 流水并行及向 量并行等优化技术的联合运用, 达到了对矩阵乘 法运算过程进行优化的效果。 权利要求书2页 说明书6页 CN 115373630 B 2022.12.20 CN 115373630 B 1.一种面向异构芯片的矩阵乘法运 算过程优化方法, 其特 征在于, 包括以下步骤: 步骤1、 建立芯片的屋檐模型; 根据所述屋檐模型确定芯片的访存带宽阈值和算力阈 值; 令迭代次数为1; 步骤2、 运行待执行代码, 所述待执行代码中包含矩阵乘法运算; 获取芯片的实时访存 带宽和实时算力; 若实时访存带宽和实时算力 分别小于访存带宽阈值和 算力阈值, 且迭代 次数小于次数阈值, 则执行步骤3; 若实时访存带宽不小于访存带宽阈值, 且实时算力小于 算力阈值, 同时迭代次数小于次数阈值, 则执行步骤4; 若实时访 存带宽小于访 存带宽阈值, 且实时算力不小于算力阈值, 同时迭代 次数小于次数阈值, 则执行步骤3; 若实时访存带宽 和实时算力 分别不小于访存带宽阈值和 算力阈值, 则结束本优化流程; 若迭代次数不小于 次数阈值, 则结束本优化 流程; 步骤3、 采用模拟退火算法确定寄存器及局部共享存储器内与矩阵乘法相关的优化分 块大小, 执 行步骤2; 步骤4、 顺序执 行向量并行、 循环展开及流水并行完成算力优化后, 执 行步骤2; 所述步骤3 中的所述采用模拟退火算法确定寄存器及局部共享存储器 内与矩阵乘法相 关的优化分块大小的方式, 包括以下步骤: 步骤3.1、 定义模拟退火算法的解状态S表示为{mL0, kL0, nL0, mL1, kL1, nL1}, 其中, mL0为寄 存器L0内输入矩阵AL0的行数, kL0为寄存器L0内输入矩阵AL0的列数, nL0为寄存器 L0内输入矩 阵BL0的列数, mL1为共享存储器L1内输入矩阵AL1的行数, kL1为共享存储器L1内输入矩阵AL1 的列数, nL1为共享存 储器L1内输入矩阵BL1的列数; 步骤3.2、 令解状态S取初始解状态S0, 初始解状态S0表示为{mL0i, kL0i, nL0i, mL1i, kL1i, nL1i}, 令温度T取初始值T0; 在初始解状态S0下执行待执行代码, 得到代码实际执行时间, 将 该执行时间记为t_S; 令计数变量j取初始值 零; 步骤3.3、 改变解状态S为解状态S ′, 解状态S ′表示为{mL0c, kL0c, nL0c, mL1c, kL1c, nL1c}, 在 解状态S′下执行待执行代码, 得到代码实际执 行时间记为t_S ′; 步骤3.4、 求得计算时间增量Δt=t_S ′ ‑t_S; 若Δt小于零且温度T大于温度阈值, 则采 用解状态S ′对应的计算时间t_S ′更新t_S, 令温度T衰减设定步进后执行步骤3.3; 若Δt小 于零且温度T不大于温度阈值, 则将当前解状态S ′作为最优解的分块大小进 行输出, 退出本 流程; 若Δt大于零且温度T大于温度阈值, 则以设定概率采用t_S ′更新t_S, 并令温度T衰减 设定步进后执行步骤3.3; 若Δt大于零且温度T不大于温度阈值, 则将当前解状态S ′作为最 优解的分块大小进行输出, 退出本流程; 若Δt等于零且温度T大于温度阈值, 同时j不大于 次数阈值, 则令温度T衰减设定步进后执行步骤3.3; 若Δt等于零且温度T不大于温度阈值 或j大于次数阈值, 则将当前解状态S ′作为最优解的分块大小 进行输出, 退 出本流程; 所述步骤3.1的解状态S中各 元素取值的确定方式为: mL0的取值为芯片的最小并行执行线程数, kL0的取值为在区间[1,mL0]内选定的任意值, nL0的取值为满足条件1的最大值; mL1的取值为 区间[mL0,mL0_df]内mL0的整数倍, kL1的取值为 区间[kL0,kL0_df]内kL0的整数倍, nL1的取值为满足条件2且在区间[nL0,nL0_df]内nL0的整数倍 的值; 其中, mL0_df为系统默认确定的寄存器L0内输入矩阵AL0的行数, kL0_df为系统默认确定 的寄存器L0内输入矩阵AL0的列数, nL0_df为寄存器L0内输入矩阵BL0的列数; 所述条件1表示为(mL0*kL0+kL0*nL0+mL0*nL0)*B<SR, 其中, B表示数据精度对应的字节数,权 利 要 求 书 1/2 页 2 CN 115373630 B 2SR表示芯片单个计算核心对应的寄存器大小; 所述条件2表示为Num_pe*(mL1*kL1+kL1*nL1)< Cap_L1, 其中, Num_pe表示芯片内单个计算单元中计算核心的数量, Cap_L1表示共享存储器 L1的容量。 2.根据权利要求1所述的矩阵乘法运算过程优化方法, 其特征在于, 所述步骤3中在执 行步骤2之前还包括将全局内存转换为连续空间, 并判断局部共享存储器内是否存在bank 冲突, 若存在则对其存 储的矩阵进行转置或偏移1位访问操作。 3.根据权利要求1所述的矩阵乘法运算过程优化方法, 其特征在于, 所述mL0的取值为 32。 4.根据权利要求1所述的矩阵乘法运算过程优化方法, 其特征在于, 所述步骤4中向量 并行的执 行方式为: 步骤6.1、 若待执行代码中矩阵乘法运算相关矩阵的元素在全局存储器L2中的地址不 连续, 则通过矩阵转置运 算将其转换为连续的地址; 步骤6.2、 若当前寄存器L0内输入矩阵AL0的行数mL0大于最大指令宽度则将向量指令宽 度设置为最大指令宽度; 若mL0不大于最大指令宽度则将向量指令宽度设置为不大于mL0的 最大宽度值; 步骤6.3、 根据步骤6.2确定的向量指令 宽度执行矩阵乘法向量指令 。 5.根据权利要求1所述的矩阵乘法运算过程优化方法, 其特征在于, 所述步骤4中循环 展开的执 行方式为: 所述循环展开的次数n为满足条件(n ‑1)*LopM<Cap_L0的最大值, 其中, LopM表示单个 循环体的寄存器用量, Cap_L0表示寄存器的剩余 容量。 6.根据权利要求1所述的矩阵乘法运算过程优化方法, 其特征在于, 所述步骤4中流水 并行的执 行方式为: 若共享存储器L1的存储空间占用率不大于存储阈值, 则将共享存储器L1中等待计算的 分块数据预存到全局存储器L2中, 在寄存器L0完成当前计算后将分块数据加载到寄存器L0 中, 同时再将共享存 储器L1中等待计算的分块数据预存到全局存 储器L2中。 7.根据权利要求1所述的矩阵乘法运算过程优化方法, 其特征在于, 所述步骤3.2中的 初始值T0的取值为100。权 利 要 求 书 2/2 页 3 CN 115373630 B 3

.PDF文档 专利 一种面向异构芯片的矩阵乘法运算过程优化方法

文档预览
中文文档 9 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共9页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种面向异构芯片的矩阵乘法运算过程优化方法 第 1 页 专利 一种面向异构芯片的矩阵乘法运算过程优化方法 第 2 页 专利 一种面向异构芯片的矩阵乘法运算过程优化方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 05:46:07上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。