本技术涉及芯片,特别涉及一种用于混合精度数据运算的芯片、方法及设备。
背景技术:
1、浮点数运算是一种常见的计算操作,主要用于科学计算和深度学习等领域。
2、相关技术中,为了深化浮点数运算在科学计算和深度学习等领域的应用,为每种精度的浮点数设置了对应的芯片,也即进行浮点数运算的芯片只能对一种精度的浮点数进行运算。所以在科学计算或深度学习中涉及几种精度的浮点数,就需要在相应的终端或服务器中安装几种芯片,以实现对每种精度的浮点数进行运算。
3、但是,上述进行浮点数运算的芯片需要占据大量的硬件空间,以及消耗巨大的功耗,因此,可配置性较差。
技术实现思路
1、本技术实施例提供了一种用于混合精度数据运算的芯片、方法及设备,能够同时进行混合精度浮点数乘累加运算,进而节省了进行浮点数运算的芯片占据的空间,降低了进行浮点数运算的芯片所消耗的功耗,从而芯片的可配置性较好。该技术方案如下:
2、根据本技术实施例的第一方面,提供了一种用于混合精度数据运算的芯片,该芯片包括:
3、相互连接的拆分模块以及计算模块,该计算模块包括乘法单元、加法单元以及运算单元;
4、该拆分模块,用于获取多组浮点数,每组该浮点数包括预设数量的该浮点数,获取每个该浮点数的符号位、指数以及尾数;
5、该乘法单元,用于获取每组该浮点数中每个该浮点数的该尾数的乘积;
6、该加法单元,用于获取每组该浮点数中每个该浮点数的该指数的指数和;
7、该运算单元,用于获取目标结果,该目标结果为各个该乘积之和,该目标结果的目标符号位是根据每组该浮点数中每个该浮点数的该符号位确定的。
8、在一种可能的实现方式中,该运算单元获取目标结果,包括:
9、从每组该浮点数对应的该指数和中筛选出最大指数和,基于该最大指数和将每组该浮点数对应的该乘积对齐,得到每组该浮点数对应的目标乘积,将各个该目标乘积相加,得到该目标结果。
10、在一种可能的实现方式中,该运算单元基于该最大指数和将每组该浮点数对应的该乘积对齐,得到每组该浮点数对应的目标乘积,包括:
11、获取每组该浮点数的该指数与最大指数和的指数差,基于每组该浮点数对应的该指数差,将每组该浮点数对应的该乘积对齐,得到各组该浮点数对应的该目标乘积。
12、在一种可能的实现方式中,该运算单元基于每组该浮点数对应的该指数差,将每组该浮点数对应的该乘积对齐,得到各组该浮点数对应的该目标乘积,包括:
13、基于每组该浮点数对应的该指数差,对每组该浮点数对应的该乘积的小数点进行移位,得到各组该浮点数对应的该目标乘积。
14、在一种可能的实现方式中,该芯片还包括:
15、累加模块,该累加模块与该运算单元连接;
16、该累加模块,用于获取第t+1个该目标结果以及第t+1个该最大指数和,比对第t+1个该最大指数和以及前t个该最大指数和中的最大值,得到比对结果,基于该比对结果,将第t+1个该目标结果以及前t个该目标结果的和相加,得到累加和,t为大于或等于1的整数。
17、在一种可能的实现方式中,该累加模块,还用于若该比对结果为第t+1个该最大指数和大于前t个该最大指数和中的最大值,则基于第t+1个该最大指数和对前t个该目标结果的和进行调整,得到调整和,将第t+1个该目标结果以及该调整和相加,得到第一累加和;或
18、若该比对结果为第t+1个该最大指数和不大于前t个该最大指数和中的最大值,则基于前t个该最大指数和中的最大值对第t+1个该目标结果进行调整,得到调整结果,将前t个该目标结果的和以及该调整结果相加,得到第二累加和。
19、在一种可能的实现方式中,该累加模块,还用于根据每个该目标结果的该目标符号位,确定该第一累加和的第一累加符号位或该第二累加和的第二累加符号位。
20、在一种可能的实现方式中,该芯片,包括调整模块,该调整模块分别与该拆分模块以及该计算模块连接;
21、该调整模块,用于根据预设格式对每个该浮点数的该尾数以及该指数的格式进行调整,得到各个该浮点数的标准尾数以及标准指数。
22、根据本技术实施例的第二方面,提供了一种用于混合精度数据运算的方法,应用于上述用于混合精度数据运算的芯片,该方法,包括:
23、获取多组浮点数,每组所述浮点数包括预设数量的所述浮点数,获取每个所述浮点数的符号位、指数以及尾数;
24、获取每组所述浮点数中每个所述浮点数的所述尾数的乘积;
25、获取每组所述浮点数中每个所述浮点数的所述指数的指数和;
26、获取目标结果,所述目标结果为各个所述乘积之和,所述目标结果的目标符号位是根据每组所述浮点数中每个所述浮点数的所述符号位确定的。
27、在一种可能的实现方式中,该获取目标结果,包括:
28、从每组该浮点数对应的该指数和中筛选出最大指数和,基于该最大指数和将每组该浮点数对应的该乘积对齐,得到每组该浮点数对应的目标乘积,将各个该目标乘积相加,得到该目标结果。
29、在一种可能的实现方式中,该基于该最大指数和将每组该浮点数对应的该乘积对齐,得到每组该浮点数对应的目标乘积,包括:
30、获取每组该浮点数的该指数与最大指数和的指数差,基于每组该浮点数对应的该指数差,将每组该浮点数对应的该乘积对齐,得到各组该浮点数对应的该目标乘积。
31、在一种可能的实现方式中,该基于每组该浮点数对应的该指数差,将每组该浮点数对应的该乘积对齐,得到各组该浮点数对应的该目标乘积,包括:
32、基于每组该浮点数对应的该指数差,对每组该浮点数对应的该乘积的小数点进行移位,得到各组该浮点数对应的该目标乘积。
33、在一种可能的实现方式中,该方法,还包括:
34、获取第t+1个该目标结果以及第t+1个该最大指数和,比对第t+1个该最大指数和以及前t个该最大指数和中的最大值,得到比对结果,基于该比对结果,将第t+1个该目标结果以及前t个该目标结果的和相加,得到累加和,t为大于或等于1的整数。
35、在一种可能的实现方式中,该将第t+1个该目标结果以及前t个该目标结果的和相加,得到累加和,包括:
36、若该比对结果为第t+1个该最大指数和大于前t个该最大指数和中的最大值,则基于第t+1个该最大指数和对前t个该目标结果的和进行调整,得到调整和,将第t+1个该目标结果以及该调整和相加,得到第一累加和;或
37、若该比对结果为第t+1个该最大指数和不大于前t个该最大指数和中的最大值,则基于前t个该最大指数和中的最大值对第t+1个该目标结果进行调整,得到调整结果,将前t个该目标结果的和以及该调整结果相加,得到第二累加和。
38、在一种可能的实现方式中,该方法,还包括:
39、根据每个该目标结果的该目标符号位,确定该第一累加和的第一累加符号位或该第二累加和的第二累加符号位。
40、在一种可能的实现方式中,该方法,还包括:
41、根据预设格式对每个该浮点数的该尾数以及该指数的格式进行调整,得到各个该浮点数的标准尾数以及标准指数。
42、根据本技术实施例的第三方面,提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器用于存储至少一段程序,该至少一段程序由该处理器加载并执行上述用于混合精度数据运算的方法。
43、根据本技术实施例的第四方面,提供了一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有至少一段程序,该至少一段程序由处理器加载并执行以实现上述用于混合精度数据运算的方法。
44、在本技术实施例中,本技术实施例提供了一种用于混合精度数据运算的芯片,包括相互连接的拆分模块以及计算模块,计算模块包括乘法单元、加法单元以及运算单元;拆分模块,用于获取多组浮点数,每组浮点数包括预设数量的浮点数,获取每个浮点数的符号位、指数以及尾数;乘法单元,用于获取每组浮点数中每个浮点数的尾数的乘积;加法单元,用于获取每组浮点数中每个浮点数的指数的指数和;运算单元,用于获取目标结果,目标结果为各个乘积之和。上述技术方案将进行浮点数运算的乘法单元与加法单元进行融合,能够同时进行混合精度浮点数乘累加运算,提高了硬件资源的复用率,进而节省了进行浮点数运算的芯片占据的空间,降低了进行浮点数运算的芯片所消耗的功耗,从而芯片的可配置性较好。
1.一种用于混合精度数据运算的芯片,其特征在于,包括:
2.根据权利要求1所述的芯片,其特征在于,所述运算单元获取目标结果,包括:
3.根据权利要求2所述的芯片,其特征在于,所述运算单元基于所述最大指数和将每组所述浮点数对应的所述乘积对齐,得到每组所述浮点数对应的目标乘积,包括:
4.根据权利要求3所述的芯片,其特征在于,所述运算单元基于每组所述浮点数对应的所述指数差,将每组所述浮点数对应的所述乘积对齐,得到各组所述浮点数对应的所述目标乘积,包括:
5.根据权利要求2所述的芯片,其特征在于,所述芯片还包括:
6.根据权利要求5所述的芯片,其特征在于,所述累加模块,还用于若所述比对结果为第t+1个所述最大指数和大于前t个所述最大指数和中的最大值,则基于第t+1个所述最大指数和对前t个所述目标结果的和进行调整,得到调整和,将第t+1个所述目标结果以及所述调整和相加,得到第一累加和;或
7.根据权利要求6所述的芯片,其特征在于,所述累加模块,还用于根据每个所述目标结果的所述目标符号位,确定所述第一累加和的第一累加符号位或所述第二累加和的第二累加符号位。
8.根据权利要求1所述的芯片,其特征在于,所述芯片,还包括调整模块,所述调整模块分别与所述拆分模块以及所述计算模块连接;
9.一种用于混合精度数据运算的方法,应用于如权利要求1至权利要求8中任意一项所述的用于混合精度数据运算的芯片,其特征在于,包括:
10.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器用于存储至少一段程序,所述至少一段程序由所述处理器加载并执行如权利要求9中所述的用于混合精度数据运算的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求9中所述的用于混合精度数据运算的方法。