【技术实现步骤摘要】
可配置的BF16格式矩阵乘法数据通路实现方法、部件及装置
[0001]本专利技术涉及微处理器设计时的微处理器体系结构和执行部件设计,具体涉及一种可配置的BF16格式矩阵乘法数据通路实现方法、部件及装置。
技术介绍
[0002]人工智能应用近年发展速度迅猛,被广泛应用在如图像识别、目标识别和自然语言处理等领域。以图像识别领域为例,2016年IMAGENET比赛的冠军的图像识别错误率已低于人类的错误率。人工智能领域同时吸引了学术界和工业界的关注,并正快速走向应用阶段。人工智能应用正成为新兴应用的代表之一。其应用同时表现出对计算和存储计算能力的强烈需求,考虑到此类应用具有一定的容错能力,其运算所使用的数据类型与传统应用不同,Google提出BF16格式,以此替代fp16或fp32。BF16格式可以保持与fp16相同的数据长度的同时,提高数据本身的表示范围,提高应用的精度。
[0003]BF16格式的数据长度为16位,其中符号位占1位,阶码占8位,尾数占7位,具有与fp32相同的阶码长度。基于BF16的指令主要服务于人工智能 ...
【技术保护点】
【技术特征摘要】
1.一种可配置的BF16格式矩阵乘法数据通路实现方法,其特征在于,包括:1)进行数据通路配置,包括数据通路数C,单个数据通路支持的数据宽度V的配置;2)选择一条数据通路,在该数据通路中选择处理器中计算部件所支持的计算粒度,将原有矩阵乘操作切分成一个或多个微操作,并按照设定的连续微操作的流水线间隔执行。2.根据权利要求1所述的可配置的BF16格式矩阵乘法数据通路实现方法,其特征在于,步骤2)包括:A2.1)选择一条数据通路PATH
i
;A2.2)激活数据通路PATH
i
的16位浮点乘法模块fmul16和32位浮点加法模块fadd32;A2.3)在该数据通路中以乘累加操作为计算粒度,将原有矩阵乘操作切分为基于乘累加操作的4个微操作,将每一个微操作通过数据通路PATH
i
的16位浮点乘法模块fmul16和32位浮点加法模块fadd32完成乘累加操作,且连续微操作的流水线间隔为3拍。3.根据权利要求2所述的可配置的BF16格式矩阵乘法数据通路实现方法,其特征在于,原有矩阵乘操作的输入第一个源操作数opa和第二个源操作数opb为两组矩阵数据,一组矩阵数据的尺寸为2
×
4,另一组矩阵数据的尺寸为4
×
2,输出的目的操作数res为尺寸为2
×
2的矩阵数据;步骤A2.3)中将每一个微操作通过数据通路PATH
i
的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)选择一条数据通路PATH
i
;B2.2)激活数据通路PATH
i
的16位浮点乘法模块fmul16、32位浮点加法模块fadd32和64位浮点加法模块fadd64,其中64位浮点加法模块fadd64支持两路并行32位浮点加法操作;B2.3)在该数据通路中以乘累加操作为计算粒度,将原有矩阵乘操作切分为基于点乘操作的2个微操作,将每一个微操作通过数据通路PATH
i
的16位浮点乘法模块fmul16、32位浮点加法模块fadd32和64位浮点加法模块fadd64完成点乘操作,且连续微操作的流水线间隔为3拍。5.根据权利要求4所述的可配置的BF16格式矩阵乘法数据通路实现方法,其特征在于,原有矩阵乘操作的输入第一个源操作数opa和第二个源操作数opb为两组矩阵数据,一组矩阵数据的尺寸为2
×
4,另一组矩阵数据的尺寸为4
×
2,输出的目的操作数res为尺寸为2
×
2的矩阵数据;步骤B2.3)中将每一个微操作通过数据通路PATH
i
的16位浮点乘法模块fmul16、32位浮点加法模块fadd32和64位浮点加法模块fadd64完成点乘操作包括:依次针
对n、j、k进行三个层次嵌套的循环遍历,且在第三层循环遍历中根据下式计算目的操作数的索引为n的子向量中索引为j的元素:res[n][j]+=opa[n][2k]*opb[j][2k]+opa[n][2k+1]*opb[j][2k+1]上式中,res[n][j]表示元素长度为32位的目的操作数res的索引为n的子向量中索引为j的元素,“+=”表示累加运算,opa[n][2k]表示元素长度为16位的第一个源操作数opa的索引为n的子向量中索引为2k的元素,opa[n][2k+1]表示元素长度为16位的第一个源操作数opa的索引为n的子向量中索引为2k+1的元素,opb[j][2k]表示元素长度为16位的第二个源操作数opb的索引为j的子向量中...
【专利技术属性】
技术研发人员:邓全,孙彩霞,隋兵才,王永文,倪晓强,郭维,郑重,黄立波,雷国庆,王俊辉,郭辉,
申请(专利权)人:中国人民解放军国防科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。