面向CGRA的多精度小面积SIMD运算系统、方法、介质及设备技术方案

技术编号:37154330 阅读:29 留言:0更新日期:2023-04-06 22:14
本发明专利技术提供了一种面向CGRA的多精度小面积SIMD运算系统、方法、介质及设备,包括编码模块、累加模块和溢出处理模块,编码模块由编码单元、选择器和解码选择单元组成,通过基于Booth算法进行编码操作,并基于模式选择进行数据的解码得到部分积结果;累加模块由多块部分积压缩组成,基于模式选择将不同块的部分积压缩结果进行求和拼接;溢出处理模块通过将累加模块结果进行溢出处理,得到最后的截位数据。本发明专利技术的工作精度可以配置,能够支持目前主流的32比特和8比特位宽神经网络应用的高速部署工作,拥有较高的资源利用率,另外通过三级流水的方式进行数据运算处理,保证了1GHz的工作频率。工作频率。工作频率。

【技术实现步骤摘要】
面向CGRA的多精度小面积SIMD运算系统、方法、介质及设备


[0001]本专利技术涉及数据处理
,具体地,涉及一种面向CGRA的多精度小面积SIMD运算系统、方法、介质及设备。

技术介绍

[0002]可重构计算CGRA属于粗粒度异构可重构架构的一类,它的基本单元是PE、LSE、LC、LSU,其中PE处理粗粒度的算术运算,是一种可配置的处理单元,以适应不同的应用场景,能够灵活地面对一般计算,如快速傅里叶变换(Fast Fourier transform)等。
[0003]SIMD全称Single Instruction Multiple Data,单指令多数据流,能够复制多个操作数,并把它们打包在大型寄存器的一组指令集。
[0004]为了提高计算单元的计算利用率,往往设计专用的低精度计算单元,通过组合的方式进行高精度计算,即一个高精度乘法器(32比特)分解成几个低精度乘法器(8比特),计算单元可以被配置为不同的计算精度。
[0005]基本的计算单元由部分积产生、部分积压缩和进位传播加法器三部分组成。这三部分的具体实现方式也是多种多样。产生部分积的常用方法有与门操作、Baugh

Wooley算法与Booth算法,其中Booth算法通过编码方式降低产生的部分积行数,大幅度的降低后续压缩逻辑的面积、功耗与延时。部分积压缩常用手段有阵列乘法器和树型乘法器,其中Wallace树作为典型的树型乘法器因低延时、高布线资源需求成为了目前常用技术。进位传播加法器作为整个乘法器的最后一步,对于延时起到了至关重要的影响。对于加法器的优化,常见的有行波进位加法器和超前进位加法器等。
[0006]专利文献CN113794552A(申请号:CN202111074292.X)公开了一种基于SIMD的SM3并行数据加密运算方法及系统,获取多条待处理数据;如果各条待处理数据等长,对待处理的数据进行分组,每组的长度相同,分组执行CF函数运算;在完成多轮CF函数运算后,对最后的分组进行判断,如果数据长度如果小于或等于第一阈值,则将代表数据长度的比特串放入当前分组的末尾,进行最后一轮CF函数运算;如果数据长度大于第一阈值,则先对当前分组进行CF函数运算,将代表长度的比特串放入下一分组再进行CF函数运算,直至得到最终的运算结果。
[0007]由于目前不同神经网络的精度不同,采用固定精度的计算单元往往会导致大量的计算资源浪费,带来不必要的额外成本开销。尤其是在资源受限的ASIC设计中,如何设计一个可配置的处理单元便成为了一个亟待解决的问题。

技术实现思路

[0008]针对现有技术中的缺陷,本专利技术的目的是提供一种面向CGRA的多精度小面积SIMD运算系统、方法、介质及设备。
[0009]根据本专利技术提供的面向CGRA的多精度小面积SIMD运算系统,包括编码模块、累加模块和溢出模块;
[0010]所述编码模块包括编码单元、选择器Mux和解码选择单元Select;
[0011]所述编码单元用于将原始的被乘数X通过Booth编码操作得到S、D和N参数;
[0012]所述选择器用于选择不同精度和符号模式中模式的编码模块数据走向;
[0013]所述解码单元用于将编码得到的S、D和N参数与乘数Y进行解码操作,得到每行部分的部分积结果;
[0014]所述S、D和N参数为被乘数X的编码结果,其中S代表32位单精度格式Single,输出结果为
±
1;D为64位双精度格式Double,输出结果为
±
2;N为否定符号Negation,代表操作的符号位;
[0015]所述累加模块用于按预设时序进行编码后累加乘法部分积和累加乘法结果;
[0016]所述溢出处理模块用于根据预设规则进行低位截位、高位截位和饱和截位。
[0017]优选的,编码单元中,X为被乘数,Y为乘数,Single信号的表达式为X
2i
‑1^X
2i
;Double信号的表达式为~(~(X
2i
‑1&X
2i
&~X
wi+1
)&~(~X
2i
‑1&~X
2i
&X
2i
);Negation信号为~X
2i+1

[0018]选取基

4的Booth算法,对于编码模块,将被乘数X每3位比特进行一次编码操作,引入参数i代表数据的组数,每组数据表示为X
2i+1
、X
2i
、X
2i
‑1,取值范围为0、1、2和3,共四个整数,当i=0时,X
‑1=0。
[0019]优选的,所述选择器为2to 1选择器。
[0020]优选的,所述解码单元的输入信号为S、D、N和乘数Y组合而成,采用32位Booth乘法运算复用4个8位Booth乘法运算,在8位Booth运算中,在边界编码单元处设有选择器选择是否进行32位运算。
[0021]优选的,编码模块产生部分积的过程为:
[0022]基于选择器选择的数据走向后,对数据进行分组,然后将编码结果S、D和N参数与乘数Y放入解码模块中,得到部分积PP,引入参数j代表部分积PP的每位数据,其中j取值为0~7的整数;
[0023]部分积PP与编码结果和乘数Y的关系表达式为:PP
j
=~(~(Y
j
&D)&~(Y
j
‑1&S))^N,其中,PP0=~(S&Y0)^N。
[0024]优选的,将由编码模块产生的部分积分割成8个部分,其中,Part1、2、5和6都是单个用于产生8比特乘法结果的累加单元,Part3和7以及Part4和8是为了满足流水线而进行的切割分块;
[0025]对于低32位的输出结果,首先由Part1、2和3产生对应的17位和23位累加结果,并和Part4累加在一起产生36比特的输出结果,最后根据控制信号决定模式:
[0026]若为8比特乘法模式,则将Part1和2各16位的结果进行拼接,产生32位的结果;
[0027]若为32比特乘法模式,则以产生的36比特输出结果中的低32位为32比特乘法器的低32位结果,剩下的高4位为进位,用作高32比特输出结果的加数;
[0028]对于高32位的输出结果,由Part5、6和7产生的对应的17位和26位累加结果,并和Part8以及来自低32位输出结果的4位数进行累加,产生32位的累加结果,最后根据控制信号决定模式:
[0029]若为8比特乘法模式,则将Part3和4各16位的结果进行拼接,产生32位的结果;
[0030]若为32比特乘法模式,则以产生的32比特输出结果为32比特本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向CGRA的多精度小面积SIMD运算系统,其特征在于,包括编码模块、累加模块和溢出模块;所述编码模块包括编码单元、选择器Mux和解码选择单元Select;所述编码单元用于将原始的被乘数X通过Booth编码操作得到S、D和N参数;所述选择器用于选择不同精度和符号模式中模式的编码模块数据走向;所述解码单元用于将编码得到的S、D和N参数与乘数Y进行解码操作,得到每行部分的部分积结果;所述S、D和N参数为被乘数X的编码结果,其中S代表32位单精度格式Single,输出结果为
±
1;D为64位双精度格式Double,输出结果为
±
2;N为否定符号Negation,代表操作的符号位;所述累加模块用于按预设时序进行编码后累加乘法部分积和累加乘法结果;所述溢出处理模块用于根据预设规则进行低位截位、高位截位和饱和截位。2.根据权利要求1所述的面向CGRA的多精度小面积SIMD运算系统,其特征在于,编码单元中,X为被乘数,Y为乘数,Single信号的表达式为X
2i
‑1^X
2i
;Double信号的表达式为~(~(X
2i
‑1&X
2i
&~X
wi+1
)&~(~X
2i
‑1&~X
2i
&X
2i
);Negation信号为~X
2i+1
;选取基

4的Booth算法,对于编码模块,将被乘数X每3位比特进行一次编码操作,引入参数i代表数据的组数,每组数据表示为X
2i+1
、X
2i
、X
2i
‑1,取值范围为0、1、2和3,共四个整数,当i=0时,X
‑1=0。3.根据权利要求1所述的面向CGRA的多精度小面积SIMD运算系统,其特征在于,所述选择器为2to 1选择器。4.根据权利要求1所述的面向CGRA的多精度小面积SIMD运算系统,其特征在于,所述解码单元的输入信号为S、D、N和乘数Y组合而成,采用32位Booth乘法运算复用4个8位Booth乘法运算,在8位Booth运算中,在边界编码单元处设有选择器选择是否进行32位运算。5.根据权利要求1所述的面向CGRA的多精度小面积SIMD运算系统,其特征在于,编码模块产生部分积的过程为:基于选择器选择的数据走向后,对数据进行分组,然后将编码结果S、D和N参数与乘数Y放入解码模块中,得到部分积PP,引入参数j代表部分积PP的每位数据,其中j取值为0~7的整数;部分积PP与编码结果和乘数Y的关系表达式为:PP
j
=~(~(Y
j
&D)&~(Y
j
‑1&S)^N,其中,PP0=~(S&Y0)^N。6.根据权利要求1所述的面向CGRA的多精度小面积SIMD运算系统,其特征在于,将由编码模块产生的部分积分割成8个部分,其中,Part1、2、5和6都是单个用于产生8比特乘法结果的累加单元,Part3和7以及Part4和8是为了满足流水线而进行的切割分块;对于低...

【专利技术属性】
技术研发人员:王琴郑国浩孔尧尧蒋剑飞景乃锋绳伟光毛志刚
申请(专利权)人:上海交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1