让Agent迭代Rust代码,速度超越现有库

Writing Rust code that's fast by asking agents to make the code faster

让Agent迭代Rust代码,速度超越现有库

我通过让Agentic LLM持续迭代优化Rust代码,成功将UMAP等机器学习算法的速度提升了数倍甚至数十倍。实验表明,只要设定清晰的基准和约束,如要求性能提升1.2倍,Agent就能自动进行SIMD优化、循环展开等底层改进。从Opus 4.5到GPT-6 Astra,随着模型能力的演进,累积速度提升可达7.5倍至32倍。这一方法不仅适用于机器学习,在模板引擎、HTML解析等日常软件库中也同样有效。关键在于避免模糊指令,用可量化的指标驱动Agent进行‘Benchmaxxing’,同时确保代码质量不妥协。

现代Agentic LLM确实能写出比当前最先进方法快得多的Rust代码,前提是提供适当的护栏和约束。
  1. metalspot

    我用 Opus 5 做过不少底层性能优化,但它的推理能力依然很差。比如,为什么 CRC 这么慢?它竟然在循环里跑,直到我问他是否使用了硬件指令,它才告诉我用的是自己手写的实现,真是糟糕。关于 L1/L2/L3 缓存命中率及其影响的推理,基本就是在错误的房间里对着墙乱掷飞镖。如果你给它一个基准测试反馈循环,它或许最终能搞定,但对于那些凭直觉就知道这些门道、现在能自动化 99% 繁琐工作的底层系统工程师来说,这依然是巨大的 alpha(超额收益)。

  2. lordnacho

    我在做这类事情时效果一直很好。我发现真正需要的只是一个合理的框架,让优化能在其中进行。本质上就是提供一个测量 harness,以及某种关于我在做什么的动机。

    LLM 最棒的地方在于,它似乎拥有一切清单。如果我随口列出几条,比如“不要在热路径上分配内存”和“记得绑定核心”,它也会提出一些我自己可能忘记的项目。

    最终,它会和我一起过完整个清单,同时记录下沿途的所有测量数据。

    但这仍然需要经验引导。如果我看到了异常数据,我可能会说“嘿,你是不是忘了用 release 模式编译?”,它会道歉并修正。如果我不指出,它可能就会继续探索,而没意识到一切全错了。

  3. hombre_fatal

    只要能被测量,LLM 就能优化它。

    一旦我有了能 dump `sample` 结果的 repo 命令,有了 CPU 分析器/追踪器,还有一个基准测试工具,让我能把当前修改的 git 工作区与 HEAD 或任何 commit 进行 A/A + ABBA/BAAB 测试,LLM 就能放手去做了。

    这就是为什么我的自制终端比 ghostty/kitty/iterm 占用更少的内存,却拥有更高的吞吐量。

    既然保证正确性和高性能变得如此简单,AI 将越来越多地揭露那些不关心软件正确性和性能的人和公司。过去,做这些事至少是昂贵、耗时且需要专业知识的。

  4. espeed

    如果你一直让 LLM“写出更好的代码”,它们真的能写出更好的代码吗?

    对我来说,关键之一是使用类型。比如 typestate,当函数生成只能来自它且必须用于继续的 witness 时;或者 newtype,用自定义类型代替字符串,这样 agent 就不会忘记。你还可以用它来强制 agent 使用现有实现,而不是通过模拟线性类型来重复造轮子。类型是更小的优化目标,提供的约束能在编译时大声报错。

  5. onlyrealcuzzo

    我发现编写 Rust 代码的瓶颈在于,编译和运行测试的速度太慢了,相比 TypeScript 而言——这很遗憾,因为我想要 Rust 提供的所有保证,只是我不太在乎它是否以最快的速度运行——至少在原型阶段是这样,或者对于我做的很多事来说永远都是如此(尽管无论如何我都想要那些保证)。

    我希望它能以解释模式运行,从而极大地加速开发,并且希望它有一个类似 Mull 的变异测试框架,这样变异测试就不会花费数小时,也不需要占用几十到几百 GB 的空间。

同日更多故事

2026-09-22