拓冰建站拓冰建站
首页 / 资讯中心 / 正文

IEEE 754与浮点数陷阱:Maths, CS AI Compendium计算机体系结构完整指南

IEEE 754与浮点数陷阱Maths, CS AI Compendium计算机体系结构完整指南【免费下载链接】maths-cs-ai-compendiumBecome a cracked AI/ML researcher/engineer with this unconventional textbook covering maths, computing, and ML with intuition.项目地址: https://gitcode.com/GitHub_Trending/mat/maths-cs-ai-compendiumMaths, CS AI Compendium 是一本面向工程师的非传统教科书其计算机体系结构篇用直觉化的方式讲透了IEEE 754 浮点数的存储结构与常见精度陷阱——从0.1 0.2 ≠ 0.3这个经典翻车现场到 AI 训练里 FP16 / BF16 混合精度为什么能成倍加速一次讲明白 为什么浮点数是每个 AI 开发者的必修课你可能没想过神经网络里每一个权重、每一次梯度更新最终都要变成 32 位或 16 位的二进制信号流过晶体管。这带来三个现实问题矩阵乘法为什么快ALU 的加法器级联电路天然擅长整数与定点运算内存为什么是瓶颈带宽有限时每个数占的位数直接决定吞吐为什么混用精度会炸float16 的指数范围太小训练稍不留神就溢出为inf读懂 IEEE 754你才第一次真正看见这些数字背后的硬件。IEEE 754 浮点数存储结构拆解符号、指数与尾数IEEE 754 用科学计数法表示实数$$(-1)^s \times 1.m \times 2^{,e-\text{bias}}$$其中 $s$ 是符号位$m$ 是尾数小数部分$e$ 是带偏置的指数。以最常见的float32为例32 位被切成三段字段位数作用符号位 (Sign)10 正 1 负指数位 (Exponent)8决定数量级偏置 127尾数位 (Mantissa)23决定精度约 7 位十进制有效数字不同精度格式一览格式位布局范围精度float641 11 52±1.8×10³⁰⁸≈15 位十进制float321 8 23±3.4×10³⁸≈7 位十进制float161 5 10±65504≈3 位十进制bfloat161 8 7与 float32 相同≈2–3 位十进制bfloat16 是 Google 专门为机器学习设计的格式指数位与 float32 完全一致训练时不会轻易溢出牺牲的尾数精度对梯度更新影响很小。0.10.2 为什么不等于 0.3三大经典浮点数陷阱陷阱一0.1 在二进制里无法精确表示就像 $1/3$ 在十进制下是无限循环小数0.1 在二进制下也是无限循环的$0.1_{10} 0.0001100110011\ldots_2$必须截断存储。所以 float64 下$$0.1 0.2 0.30000000000000004 \neq 0.3$$这不是 bug而是二进制定点表示的必然结果。陷阱二大数吃掉小数精度丢失float32 只有约 7 位有效数字。把 1 加到 $10^8$ 上时$$10^8 1.0 ;\text{在 float32 中}; 10^8$$那个 1.0 直接消失了。这正是大 batch 累加 loss 时需要 Kahan 求和等技巧的原因。陷阱三浮点加法不满足结合律$$(ab)c ;\neq; a(bc)$$当 $a 10^8$、$b 1$、$c -10^8$ 时两种括号顺序的结果不同——重排计算顺序可能悄悄改变你的模型结果。这就是为什么分布式训练里 all-reduce 的归约顺序会影响可复现性。AI 混合精度训练FP16、BF16 与 INT8 怎么选深度学习时代的数字格式全景图来自 Compendium 原图前向传播权重、激活值→ FP16 / FP8 E4M3精度高一些即可反向传播梯度→ FP8 E5M2指数范围大不容易溢出推理部署→ INT8 / INT470B 模型从 140 GB 压到 35 GB这是大模型能落地的经济基础选择逻辑一句话指数范围决定会不会炸尾数位数决定准不准内存带宽决定快不快。从内存层级看精度与性能的关系混精度的本质收益藏在内存层级里寄存器到 RAM 的延迟差距约 300 倍而带宽永远是 GPU 训练的第一瓶颈。把每个权重从 32 位压到 16 位等于让有效内存带宽直接翻倍这正是 计算机体系结构篇 反复强调的观点理解硬件解释为什么缓存友好的代码可以比朴素实现快 100 倍。延伸学习从浮点数出发探索整个 Compendium这篇文章只是冰山一角项目里值得继续精读的资料 数制与浮点存储全解02. computer architecture.md含把浮点数转成二进制位域的动手实验 量化与 KV-Cache 压缩01. quantisation.mdGPTQ、AWQ、混合精度工程实践 分布式训练中的 loss scaling05. distributed deep learning.md总结IEEE 754 浮点数不是黑盒 API——符号位、指数位、尾数位的每一位都在影响你的模型精度、训练速度和部署成本。把 Maths, CS AI Compendium 的体系结构篇读完你会发现那些玄学的数值不稳定其实都有清晰的硬件根源 【免费下载链接】maths-cs-ai-compendiumBecome a cracked AI/ML researcher/engineer with this unconventional textbook covering maths, computing, and ML with intuition.项目地址: https://gitcode.com/GitHub_Trending/mat/maths-cs-ai-compendium创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门