Skip to content

0.7.1 性能与语义审计

本文是 0.7.1 优化审计的中文结构源。它记录 0.7.0 之后的四个优化提交、 发布复核中发现并修复的语义问题,以及性能声明的证据边界。

范围

审计覆盖提交 69084bc790401623005ed4fd41ad,以及本发布树中 待纳入的 GDA 系数辅助函数和区间回归修复。审计明确区分观察结果、规范要求、 实现选择和验收证据。

问题矩阵

分类观察结果预期变更验收证据
GDA 系数内核实现缺口GDA 快路径加入小表示、仅余数除法和半十进制幂比较系数恒等式、cohort、flags、trap 和 sticky status 不变使用规范化 GdaCoeff 操作并保留统一 GDA finalizer93 个包测试、8 个前端测试、official 64,986/64,986、official0 16,124/16,124
IEEE decimal 路径语义风险优化exact/bounded division 路径绕过了重复通用工作精确结果、舍入、quantum、flags 和特殊值行为与 IEEE 一致用有限域、因子、边界和 finalizer 条件保护快路径;不满足时回退94 个包测试、四目标 IEEE 15,763/15,763
Binary IEEE 路径语义风险优化exact-top、round/sticky 提取和系数分派替代了更宽的中间结果context 下的值、舍入、flags、signed zero 和 interchange bits 不变保留精确系数构造,所有结果仍经 contextual rounding68 个包测试、binary 7,464,503/7,464,503
区间端点分派已发现并修复的语义偏差优化后的 pown 在不同符号区域复用端点方向,负区间可能得到 lo > hi 或少一个 ulp每个区间有序并包含数学像集按单调性选择端点并逐项向外舍入;加入负半轴覆盖42 个包测试、integer-power 174/174、strict ITF1788 4,656/4,656
发布文档文档缺口module、manifest 和本地化正文仍以 0.7.0 为当前基线当前引用统一指向 0.7.1,历史说明保持历史身份更新当前元数据并加入同步审计页python3 tools/doc_quality.py

优化证明

精确系数路径

对于非负系数 a 和正除数 d,余数为 r = a - floor(a / d) * d,且满足 0 <= r < d。因此,用只计算余数的 内核替换 quotient/remainder 调用不会改变任何可观察余数,也不会改变欧几里得 算法中的步骤。GDA 半十进制幂谓词通过最高位十进制数字和其后的非零尾部比较 a5 * 10^(digits(a) - 1),不是浮点近似。

IEEE decimal 的 exact-division 路径先消去系数 GCD;只有约分后的分母不含 2、5 以外的素因子时才允许进入。路径构造精确的十进制系数/指数后仍调用原有 finalizer; 因子、边界或特殊值条件不满足就回到通用算法。因此优化改变的是到达精确值的路线, 不是 IEEE 的舍入或 flag 规则。

Binary contextual 路径

有限 dyadic 值写作 c * 2^e 时,binary_exact_top(c, e) 给出最高有效精确位。 比较这些 top 等价于对齐前比较幅值,也适用于带有不同尾随二次幂的系数。远距离加法 丢弃低位时,split 操作保留首个丢弃位和其后所有位的 OR;这正是 contextual rounding 函数所需的 round/sticky 谓词。快路径因此保持相同的精确舍入输入,同时避免构造巨大 对齐系数。

有向区间路径

区间操作必须保持集合包含不变量 image(X) subset [lo, hi] 与存储不变量 lo <= hi。对精确端点候选 yRoundTowardNegative(y) 是下界证书, RoundTowardPositive(y) 是上界证书。pown 分支使用以下单调性表:

定义域正奇次幂正偶次幂负奇次幂负偶次幂
负半轴递增递减递减递增
正半轴递增递增递减递减
含零区间端点顺序零到向外舍入的最大值极点/全实数分支极点/全实数分支

实现现在先选择数学端点,再应用其角色所需的方向。跨零时,两个有限极值候选都用 向正无穷舍入来形成上界;quantize_interval 再做一次向外舍入。该证明局限于已声明 的操作和精度契约,不代表未支持的 reverse 操作。

性能证据

领域测量解释
Binary、decimal、GDA、interval 内核just bench all --target native当前树的四套 Maremark 基准都生成了合法 artifact
Binary square 策略just bench auto-tune --target native生成目标相关策略 artifact;原始观测可能非单调,不是通用阈值声明
IEEE/GDA 快路径benchmark 包测试与 conformance gate只有语义 oracle 继续通过时,性能路径才可接受
区间端点分派src/bench/ball_float 与 strict ITF1788只有有序且向外舍入的包络成立时,降低成本才可接受

生成 artifact 位于 .tmp/bench/,有意不作为 API 数据发布。提升 crossover 前,应在 目标硬件上重新执行命令。benchmark workload 只证明当前树上的测量,不证明整个发行版、 所有目标的速度等价或普遍延迟上界。

验收矩阵

检查结果
sh tools/run_moon_clean_exec.sh test src/decimal_gda --target native --deny-warn --frozen --no-parallelize93/93 通过
sh tools/run_moon_clean_exec.sh test src/decimal --target native --deny-warn --frozen --no-parallelize94/94 通过
sh tools/run_moon_clean_exec.sh test src/bin_float --target native --deny-warn --frozen --no-parallelize68/68 通过
sh tools/run_moon_clean_exec.sh test src/ball_float --target native --deny-warn --frozen --no-parallelize42/42 通过
just gate binary 87,464,503/7,464,503 通过
just gate decimal 815,763/15,763 通过
just gate decimal_gda 864,986/64,986 与 16,124/16,124 通过
just gate interval 84,656/4,656 通过
python3 tools/doc_quality.py版本、审计页和设计证明变更后通过

审阅者自检

  • 贡献:通过——记录了具体优化边界和真实语义故障修复,没有把无法解释的 benchmark 结果包装成速度承诺。
  • 写作清晰度:通过——每个证明段分别说明表示、单调性、舍入方向和证据。
  • 实验强度:需要复现——native artifact 有效,但应在提升阈值前重复非单调的 auto-tune 观测。
  • 评估完整性:对声明的固定语料通过;不表示支持所有标准操作或任意实数输入。
  • 方法健全性:通过——负半轴回归与完整 1788 gate 已覆盖修复后的分支。

声明—证据映射

声明证据状态
快速系数路径保持声明的数值结果精确内核恒等式、包测试、IEEE/GDA conformance在声明 API 与前置条件内支持
区间 pown 保持有序的向外包络单调性表、负半轴回归、4,656 条 strict ITF1788对声明的正向区间面支持
本版本完成了性能审计native Maremark allauto-tune artifact作为测量证据支持,不是通用速度声明
所有未来目标和操作具有等价性能本审计没有跨目标 paired artifact需要证据;明确不声明

限制

语义声明受固定语料、公开操作面、目标相关精度规则和显式 fallback 契约限制。 0.6.1 elementary manifest 仍是历史比较基线,0.7.1 是当前 candidate release。 任何 API、舍入规则、错误信号或区间契约都不会仅为改善 benchmark 而改变。