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

    文章

    3637

    浏览量

    93960
  • 浮点数
    +关注

    关注

    0

    文章

    61

    浏览量

    15904
  • 单精度
    +关注

    关注

    0

    文章

    8

    浏览量

    2262

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

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

收藏 人收藏

    评论

    相关推荐

    ADS1248放大倍数与精度之间的关系,是否是放大倍数越高,精度越高?

    ADS1248放大倍数与精度之间的关系,是否是放大倍数越高,精度越高
    发表于 01-22 06:29

    直线电机的精度能达到多少?和重复定位精度一样吗

    直线电机是目前精度非常高的一种电机,精度越高,停止的实际位置与要求位置之间的误差值越小,那么直线电机的精度能达到多少?一般来说,直线电机可以实现非常高的定位
    的头像 发表于 12-05 16:01 510次阅读

    微型丝杆精度等级分析

    微型丝杆的精度和使用场景之间存在密切的关系,不同的机械设备和制造工艺需要不同精度的丝杆来满足其精度要求和生产效率。
    的头像 发表于 11-15 17:56 309次阅读
    微型丝杆<b class='flag-5'>精度</b>等级分析

    运放的直流精度与交流精度如何区分?

    请问运放的直流精度与交流精度如何区分和理解
    发表于 09-23 08:24

    鸿蒙原生应用元服务开发-仓颉基础数据类型浮点类型

    和 0.1 等)的类型。Float16、 Float32 和 Float64 分别对应 IEEE 754 中的精度格式(即 binary16)、单精度
    发表于 09-10 10:22

    【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 2758次阅读

    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 1493次阅读

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

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

    一文带你秒懂IEEE 754浮点

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

    如何实现六位精度的电压测量模块?

    使用如ADI公司提供的高精度、低噪声、高速A/D转换器,例如用于ADMX3652模块中的器件,这类芯片专为高分辨率测量系统设计,能够满足六位电压测量所需的精度指标。
    的头像 发表于 03-13 14:36 913次阅读

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

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