0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

strongerHuang 来源:嵌入式专栏 作者:strongerHuang 2020-11-29 09:57 次阅读

我们学过数学,都知道有理数和无理数,然后在有理数中有一类叫浮点数的数字,不知道大家对这些还有没有印象?

在软件编程的时候,我们也会用到浮点数,一种既包含小数又包含整数的数据类型。

下面就来讲讲关于浮点数中,单精度、双精度、多精度和混合精度计算的区别。

1

关于圆周率 π我们提到圆周率 π 的时候,它有很多种表达方式,既可以用数学常数3.14159表示,也可以用一长串1和0的二进制长串表示。

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

在小学的时候,小学生们可能只会用手算的方式计算数学题目,圆周率的数值也只能计算到小数点后两位——3.14;而高中生使用图形计算器可能会使圆周率数值排到小数点后10位,更加精确地表示圆周率。

在计算机科学中,这被称为精度,它通常以二进制数字来衡量,而非小数。对于复杂的科学模拟,开发人员长期以来一直都依靠高精度数学来研究诸如宇宙大爆炸,或是预测数百万个原子之间的相互作用。

数字位数越高,或是小数点后位数越多,意味着科学家可以在更大范围内的数值内体现两个数值的变化。借此,科学家可以对最大的星系,或是最小的粒子进行精确计算。

但是,计算精度越高,意味着所需的计算资源、数据传输和内存存储就越多。其成本也会更大,同时也会消耗更多的功率。

由于并非每个工作负载都需要高精度,因此 AI 和 HPC 研究人员可以通过混合或匹配不同级别的精度的方式进行运算,从而使效益最大化。

NVIDIA Tensor Core GPU 支持多精度和混合精度技术,能够让开发者优化计算资源并加快 AI 应用程序及其推理功能的训练。

2

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

IEEE 浮点算术标准是用来衡量计算机上以二进制所表示数字精度的通用约定。在双精度格式中,每个数字占用64位,单精度格式占用32位,而半精度仅16位。要了解其中工作原理,我们可以拿圆周率举例。

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

在单精度32位格式中,1位用于指示数字为正数还是负数。指数保留了8位,这是因为它为二进制,将2进到高位。其余23位用于表示组成该数字的数字,称为有效数字。而在双精度下,指数保留11位,有效位数为52位,从而极大地扩展了它可以表示的数字范围和大小。

半精度则是表示范围更小,其指数只有5位,有效位数只有10位。圆周率在每个精度级别表现如下:

3

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

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

在混合精度中,计算从半精度值开始,以进行快速矩阵数学运算。但是随着数字的计算,机器会以更高的精度存储结果。

例如,如果将两个16位矩阵相乘,则结果为32位大小。使用这种方法,在应用程序结束计算时,其累积得到结果,在准确度上可与使用双精度算法运算得到的结果相媲美。

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

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

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

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3558

    浏览量

    93524
  • 浮点数
    +关注

    关注

    0

    文章

    59

    浏览量

    15853
  • 单精度
    +关注

    关注

    0

    文章

    8

    浏览量

    2238

原文标题:单精度、双精度、多精度和混合精度计算的区别是什么?

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【RV32F与RV32D】之单精度精度浮点

    32 32 RV32F和RV32D的浮点寄存器。单精度寄存器占用了32个精度寄存器中最右边的一。RISC-V对于
    发表于 08-29 12:24

    官方例程modbus slave rtu,浮点精度不对是怎么回事?

    官方例程 modbus slave rtu, 浮点精度不对,对保持寄存器设置一个浮点数,读取到的浮点数结果精度只能到小数点后两位,根本无法
    发表于 07-19 08:10

    请问如何打印浮点数或精度变量?

    如何打印浮点数或精度变量?
    发表于 07-12 08:24

    压力传感器精度0.5和1的区别

    精度0.5%和1%的区别,并从多个方面进行阐述。 精度定义 精度是指测量值与真实值之间的差异程度,通常用百分比来表示。在压力传感器中,
    的头像 发表于 06-19 09:46 1865次阅读

    LMP2021、LMP2022单精度精度运算放大器数据表

    电子发烧友网站提供《LMP2021、LMP2022单精度精度运算放大器数据表.pdf》资料免费下载
    发表于 06-13 09:03 0次下载
    LMP2021、LMP2022<b class='flag-5'>单精度</b>和<b class='flag-5'>双</b><b class='flag-5'>精度</b>运算放大器数据表

    机床的几何精度什么和什么时是有区别

    的几何精度及其区别。 一、机床的几何精度 直线度 直线度是指机床的导轨、主轴等部件在运动过程中,其轨迹的直线度。直线度的高低直接影响到机床的加工精度和加工质量。直线度的测量方法有多种,
    的头像 发表于 06-07 10:31 927次阅读

    数控机床的精度包括什么精度和什么精度

    数控机床的精度是衡量其性能的重要指标之一,它直接影响到加工零件的质量和生产效率。数控机床的精度主要包括几何精度和运动精度两个方面。下面我们将详细探讨这两个方面的
    的头像 发表于 06-07 09:57 1771次阅读

    一文带你秒懂IEEE 754浮点

    一、简介1、常见的浮点数表示方式是IEEE754标准,它规定了浮点数的存储格式和运算规则,这个标准定义了两种浮点数表示:单精度
    的头像 发表于 03-18 08:09 7766次阅读
    一文带你秒懂IEEE 754<b class='flag-5'>浮点</b>数

    毫米波雷达精度浮点存储格式分析

    本文介绍了TC3xx单片机雷达信号处理单元SPU支持的精度浮点格式,将其和32bit整型数格式进行比较,分析了两者的动态范围及实际处理误差
    的头像 发表于 02-20 08:26 323次阅读
    毫米波雷达<b class='flag-5'>半</b><b class='flag-5'>精度</b><b class='flag-5'>浮点</b>存储<b class='flag-5'>格式</b>分析

    电感多少精度算高精度

    电感作为电子电路中非常重要的电子元器件之一,我们在选择电感时候会考虑它的精度。电感精度其实指的是电感值的公差或者容差,这个参数对于确保电路性能的稳定性很重要。那么,你知道电感多少精度的算高精度
    的头像 发表于 01-23 09:21 521次阅读

    关于直线电机模组分辨率、定位精度和重复定位精度浅谈

    分辨率、定位精度和重复定位精度之间相互关联,而且都是直线电机模组精度的重要指标,只有全面理解直线电机模组精度的三个参数,才能更好地实现直线电
    的头像 发表于 01-11 11:34 1469次阅读
    关于直线电机模组分辨率、定位<b class='flag-5'>精度</b>和重复定位<b class='flag-5'>精度</b>浅谈

    ADC分辨率和精度区别是什么

    分辨率和精度区别,非常详细且易懂,值得一看,全文如下: 最近做了一块板子,当然考虑到元器件的选型了,由于指标中要求精度比较高,所以对于AD的选型很慎重。 很多人对于精度和分辨率的
    发表于 12-19 06:41

    单精度精度浮点数的区别

    单精度精度是计算机中表示浮点数的两种不同的精度。在计算机中,浮点数用来表示带有小数部分的实数
    的头像 发表于 12-15 10:25 5072次阅读

    单精度精度浮点数的区别

    在计算机科学和数值计算中,浮点数是一种用于表示实数的数据类型。浮点数有两种精度级别:单精度精度
    的头像 发表于 12-13 10:55 9641次阅读

    滚珠螺杆的精度和使用场景之间的关系?

    滚珠螺杆的精度和使用场景之间的关系?
    的头像 发表于 11-10 17:48 455次阅读
    滚珠螺杆的<b class='flag-5'>精度</b>和使用场景<b class='flag-5'>之间</b>的关系?