FP16(Half-Precision Floating Point,半精度浮点数)是一种使用16位二进制数表示浮点数值的数据格式,在深度学习、图形渲染和高性能计算中广泛应用。其核心定义、技术特性与应用价值如下:
一、FP16的核心定义与结构
-
二进制结构
FP16占用16位(2字节),由三部分组成:- 符号位(1位):表示数值正负(0正/1负)。
- 指数位(5位):表示科学计数法中的幂次,偏置值(Bias)为15,实际指数范围为 ([-14, 15])。
- 尾数位(10位):表示有效数字的小数部分,隐含首位"1",实际精度为11位。
-
数值范围与精度
- 范围:([-65504, 65504])(远小于FP32的 ([-3.4×10^{38}, 3.4×10^{38}]))。
- 精度:仅约3位有效十进制数字(分辨率0.001),易因舍入误差丢失微小数值。
二、FP16的核心价值
✅ 优势
-
内存占用减半
- 相比FP32(4字节),FP16仅需2字节存储,使模型显存占用直接降低50%。
- 应用案例:7B参数模型显存从28GB(FP32)降至14GB(FP16),可在消费级显卡(如RTX 3090)运行13B级大模型。
-
计算速度提升
- 现代GPU(如NVIDIA Tensor Core)针对FP16优化,计算吞吐量可达FP32的2-8倍。
- 典型场景:
- A100 GPU的FP16算力达1,979 TFLOPS,远超FP32的156 TFLOPS。
- BERT推理延迟从120ms(FP32)降至45ms(FP16),加速2.67倍。
-
能效优化
- 数据传输量减少,功耗降低30%-50%,适用于边缘设备(如手机、自动驾驶芯片)。
⚠️ 局限性
-
数值溢出风险
- 上溢:梯度或激活值超过±65,504时变为
NaN(如大梯度训练)。 - 下溢:梯度小于(6×10^{-8})时被截断为0,导致权重更新失效。
- 上溢:梯度或激活值超过±65,504时变为

最低0.47元/天 解锁文章
726

被折叠的 条评论
为什么被折叠?



