【技术实现步骤摘要】
卷积运算电路、及具有该卷积运算电路的相关电路或设备
[0001]本申请涉及处理器
,具体而言,涉及一种卷积运算电路、及具有该卷积运算电路的相关电路或设备。
技术介绍
[0002]AI(Artificial Intelligence,人工智能)算法中存在大量的卷积运算,根据精度的需求卷积运算需要支持不同类型的数据,例如需要支持诸如fp32/tf32/fp16/bf16/int8/uint8/int4/uint4等类型的数据。其中,fp32/tf32/fp16/bf16为浮点数据类型,而int8/uint8/int4/uint4为定点数据类型。而随着AI技术的不断发展,需要处理器能够同时支持定点数据的运算和浮点数据的运算。
[0003]目前,为实现处理器同时支持定点数据的卷积运算和浮点数据的运算,常规的实现方式是在处理器内同时设计单独的进行定点数运算的定点数卷积运算电路和进行浮点数运算的浮点数卷积运算电路,这就导致了处理器中的面积开销大。
技术实现思路
[0004]本申请实施例的目的在于提供一种卷积运算电路、及具有该卷积运算电路的相关电路或设备,用以解决相关技术存在着的会导致处理器内面积开销大的问题。
[0005]本申请实施例提供了一种卷积运算电路,包括:乘法器,用于接收操作数,以完成乘法中间结果计算,输出部分积;定点数累加计算电路,与所述乘法器连接,用于在所述操作数为定点数时,对所述乘法器输出的部分积进行压缩并对压缩后的部分积进行相加处理,得到定点卷积运算结果;浮点数累加计算电路, ...
【技术保护点】
【技术特征摘要】
1.一种卷积运算电路,其特征在于,包括:乘法器,用于接收操作数,以完成乘法中间结果计算,输出部分积;定点数累加计算电路,与所述乘法器连接,用于在所述操作数为定点数时,对所述乘法器输出的部分积进行压缩并对压缩后的部分积进行相加处理,得到定点卷积运算结果;浮点数累加计算电路,与所述乘法器连接,用于在所述操作数为浮点数时,根据所述操作数的指数部分进行指数计算得到浮点乘法指数结果,并根据所述乘法器输出的部分积进行尾数计算得到尾数计算结果。2.如权利要求1所述的卷积运算电路,其特征在于,所述操作数为按照所述乘法器的位宽对待运算数据和待运算权重的尾数进行拆分或填充后得到的数据和权重;所述浮点数累加计算电路包括:尾数计算单元,与所述乘法器连接,用于对所述乘法器输出的针对同一待运算数据的部分积进行压缩并求和,得到对应该待运算数据的浮点尾数乘法结果;指数计算单元,用于对所述待运算数据和所述待运算数据对应的待运算权重的指数部分进行计算,得到针对该待运算数据的浮点乘法指数结果;累加单元,与所述尾数计算单元和所述指数计算单元连接,用于从多个待运算数据对应的浮点乘法指数结果中,选择出最大浮点乘法指数结果,以及用于对所述多个待运算数据对应的浮点尾数乘法结果进行压缩并求和得到所述尾数计算结果。3.如权利要求2所述的卷积运算电路,其特征在于,所述指数计算单元还用于:对所述待运算数据和所述待运算权重中携带的异常标志位进行检查,在存在表征数据为denormal的异常标志位时,将具有该异常标志位的所述待运算数据或所述待运算权重的指数部分表示为1。4.如权利要求2所述的卷积运算电路,其特征在于,所述指数计算单元还用于:在用于计算的所述待运算数据和所述待运算权重的指数部分中,存在至少一个指数部分为0时,确定所述浮点乘法指数结果为0。5.如权利要求2所述的卷积运算电路,其特征在于,所述尾数计算单元包括:压缩电路,与所述乘法器连接,用于对所述乘法器输出的针对同一待运算数据的部分积进行压缩;第一加法器,与所述压缩电路的输出端连接,用于将所述压缩电路输出的部分积求和,得到对应该待运算数据的浮点尾数乘法结果。6.如权利要求2所述的卷积运算电路,其特征在于,所述累加单元中包括:指数选择单元,用于从多个待运算数据对应的浮点乘法指数结果中,选择出最大浮点乘法指数结果;指数阶差计算单元,与所述指数选择单元连接,用于计算各所述待运算数据对应的浮点乘法指数结果与所述最大浮点乘法指数结果之间的指数阶差;累加器,与所述指数阶差计算单元连接,用于按照所述指数阶差对各所述待运算数据对应的浮点尾数乘法结果进行对阶移位,并对对阶移位后的浮点尾数乘法结果进行压缩并求和得到所述尾数计算结果。7.如权利要求6所述的卷积运算电路,其特征在于,所述指数选择单元包括第一级指数选择单元和第二级指数选择单元;所述指数阶差计算单元包括第一级指数阶差计算单元和
第二级指数阶差计算单元;所述累加器包括第一级累加器和第二级累加器;所述第一级指数选择单元用于从多个待运算数据对应的浮点乘法指数结果中,选择出第一级最大浮点乘法指数结果,并传输给所述第一级指数阶差计算单元和所述第二级指数选择单元;所述第一级指数阶差计算单元用于计算各所述待运算数据对应的浮点乘法指数结果与所述第一级最大浮点乘法指数结果之间的指数阶差;所述第一级累加器用于按照所述指数阶差对各所述待运算数据对应的浮点尾数乘法结果进行对阶移位,并对对阶移位后的浮点尾数乘法结果进行压缩并求和得到第一级尾数计算结果,并输出给所述第二级累加器;所述第二级指数选择单元用于从多个所述第一级最大浮点乘法指数结果中,选择出第二级最大浮点乘法指数结果;所述第二级指数阶差计算单元用于计算多个所述第一级最大浮点乘法指数结果与该第二级最大浮点乘法指数结果之间的指数阶差;所述第二级累加器用于根据所述第二级指数阶差计算单元计算出的指数阶差,对第一级尾数计算结果进行对阶移位,并对对阶移位后的第一级尾数计算结果进行压缩并求和得到所述尾数计算结果。8.如权利要求7所述的卷积运算电路,其特征在于,所述第一级累加器包括:对阶移位器,用于按照所述指数阶差对各所述待运算数据对应的浮点尾数乘法结果进行对阶移位;第一符号处理电路,与所述对阶移位器连接,用于对对阶移位后的浮点尾数乘法结果进行符号处理;两级CSA32电路,与所述第一符号处理电路连接,用于对符号处理后的数据进行压缩;第二加法器,与所述两级CSA32电路的输出端连接,用于将所述两级CSA32电路输出的数据相加得到所述第一级尾数计算结果。9.如权利要求8所述的卷积运算电路,其特征在于,所述对阶移位器具体用于:在所述待运算数据和所述待运算权重的数据类型为fp16或bf16或tf32类型时,按照所述指数阶差对各所述待运算数据对应的浮点尾数乘法结果进行对阶移位;在所述待运算数据和所述待运算权重的数据类型为fp32类型时,将所述待运算数据对应的低位浮点尾数乘法结果右移12位;其中,所述低位浮点尾数乘法结果为b12_d_l
×
b12_w_l,所述b12_d_l为所述待运算数据中的第0位至11位尾数,所述b12_w_l为所述待运算权重中的第0位至11位尾数。10.如权利要求8所述的卷积运算电路,其特征在于,所述第一符号处理电路用于:若4个对阶移位后的浮点尾数乘法结果的符号同时为负,记录第一标志信息并传输到第二级累加器;所述两级CSA32电路中的第一级CSA32电路用于对4个对阶移位后的浮点尾数乘法结果中的3个浮点尾数乘法结果进行部分积压缩,输出2个部分积pp0,pp1;所述两级CSA32电路中的第二级CSA32电路用于对4个对阶移位后的浮点尾数乘法结果中剩余的1个浮点尾数乘法结果和所述pp0、所述pp1进行部分积压缩,最终输出两个部分积。
11.如权利要求10所述的卷积运算电路,其特征在于,所述第一符号处理电路还用于:若4个对阶移位后的浮点尾数乘法结果的符号不同时为负,则根据所述4个对阶移位后的浮点尾数乘法结果中符号为负的个数,生成3bit的标志值Neg[2:0],并对对符号为负的所述浮点尾数乘法结果取反;所述两级CSA32电路中的第一级CSA32电路还用于对符号处理后的4个所述浮点尾数乘法结果中的3个浮点尾数乘法结果和Neg[0]进行部分积压缩,输出2个部分积pp0,pp1;所述两级CSA32电路中的第二级CSA32电路还用于对4个对阶移位后的浮...
【专利技术属性】
技术研发人员:赵芮,王震宇,
申请(专利权)人:杭州登临瀚海科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。