[发明专利]可配置的BF16格式矩阵乘法数据通路实现方法、部件及装置在审
申请号: | 202111241122.6 | 申请日: | 2021-10-25 |
公开(公告)号: | CN113961878A | 公开(公告)日: | 2022-01-21 |
发明(设计)人: | 邓全;孙彩霞;隋兵才;王永文;倪晓强;郭维;郑重;黄立波;雷国庆;王俊辉;郭辉 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16;G06F7/487;G06F7/485 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 谭武艺 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 配置 bf16 格式 矩阵 乘法 数据 通路 实现 方法 部件 装置 | ||
1.一种可配置的BF16格式矩阵乘法数据通路实现方法,其特征在于,包括:
1)进行数据通路配置,包括数据通路数C,单个数据通路支持的数据宽度V的配置;
2)选择一条数据通路,在该数据通路中选择处理器中计算部件所支持的计算粒度,将原有矩阵乘操作切分成一个或多个微操作,并按照设定的连续微操作的流水线间隔执行。
2.根据权利要求1所述的可配置的BF16格式矩阵乘法数据通路实现方法,其特征在于,步骤2)包括:
A2.1)选择一条数据通路PATHi;
A2.2)激活数据通路PATHi的16位浮点乘法模块fmul16和32位浮点加法模块fadd32;
A2.3)在该数据通路中以乘累加操作为计算粒度,将原有矩阵乘操作切分为基于乘累加操作的4个微操作,将每一个微操作通过数据通路PATHi的16位浮点乘法模块fmul16和32位浮点加法模块fadd32完成乘累加操作,且连续微操作的流水线间隔为3拍。
3.根据权利要求2所述的可配置的BF16格式矩阵乘法数据通路实现方法,其特征在于,原有矩阵乘操作的输入第一个源操作数opa和第二个源操作数opb为两组矩阵数据,一组矩阵数据的尺寸为2×4,另一组矩阵数据的尺寸为4×2,输出的目的操作数res为尺寸为2×2的矩阵数据;步骤A2.3)中将每一个微操作通过数据通路PATHi的16位浮点乘法模块fmul16和32位浮点加法模块fadd32完成乘累加操作包括:依次针对n、j、k进行三个层次嵌套的循环遍历,且在第三层循环遍历中根据下式计算目的操作数的索引为n的子向量中索引为j的元素:
res[n][j]+=opa[n][k]*opb[j][k]
上式中,res[n][j]表示元素长度为32位的目的操作数res的索引为n的子向量中索引为j的元素,“+=”表示累加运算,opa[n][k]表示元素长度为16位的第一个源操作数opa的索引为n的子向量中索引为k的元素,opb[j][k]表示元素长度为16位的第二个源操作数opb的索引为j的子向量中索引为k的元素,其中n,j取值范围为[0,2),k取值范围为[0,4),n为操作元素对应的第一个源操作数opa的行号,j为操作元素对应的第二个源操作数opb的行号,k为操作元素对应的矩阵列号。
4.根据权利要求1所述的可配置的BF16格式矩阵乘法数据通路实现方法,其特征在于,步骤2)包括:
B2.1)选择一条数据通路PATHi;
B2.2)激活数据通路PATHi的16位浮点乘法模块fmul16、32位浮点加法模块fadd32和64位浮点加法模块fadd64,其中64位浮点加法模块fadd64支持两路并行32位浮点加法操作;
B2.3)在该数据通路中以乘累加操作为计算粒度,将原有矩阵乘操作切分为基于点乘操作的2个微操作,将每一个微操作通过数据通路PATHi的16位浮点乘法模块fmul16、32位浮点加法模块fadd32和64位浮点加法模块fadd64完成点乘操作,且连续微操作的流水线间隔为3拍。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111241122.6/1.html,转载请声明来源钻瓜专利网。