良许Linux教程网 干货合集 单精度、双精度、多精度和混合精度计算的区别是什么?

单精度、双精度、多精度和混合精度计算的区别是什么?

在学习数学时,我们学习了有理数和无理数;其中有一类有理数叫做浮点数。在软件编程中,我们也常常需要使用浮点数,这是一种既包含小数又包含整数的数据类型。

下面来介绍一下浮点数中,单精度、双精度、多精度和混合精度计算的区别。

关于圆周率 π,

π是一个无理数,小数位无限,且不循环。因此,在计算圆周率时,无论是人还是计算机,都必须根据需要的精度将小数点后面的数字进行四舍五入。

在小学阶段,学生可能只会使用手算的方式计算数学题目,圆周率的数值也只能计算到小数点后两位——3.14;而在高中阶段,学生使用图形计算器可能会使圆周率数值计算到小数点后10位,更加精确地表示圆周率。在计算机科学中,这被称为精度,通常以二进制数字来衡量,而不是小数。

对于复杂的科学模拟,开发人员长期以来一直依靠高精度数学来研究诸如宇宙大爆炸,或是预测数百万个原子之间的相互作用。

数字位数越多或小数点后面的位数越多,科学家就可以在更大范围内的数值内体现两个数值的变化。借此,科学家可以对最大的星系或最小的粒子进行精确计算。但是,计算精度越高,所需的计算资源、数据传输和内存储存就会越多,成本也越高,耗电量也会越大。

由于并不是每个工作负载都需要高精度,因此AI和HPC研究人员可以通过混合或匹配不同级别的精度的方式进行运算,以获得最大的效益。NVIDIA Tensor Core GPU支持多精度和混合精度技术,可以让开发者优化计算资源并加速AI应用程序及其推理功能的训练。

单精度、双精度和半精度浮点格式之间的区别

image-20231202220721596
image-20231202220721596

IEEE 浮点算术标准是用来衡量计算机上以二进制所表示数字精度的通用约定。在双精度格式中,每个数字占用64位,单精度格式占用32位,而半精度仅16位。

要了解其中工作原理,我们可以拿圆周率举例。在传统科学记数法中,圆周率表示为3.14 x100。但是计算机将这些信息以二进制形式存储为浮点,即一系列的1和0,它们代表一个数字及其对应的指数,在这种情况下圆周率则表示为1.1001001 x 21。

在单精度32位格式中,1位用于指示数字为正数还是负数。指数保留了8位,这是因为它为二进制,将2进到高位。其余23位用于表示组成该数字的数字,称为有效数字。

而在双精度下,指数保留11位,有效位数为52位,从而极大地扩展了它可以表示的数字范围和大小。半精度则是表示范围更小,其指数只有5位,有效位数只有10位。

圆周率在每个精度级别表现如下:

image-20231202220725227
image-20231202220725227

多精度和混合精度计算的差异

多精度计算意味着使用能够以不同精度进行计算的处理器,在需要使用高精度进行计算的部分使用双精度,并在应用程序的其他部分使用半精度或单精度算法。

混合精度(也称为超精度)计算则是在单个操作中使用不同的精度级别,从而在不牺牲精度的情况下实现计算效率。

在混合精度中,计算从半精度值开始,以进行快速矩阵数学运算。但是随着数字的计算,机器会以更高的精度存储结果。例如,如果将两个16位矩阵相乘,则结果为32位大小。

使用这种方法,在应用程序结束计算时,其累积得到结果,在准确度上可与使用双精度算法运算得到的结果相媲美。

这项技术可以将传统的双精度应用程序加速多达25倍,同时减少了运行所需的内存、时间和功耗。它可用于 AI 和模拟 HPC 工作负载。

随着混合精度算法在现代超级计算应用程序中的普及,HPC 专家 Jack Dongarra 提出了一个新的基准,即 HPL-AI,以评估超级计算机在混合精度计算上的性能。

混合精度计算主要用于现在很火人工智能领域,感兴趣的读者可以上网搜索更多关于混合精度计算的内容。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部