在设计浮点数计算库时,一名开发者遇到了一个常见挑战:识别浮点数中的最低置位。虽然位运算是标准方法,但简单的算法在处理 2 的幂次方时会失效,因此需要使用 `if` 语句。在高性能计算中,此类分支可能会降低性能,因为它们会减慢常见情况的处理速度并导致分支预测错误。为了消除分支,开发者寻求一个能够自动处理所有情况的单一公式,但在手动寻找时难以找到一个令人信服的最优解。

这张图片代表了通过发现非显而易见的数学捷径来超优化 FPU 模拟器的项目。
与其依赖人工推理或大型语言模型(LLM),该开发者选择了一种“非正统”的暴力破解方法。其目标是通过迭代所有可能的操作组合来自动发现公式。搜索空间由一组有用的操作定义:整数加/减、位运算 AND/OR/XOR 以及浮点数减法。通过使用归纳搜索方法,开发者从零操作开始构建公式,并将它们组合成更大的表达式。这使得剔除重复结果(即不同表达式产生相同输出的情况)成为可能,使脚本仅用四分钟就完成了详尽的搜索。
搜索成功识别出几个包含五个操作的公式。其中一个特别显著的结果是一个乍一看似乎不合逻辑、但却成功避开了 2 的幂次方问题的公式。有趣的是,开发者发现其中一个五个操作的公式可以通过重用子表达式进一步优化为四个操作的版本。这一特定的重写涉及到一个巧妙的技巧,即通过将浮点数减法与取反合并来节省一个操作。这种自动发现凸显了暴力搜索如何揭示非显而易见的数学捷径,而这些捷径可能逃避人类直觉或标准的编译器优化。最终生成的代码现已集成到正在开发中的 FPU(浮点运算单元)模拟器中。