FP16(半精度)和FP32(单精度)

FP16(Half-Precision Floating Point,半精度浮点数)是一种使用16位二进制数表示浮点数值的数据格式,在深度学习、图形渲染和高性能计算中广泛应用。其核心定义、技术特性与应用价值如下:


一、FP16的核心定义与结构

  1. 二进制结构
    FP16占用16位(2字节),由三部分组成:

    • 符号位(1位):表示数值正负(0正/1负)。
    • 指数位(5位):表示科学计数法中的幂次,偏置值(Bias)为15,实际指数范围为 ([-14, 15])。
    • 尾数位(10位):表示有效数字的小数部分,隐含首位"1",实际精度为11位。
  2. 数值范围与精度

    • 范围:([-65504, 65504])(远小于FP32的 ([-3.4×10^{38}, 3.4×10^{38}]))。
    • 精度:仅约3位有效十进制数字(分辨率0.001),易因舍入误差丢失微小数值。

二、FP16的核心价值

优势
  1. 内存占用减半

    • 相比FP32(4字节),FP16仅需2字节存储,使模型显存占用直接降低50%。
    • 应用案例:7B参数模型显存从28GB(FP32)降至14GB(FP16),可在消费级显卡(如RTX 3090)运行13B级大模型。
  2. 计算速度提升

    • 现代GPU(如NVIDIA Tensor Core)针对FP16优化,计算吞吐量可达FP32的2-8倍
    • 典型场景
      • A100 GPU的FP16算力达1,979 TFLOPS,远超FP32的156 TFLOPS。
      • BERT推理延迟从120ms(FP32)降至45ms(FP16),加速2.67倍。
  3. 能效优化

    • 数据传输量减少,功耗降低30%-50%,适用于边缘设备(如手机、自动驾驶芯片)。
⚠️ 局限性
  1. 数值溢出风险

    • 上溢:梯度或激活值超过±65,504时变为NaN(如大梯度训练)。
    • 下溢:梯度小于(6×10^{-8})时被截断为0,导致权重更新失效。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值